liquid_feedback_frontend
view app/main/api/area.lua @ 145:90520c9fca44
implement area filter in timeline
allows the user to ignore any area in the timeline filter.
better display in javascript off
allows the user to ignore any area in the timeline filter.
better display in javascript off
author | Daniel Poelzleithner <poelzi@poelzi.org> |
---|---|
date | Thu Oct 07 00:35:48 2010 +0200 (2010-10-07) |
parents | 733f65c0c0a0 |
children |
line source
1 local id = param.get("id")
2 local min_id = param.get("min_id")
3 local max_id = param.get("max_id")
4 local order = param.get("order")
5 local limit = param.get("limit", atom.integer)
7 local areas_selector = Area:new_selector()
9 if id then
10 areas_selector:add_where{"area.id = ?", id}
11 end
13 if min_id then
14 areas_selector:add_where{"area.id >= ?", min_id}
15 end
17 if max_id then
18 areas_selector:add_where{"area.id <= ?", max_id}
19 end
21 if order == "name" then
22 areas_selector:add_order_by("area.name")
23 end
25 if order == "member_weight" then
26 areas_selector:add_order_by("area.member_weight DESC")
27 end
29 areas_selector:add_order_by("area.id")
31 if limit then
32 initiatives_selector:limit(limit)
33 end
35 local api_engine = param.get("api_engine") or "xml"
37 local fields = {
39 { name = "id", field = "area.id" },
40 { name = "name", field = "area.name" },
41 { name = "description", field = "area.description" },
42 { name = "direct_member_count", field = "area.direct_member_count" },
43 { name = "member_weight", field = "area.member_weight" },
44 { name = "autoreject_weight", field = "area.autoreject_weight" },
45 { name = "active", field = "area.active" },
47 }
49 util.autoapi{
50 relation_name = "area",
51 selector = areas_selector,
52 fields = fields,
53 api_engine = api_engine
54 }