liquid_feedback_frontend
view app/main/api/suggestion.lua @ 172:165f4bd02cf3
don't show the first draft of a new initiative as a new draft event in the timeline
new draft should only show changes of drafts drafts of new initiatives as they are handled by the new initiative event
new draft should only show changes of drafts drafts of new initiatives as they are handled by the new initiative event
author | Daniel Poelzleithner <poelzi@poelzi.org> |
---|---|
date | Sun Oct 10 19:40:32 2010 +0200 (2010-10-10) |
parents | da885b2dda29 |
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 initiative_id = param.get("initiative_id")
5 local order = param.get("order")
6 local limit = param.get("limit", atom.integer)
8 local suggestions_selector = Suggestion:new_selector()
10 if id then
11 suggestions_selector:add_where{"suggestion.id = ?", id}
12 end
14 if min_id then
15 suggestions_selector:add_where{"suggestion.id >= ?", min_id}
16 end
18 if max_id then
19 suggestions_selector:add_where{"suggestion.id <= ?", max_id}
20 end
22 if initiative_id then
23 suggestions_selector:add_where{"suggestion.initiative_id = ?", initiative_id}
24 end
26 if order == "created_desc" then
27 suggestions_selector:add_order_by("suggestion.created DESC")
28 elseif order == "created_asc" or order == "created" then
29 suggestions_selector:add_order_by("suggestion.id")
30 elseif order == "id_desc" then
31 suggestions_selector:add_order_by("suggestion.id DESC")
32 else
33 suggestions_selector:add_order_by("suggestion.id")
34 end
36 if limit then
37 suggestions_selector:limit(limit)
38 end
40 local api_engine = param.get("api_engine") or "xml"
42 local fields = {
44 { name = "id", field = "suggestion.id" },
45 { name = "initiative_id", field = "suggestion.initiative_id" },
46 { name = "created", field = "suggestion.created" },
47 -- FIXME: private api
48 -- { name = "author_id", field = "suggestion.author_id" },
49 { name = "name", field = "suggestion.name" },
50 { name = "description", field = "suggestion.description" },
51 { name = "minus2_unfulfilled_count", field = "suggestion.minus2_unfulfilled_count" },
52 { name = "minus2_fulfilled_count", field = "suggestion.minus2_fulfilled_count" },
53 { name = "minus1_unfulfilled_count", field = "suggestion.minus1_unfulfilled_count" },
54 { name = "minus1_fulfilled_count", field = "suggestion.minus1_fulfilled_count" },
55 { name = "plus1_unfulfilled_count", field = "suggestion.plus1_unfulfilled_count" },
56 { name = "plus1_fulfilled_count", field = "suggestion.plus1_fulfilled_count" },
57 { name = "plus2_unfulfilled_count", field = "suggestion.plus2_unfulfilled_count" },
58 { name = "plus2_fulfilled_count", field = "suggestion.plus2_fulfilled_count" },
60 }
62 util.autoapi{
63 relation_name = "suggestion",
64 selector = suggestions_selector,
65 fields = fields,
66 api_engine = api_engine
67 }