liquid_feedback_frontend

diff app/main/api/suggestion.lua @ 95:6a12fb7e4963

Suggestion API, draft preview, word based diff, multiple fixes
- Added suggestion API
- Initiative API: Drafts optionally delivered as rendered html fragment
- Initiative API: Fixed wrong output of revoked timestamp when using JSON
- Preview added for initiative drafts
- Improved (word based) diff added
- Improved suggestion list
- Added missing sorting of initiative in vote list
- Filter state for member page initiative lists
- Fixed wrong status output in member history
- Fixed wrongly closed div in layout
author bsw
date Mon Aug 30 21:52:19 2010 +0200 (2010-08-30)
parents
children a33abf457d29
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/app/main/api/suggestion.lua	Mon Aug 30 21:52:19 2010 +0200
     1.3 @@ -0,0 +1,56 @@
     1.4 +local id     = param.get("id")
     1.5 +local min_id = param.get("min_id")
     1.6 +local max_id = param.get("max_id")
     1.7 +local initiative_id = param.get("initiative_id")
     1.8 +local order  = param.get("order")
     1.9 +local limit  = param.get("limit", atom.integer)
    1.10 +
    1.11 +local suggestions_selector = Suggestion:new_selector()
    1.12 +
    1.13 +if id then
    1.14 +  suggestions_selector:add_where{"suggestion.id = ?", id}
    1.15 +end
    1.16 +
    1.17 +if min_id then
    1.18 +  suggestions_selector:add_where{"suggestion.id >= ?", min_id}
    1.19 +end
    1.20 +
    1.21 +if max_id then
    1.22 +  suggestions_selector:add_where{"suggestion.id <= ?", max_id}
    1.23 +end
    1.24 +
    1.25 +if order == "id_desc" then
    1.26 +  suggestions_selector:add_order_by("suggestion.id DESC")
    1.27 +else
    1.28 +  suggestions_selector:add_order_by("suggestion.id")
    1.29 +end
    1.30 +
    1.31 +if limit then
    1.32 +  suggestions_selector:limit(limit)
    1.33 +end
    1.34 +
    1.35 +local api_engine = param.get("api_engine") or "xml"
    1.36 +
    1.37 +local fields = {
    1.38 +
    1.39 +  { name = "id",                       field = "suggestion.id" },
    1.40 +  { name = "initiative_id",            field = "suggestion.initiative_id" },
    1.41 +  { name = "name",                     field = "suggestion.name" },
    1.42 +  { name = "description",              field = "suggestion.description" },
    1.43 +  { name = "minus2_unfulfilled_count", field = "suggestion.minus2_unfulfilled_count" },
    1.44 +  { name = "minus2_fulfilled_count",   field = "suggestion.minus2_fulfilled_count" },
    1.45 +  { name = "minus1_unfulfilled_count", field = "suggestion.minus1_unfulfilled_count" },
    1.46 +  { name = "minus1_fulfilled_count",   field = "suggestion.minus1_fulfilled_count" },
    1.47 +  { name = "plus1_unfulfilled_count",  field = "suggestion.plus1_unfulfilled_count" },
    1.48 +  { name = "plus1_fulfilled_count",    field = "suggestion.plus1_fulfilled_count" },
    1.49 +  { name = "plus2_unfulfilled_count",  field = "suggestion.plus2_unfulfilled_count" },
    1.50 +  { name = "plus2_fulfilled_count",    field = "suggestion.plus2_fulfilled_count" },
    1.51 +
    1.52 +}
    1.53 +
    1.54 +util.autoapi{
    1.55 +  relation_name = "suggestion",
    1.56 +  selector      = suggestions_selector,
    1.57 +  fields        = fields,
    1.58 +  api_engine    = api_engine
    1.59 +}
    1.60 \ No newline at end of file

Impressum / About Us