liquid_feedback_frontend

changeset 276:f460555c9896

Code cleanup
author bsw
date Sun Feb 12 20:03:26 2012 +0100 (2012-02-12)
parents fc14e76afe31
children bde068b37608
files app/main/_filter/21_auth.lua app/main/_filter_view/30_navigation.lua app/main/_filter_view/34_stylesheet.lua app/main/index/index.lua app/main/initiative/_current_draft.lua app/main/initiative/_show.lua app/main/issue/_filters.lua app/main/member/_list_supported_initiatives.lua app/main/member/show_tab.lua app/main/suggestion/_list.lua app/main/unit/_list.lua app/main/unit/list.lua env/ui/field/issue_state.lua env/ui/field/negative_votes.lua env/ui/field/positive_votes.lua env/ui/field/potential_initiative_weight.lua env/ui/field/potential_issue_weight.lua env/ui/field/satisfaction_informed.lua env/ui/field/satisfaction_total.lua env/ui/field/vote_later.lua env/ui/field/vote_now.lua model/initiative.lua model/issue.lua static/style.css
line diff
     1.1 --- a/app/main/_filter/21_auth.lua	Sun Feb 12 13:42:08 2012 +0100
     1.2 +++ b/app/main/_filter/21_auth.lua	Sun Feb 12 20:03:26 2012 +0100
     1.3 @@ -1,7 +1,8 @@
     1.4  local auth_needed = not (
     1.5    request.get_module() == 'index'
     1.6    and (
     1.7 -       request.get_view()   == "login"
     1.8 +       request.get_view()   == "index"
     1.9 +    or request.get_view()   == "login"
    1.10      or request.get_action() == "login"
    1.11      or request.get_view()   == "register"
    1.12      or request.get_action() == "register"
    1.13 @@ -18,24 +19,13 @@
    1.14  if config.public_access then
    1.15  
    1.16    if
    1.17 -    request.get_module() == "unit" and (
    1.18 -     request.get_view() == "list"
    1.19 -     or request.get_view() == "show"
    1.20 -     or request.get_view() == "show_tab"
    1.21 -    )
    1.22 -    or request.get_module() == "area" and (
    1.23 -     request.get_view() == "list"
    1.24 -     or request.get_view() == "show"
    1.25 -     or request.get_view() == "show_tab"
    1.26 +    request.get_module() == "area" and (
    1.27 +     request.get_view() == "list" or request.get_view() == "show"
    1.28      )
    1.29      or request.get_module() == "policy" and request.get_view() == "show"
    1.30      or request.get_module() == "policy" and request.get_view() == "list"
    1.31      or request.get_module() == "issue" and request.get_view() == "show"
    1.32 -    or request.get_module() == "issue" and request.get_view() == "show_tab"
    1.33      or request.get_module() == "initiative" and request.get_view() == "show"
    1.34 -    or request.get_module() == "initiative" and request.get_view() == "show_partial"
    1.35 -    or request.get_module() == "initiative" and request.get_view() == "show_tab"
    1.36 -    or request.get_module() == "initiative" and request.get_view() == "show.rss"
    1.37      or request.get_module() == "suggestion" and request.get_view() == "show"
    1.38      or request.get_module() == "draft" and request.get_view() == "diff"
    1.39    then
     2.1 --- a/app/main/_filter_view/30_navigation.lua	Sun Feb 12 13:42:08 2012 +0100
     2.2 +++ b/app/main/_filter_view/30_navigation.lua	Sun Feb 12 20:03:26 2012 +0100
     2.3 @@ -2,27 +2,22 @@
     2.4  
     2.5  slot.select('navigation', function()
     2.6  
     2.7 +  ui.link{
     2.8 +    text   = _"Home",
     2.9 +    module = 'index',
    2.10 +    view   = 'index'
    2.11 +  }
    2.12 +
    2.13    if app.session.member then
    2.14 -    ui.link{
    2.15 ---      image  = { static = "icons/16/house.png" },
    2.16 -      text   = _"Home",
    2.17 -      module = 'index',
    2.18 -      view   = 'index'
    2.19 -    }
    2.20 -  end
    2.21 -
    2.22 -  if app.session.member or config.public_access then
    2.23  
    2.24      if not config.single_unit_id then
    2.25        ui.link{
    2.26 ---        image  = { static = "icons/16/package.png" },
    2.27          text   = _"Units",
    2.28          module = 'unit',
    2.29          view   = 'list'
    2.30        }
    2.31      else
    2.32        ui.link{
    2.33 ---        image  = { static = "icons/16/package.png" },
    2.34          text   = _"Areas",
    2.35          module = 'area',
    2.36          view   = 'list'
    2.37 @@ -32,7 +27,6 @@
    2.38  
    2.39    if app.session.member == nil then
    2.40      ui.link{
    2.41 ---      image  = { static = "icons/16/key.png" },
    2.42        text   = _"Login",
    2.43        module = 'index',
    2.44        view   = 'login',
    2.45 @@ -43,19 +37,16 @@
    2.46        }
    2.47      }
    2.48      ui.link{
    2.49 ---      image  = { static = "icons/16/book_edit.png" },
    2.50        text   = _"Registration",
    2.51        module = 'index',
    2.52        view   = 'register'
    2.53      }
    2.54      ui.link{
    2.55 ---      image  = { static = "icons/16/key_forgot.png" },
    2.56        text   = _"Reset password",
    2.57        module = 'index',
    2.58        view   = 'reset_password'
    2.59      }
    2.60      ui.link{
    2.61 ---      image  = { static = "icons/16/information.png" },
    2.62        text   = _"About / Impressum",
    2.63        module = 'index',
    2.64        view   = 'about'
    2.65 @@ -63,14 +54,12 @@
    2.66    else 
    2.67  
    2.68      ui.link{
    2.69 ---      image  = { static = "icons/16/time.png" },
    2.70        text   = _"Timeline",
    2.71        module = "timeline",
    2.72        view   = "index"
    2.73      }
    2.74  
    2.75      ui.link{
    2.76 ---      image  = { static = "icons/16/group.png" },
    2.77        text   = _"Members",
    2.78        module = 'member',
    2.79        view   = 'list',
    2.80 @@ -78,7 +67,6 @@
    2.81      }
    2.82  
    2.83      ui.link{
    2.84 ---      image  = { static = "icons/16/book_edit.png" },
    2.85        text   = _"Contacts",
    2.86        module = 'contact',
    2.87        view   = 'list'
    2.88 @@ -91,7 +79,6 @@
    2.89      }
    2.90  
    2.91      ui.link{
    2.92 ---      image  = { static = "icons/16/information.png" },
    2.93        text   = _"About",
    2.94        module = 'index',
    2.95        view   = 'about'
    2.96 @@ -103,7 +90,6 @@
    2.97  
    2.98        ui.link{
    2.99          attr   = { class = { "admin_only" } },
   2.100 ---        image  = { static = "icons/16/cog.png" },
   2.101          text   = _"Admin",
   2.102          module = 'admin',
   2.103          view   = 'index'
     3.1 --- a/app/main/_filter_view/34_stylesheet.lua	Sun Feb 12 13:42:08 2012 +0100
     3.2 +++ b/app/main/_filter_view/34_stylesheet.lua	Sun Feb 12 20:03:26 2012 +0100
     3.3 @@ -11,48 +11,7 @@
     3.4    slot.put_into("stylesheet_url", config.absolute_base_url .. "static/style.css")
     3.5  end
     3.6  
     3.7 -if os.getenv("HTTP_USER_AGENT") and os.getenv("HTTP_USER_AGENT"):find("Android.*AppleWebKit.*Mobile Safari") then
     3.8 -  slot.select("html_head", function()
     3.9 -    ui.tag{
    3.10 -      tag = "style",
    3.11 -      content = "body, td, th { font-size: 16px; };"
    3.12 -    }
    3.13 -  end)
    3.14 -end
    3.15 -
    3.16 -if app.session.member then
    3.17 -  local tab_mode = app.session.member:get_setting_value("tab_mode")
    3.18 -  if tab_mode then
    3.19 -    config.user_tab_mode = tab_mode
    3.20 -  end
    3.21 -else
    3.22 -  config.user_tab_mode = "accordeon_first_expanded"
    3.23 -end
    3.24 -
    3.25 -local web20 = config.user_tab_mode == "accordeon"
    3.26 -  or config.user_tab_mode == "accordeon_first_expanded"
    3.27 -  or config.user_tab_mode == "accordeon_all_expanded"
    3.28 -
    3.29 -if web20 then
    3.30 -  ui.enable_partial_loading()
    3.31 -end
    3.32 -
    3.33 -if request.get_json_request_slots() then
    3.34 -  slot.set_layout("blank")
    3.35 -end
    3.36 -
    3.37 -if request.get_module() ~= "api" and request.get_view() ~= "list_rss" and request.get_module() ~= "sitemap" then
    3.38 -  ui.container{
    3.39 -    attr = {
    3.40 -      class = web20 and "web20" or "web10"
    3.41 -    },
    3.42 -    content = function()
    3.43 -      execute.inner()
    3.44 -    end
    3.45 -  }
    3.46 -else
    3.47 -  execute.inner()
    3.48 -end
    3.49 +execute.inner()
    3.50  
    3.51  if config.footer_html then 
    3.52    slot.put_into("footer", config.footer_html)
     4.1 --- a/app/main/index/index.lua	Sun Feb 12 13:42:08 2012 +0100
     4.2 +++ b/app/main/index/index.lua	Sun Feb 12 20:03:26 2012 +0100
     4.3 @@ -44,18 +44,34 @@
     4.4  
     4.5  slot.put_into("title", encode.html(config.app_title))
     4.6  
     4.7 -if app.session.member then
     4.8 -  app.html_title.title = app.session.member.name
     4.9 +if app.session.member_id then
    4.10 +  util.help("index.index", _"Home")
    4.11 +
    4.12 +  execute.view{
    4.13 +    module = "member",
    4.14 +    view = "_show",
    4.15 +    params = {
    4.16 +      member = app.session.member,
    4.17 +      show_as_homepage = true
    4.18 +    }
    4.19 +  }
    4.20 +
    4.21 +elseif config.public_access then
    4.22 +  if config.motd_public then
    4.23 +    local help_text = config.motd_public
    4.24 +    ui.container{
    4.25 +      attr = { class = "wiki motd" },
    4.26 +      content = function()
    4.27 +        slot.put(format.wiki_text(help_text))
    4.28 +      end
    4.29 +    }
    4.30 +  end
    4.31 +  
    4.32 +  execute.view{ module = "unit", view = "_list" }
    4.33 +  
    4.34 +else
    4.35 +
    4.36 +  ui.tag{ content = _"Closed user group, please login to participate." }
    4.37 +
    4.38  end
    4.39  
    4.40 -
    4.41 -util.help("index.index", _"Home")
    4.42 -
    4.43 -execute.view{
    4.44 -  module = "member",
    4.45 -  view = "_show",
    4.46 -  params = {
    4.47 -    member = app.session.member,
    4.48 -    show_as_homepage = true
    4.49 -  }
    4.50 -}
     5.1 --- a/app/main/initiative/_current_draft.lua	Sun Feb 12 13:42:08 2012 +0100
     5.2 +++ b/app/main/initiative/_current_draft.lua	Sun Feb 12 20:03:26 2012 +0100
     5.3 @@ -3,7 +3,7 @@
     5.4  
     5.5  if initiator and initiator.accepted and not initiative.issue.half_frozen and not initiative.issue.closed and not initiative.revoked then
     5.6    ui.link{
     5.7 -    attr = { style = "float: right;" },
     5.8 +    attr = { class = "actions" },
     5.9      content = function()
    5.10        ui.image{ static = "icons/16/script_add.png" }
    5.11        slot.put(_"Edit draft")
    5.12 @@ -16,7 +16,7 @@
    5.13  
    5.14  if initiator and initiator.accepted and not initiative.issue.half_frozen and not initiative.issue.closed and not initiative.revoked then
    5.15    ui.link{
    5.16 -    attr = { class = "action", style = "float: right;" },
    5.17 +    attr = { class = "actions" },
    5.18      content = function()
    5.19        ui.image{ static = "icons/16/script_delete.png" }
    5.20        slot.put(_"Revoke initiative")
     6.1 --- a/app/main/initiative/_show.lua	Sun Feb 12 13:42:08 2012 +0100
     6.2 +++ b/app/main/initiative/_show.lua	Sun Feb 12 20:03:26 2012 +0100
     6.3 @@ -30,24 +30,26 @@
     6.4      attr = { class = "initiative_name" },
     6.5      content = _("Initiative i#{id}: #{name}", { id = initiative.id, name = initiative.name })
     6.6    }
     6.7 -  ui.tag{
     6.8 -    attr = { class = "initiator_names" },
     6.9 -    content = function()
    6.10 -      ui.tag{ content = _"by" }
    6.11 -      slot.put(" ")
    6.12 -      for i, initiator in ipairs(initiators) do
    6.13 -        if i == #initiators and i > 1 then
    6.14 -          slot.put(" ", _"and", " ")
    6.15 -        elseif i > 1 then
    6.16 -          slot.put(", ")
    6.17 +  if app.session.member_id or config.public_access == "pseudonym" or config.public_access == "full" then
    6.18 +    ui.tag{
    6.19 +      attr = { class = "initiator_names" },
    6.20 +      content = function()
    6.21 +        ui.tag{ content = _"by" }
    6.22 +        slot.put(" ")
    6.23 +        for i, initiator in ipairs(initiators) do
    6.24 +          if i == #initiators and i > 1 then
    6.25 +            slot.put(" ", _"and", " ")
    6.26 +          elseif i > 1 then
    6.27 +            slot.put(", ")
    6.28 +          end
    6.29 +          ui.link{
    6.30 +            text = initiator.name,
    6.31 +            module = "member", view = "show", id = initiator.id
    6.32 +          }
    6.33          end
    6.34 -        ui.link{
    6.35 -          text = initiator.name,
    6.36 -          module = "member", view = "show", id = initiator.id
    6.37 -        }
    6.38        end
    6.39 -   end
    6.40 -   }
    6.41 +    }
    6.42 +  end
    6.43  
    6.44    if initiator and initiator.accepted and not initiative.issue.fully_frozen and not initiative.issue.closed and not initiative.revoked then
    6.45      slot.put(" · ")
     7.1 --- a/app/main/issue/_filters.lua	Sun Feb 12 13:42:08 2012 +0100
     7.2 +++ b/app/main/issue/_filters.lua	Sun Feb 12 20:03:26 2012 +0100
     7.3 @@ -5,11 +5,9 @@
     7.4  filters[#filters+1] = {
     7.5    name = "filter",
     7.6    {
     7.7 -    name = "open",
     7.8 -    label = _"Open",
     7.9 -    selector_modifier = function(selector)
    7.10 -        selector:add_where("issue.closed ISNULL")
    7.11 -    end
    7.12 +    name = "any",
    7.13 +    label = _"Any state",
    7.14 +    selector_modifier = function(selector) end
    7.15    },
    7.16    {
    7.17      name = "new",
    7.18 @@ -53,12 +51,7 @@
    7.19      selector_modifier = function(selector)
    7.20        selector:add_where("issue.closed NOTNULL AND issue.fully_frozen ISNULL")
    7.21      end
    7.22 -  },
    7.23 -  {
    7.24 -    name = "any",
    7.25 -    label = _"Any",
    7.26 -    selector_modifier = function(selector) end
    7.27 -  },
    7.28 +  }
    7.29  }
    7.30  
    7.31  
    7.32 @@ -94,7 +87,7 @@
    7.33      name = "initiated",
    7.34      label = _"Initiated",
    7.35      selector_modifier = function(selector)
    7.36 -      selector:add_where({ "EXISTS (SELECT 1 FROM initiative JOIN initiator ON initiator.initiative_id = initiative.id AND initiator.member_id = ? WHERE initiative.issue_id = issue.id)", app.session.member.id })
    7.37 +      selector:add_where({ "EXISTS (SELECT 1 FROM initiative JOIN initiator ON initiator.initiative_id = initiative.id AND initiator.member_id = ? AND initiator.accepted WHERE initiative.issue_id = issue.id)", app.session.member.id })
    7.38      end
    7.39    },
    7.40  }
    7.41 @@ -104,6 +97,7 @@
    7.42    local filter = { name = "order" }
    7.43    
    7.44    local text = _"Time left"
    7.45 +  local f = param.get_all_cgi()["filter"]
    7.46    if f == "finished" or f == "cancelled" then
    7.47      text = _"Recently closed"
    7.48    end
    7.49 @@ -115,6 +109,14 @@
    7.50      end
    7.51    }
    7.52  
    7.53 +  filter[#filter+1] =  {
    7.54 +    name = "latest",
    7.55 +    label = _"Latest",
    7.56 +    selector_modifier = function(selector)
    7.57 +      selector:add_order_by("issue.created DESC")
    7.58 +    end
    7.59 +  }
    7.60 +  
    7.61    filter[#filter+1] = {
    7.62      name = "max_potential_support",
    7.63      label = _"Supporter count",
    7.64 @@ -123,14 +125,6 @@
    7.65      end
    7.66    }
    7.67    
    7.68 -  filter[#filter+1] =  {
    7.69 -    name = "newest",
    7.70 -    label = _"Newest",
    7.71 -    selector_modifier = function(selector)
    7.72 -      selector:add_order_by("issue.created DESC")
    7.73 -    end
    7.74 -  }
    7.75 -  
    7.76    filters[#filters+1] = filter
    7.77    
    7.78  end
     8.1 --- a/app/main/member/_list_supported_initiatives.lua	Sun Feb 12 13:42:08 2012 +0100
     8.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.3 @@ -1,106 +0,0 @@
     8.4 -local initiatives_selector = param.get("initiatives_selector", "table")
     8.5 -local member = param.get("member", "table")
     8.6 -
     8.7 -local filters  = {
     8.8 -  {
     8.9 -    label = _"Filter",
    8.10 -    {
    8.11 -      name = "open",
    8.12 -      label = _"Open",
    8.13 -      selector_modifier = function(selector)
    8.14 -          selector:add_where("issue.closed ISNULL")
    8.15 -      end
    8.16 -    },
    8.17 -    {
    8.18 -      name = "new",
    8.19 -      label = _"New",
    8.20 -      selector_modifier = function(selector)
    8.21 -        selector:add_where("issue.accepted ISNULL AND issue.closed ISNULL")
    8.22 -      end
    8.23 -    },
    8.24 -    {
    8.25 -      name = "accepted",
    8.26 -      label = _"In discussion",
    8.27 -      selector_modifier = function(selector)
    8.28 -        selector:add_where("issue.accepted NOTNULL AND issue.half_frozen ISNULL AND issue.closed ISNULL")
    8.29 -      end
    8.30 -    },
    8.31 -    {
    8.32 -      name = "half_frozen",
    8.33 -      label = _"Frozen",
    8.34 -      selector_modifier = function(selector)
    8.35 -        selector:add_where("issue.half_frozen NOTNULL AND issue.fully_frozen ISNULL")
    8.36 -      end
    8.37 -    },
    8.38 -    {
    8.39 -      name = "frozen",
    8.40 -      label = _"Voting",
    8.41 -      selector_modifier = function(selector)
    8.42 -        selector:add_where("issue.fully_frozen NOTNULL AND issue.closed ISNULL")
    8.43 -        filter_voting = true
    8.44 -      end
    8.45 -    },
    8.46 -    {
    8.47 -      name = "finished",
    8.48 -      label = _"Finished",
    8.49 -      selector_modifier = function(selector)
    8.50 -        selector:add_where("issue.closed NOTNULL AND issue.fully_frozen NOTNULL")
    8.51 -      end
    8.52 -    },
    8.53 -    {
    8.54 -      name = "cancelled",
    8.55 -      label = _"Cancelled",
    8.56 -      selector_modifier = function(selector)
    8.57 -        selector:add_where("issue.closed NOTNULL AND issue.fully_frozen ISNULL")
    8.58 -      end
    8.59 -    },
    8.60 -    {
    8.61 -      name = "any",
    8.62 -      label = _"Any",
    8.63 -      selector_modifier = function(selector) end
    8.64 -    },
    8.65 -  }
    8.66 -}
    8.67 -
    8.68 -
    8.69 -if member then
    8.70 -  filters[#filters+1] = {
    8.71 -    label = _"Support",
    8.72 -    name = "support",
    8.73 -    {
    8.74 -      name = "any",
    8.75 -      label = _"Any",
    8.76 -      selector_modifier = function(selector)
    8.77 -      end
    8.78 -    },
    8.79 -    {
    8.80 -      name = "potential",
    8.81 -      label = _"Potential supported",
    8.82 -      selector_modifier = function(selector)
    8.83 -        -- not even having is_potential_supporter is working here :-( hopefully the optimizer will work it out...
    8.84 -        selector:add_where({"EXISTS(SELECT 1 FROM opinion WHERE opinion.initiative_id = initiative.id AND opinion.member_id = ? AND ((opinion.degree = 2 AND NOT fulfilled) OR (opinion.degree = -2 AND fulfilled)))", member.id })
    8.85 -      end
    8.86 -    },
    8.87 -    {
    8.88 -      name = "supporter",
    8.89 -      label = _"Supporter",
    8.90 -      selector_modifier = function(selector)
    8.91 -        selector:add_where({"NOT EXISTS(SELECT 1 FROM opinion WHERE opinion.initiative_id = initiative.id AND opinion.member_id = ? AND ((opinion.degree = 2 AND NOT fulfilled) OR (opinion.degree = -2 AND fulfilled)))", member.id })
    8.92 -      end
    8.93 -    },
    8.94 -  }
    8.95 -end
    8.96 -
    8.97 -filters.label = _"Filter"
    8.98 -filters.name = "filter_voting"
    8.99 -filters.selector = initiatives_selector
   8.100 -filters.content = function()
   8.101 -    execute.view{
   8.102 -      module = "initiative",
   8.103 -      view = "_list",
   8.104 -      params = { initiatives_selector = initiatives_selector }
   8.105 -    }
   8.106 -  end
   8.107 -
   8.108 -
   8.109 -ui.filters(filters)
     9.1 --- a/app/main/member/show_tab.lua	Sun Feb 12 13:42:08 2012 +0100
     9.2 +++ b/app/main/member/show_tab.lua	Sun Feb 12 20:03:26 2012 +0100
     9.3 @@ -161,37 +161,26 @@
     9.4    params = { areas_selector = areas_selector, member = member },
     9.5  }
     9.6  
     9.7 -local issues_selector = member:get_reference_selector("issues")
     9.8 +local issues_selector = Issue:new_selector()
     9.9  tabs[#tabs+1] = {
    9.10    name = "issues",
    9.11    label = _"Issues" .. " (" .. tostring(issues_selector:count()) .. ")",
    9.12    icon = { static = "icons/16/folder.png" },
    9.13    module = "issue",
    9.14    view = "_list",
    9.15 -  params = { issues_selector = issues_selector },
    9.16 +  params = { issues_selector = issues_selector, filter_interest = "my" },
    9.17  }
    9.18 -
    9.19 -local supported_initiatives_selector = member:get_reference_selector("supported_initiatives")
    9.20 -
    9.21 +  
    9.22 +local outgoing_delegations_selector = member:get_reference_selector("outgoing_delegations")
    9.23 +  :left_join("issue", "_member_showtab_issue", "_member_showtab_issue.id = delegation.issue_id")
    9.24 +  :add_where("_member_showtab_issue.closed ISNULL")
    9.25  tabs[#tabs+1] = {
    9.26 -  name = "supported_initiatives",
    9.27 -  label = _"Supported" .. " (" .. tostring(supported_initiatives_selector:count()) .. ")",
    9.28 -  icon = { static = "icons/16/thumb_up_green.png" },
    9.29 -  module = "member",
    9.30 -  view = "_list_supported_initiatives",
    9.31 -  params = { initiatives_selector = supported_initiatives_selector,
    9.32 -             member = member },
    9.33 -}
    9.34 -
    9.35 -local initiated_initiatives_selector = member:get_reference_selector("initiated_initiatives"):add_where("initiator.accepted = true")
    9.36 -tabs[#tabs+1] = {
    9.37 -  name = "initiatied_initiatives",
    9.38 -  label = _"Initiated" .. " (" .. tostring(initiated_initiatives_selector:count()) .. ")",
    9.39 -  icon = { static = "icons/16/user_edit.png" },
    9.40 -  module = "member",
    9.41 -  view = "_list_supported_initiatives",
    9.42 -  params = { initiatives_selector = initiated_initiatives_selector, 
    9.43 -             member = member},
    9.44 +  name = "outgoing_delegations",
    9.45 +  label = _"Outgoing delegations" .. " (" .. tostring(outgoing_delegations_selector:count()) .. ")",
    9.46 +  icon = { static = "icons/16/table_go.png" },
    9.47 +  module = "delegation",
    9.48 +  view = "_list",
    9.49 +  params = { delegations_selector = outgoing_delegations_selector, outgoing = true },
    9.50  }
    9.51  
    9.52  local incoming_delegations_selector = member:get_reference_selector("incoming_delegations")
    9.53 @@ -206,18 +195,6 @@
    9.54    params = { delegations_selector = incoming_delegations_selector, incoming = true },
    9.55  }
    9.56  
    9.57 -local outgoing_delegations_selector = member:get_reference_selector("outgoing_delegations")
    9.58 -  :left_join("issue", "_member_showtab_issue", "_member_showtab_issue.id = delegation.issue_id")
    9.59 -  :add_where("_member_showtab_issue.closed ISNULL")
    9.60 -tabs[#tabs+1] = {
    9.61 -  name = "outgoing_delegations",
    9.62 -  label = _"Outgoing delegations" .. " (" .. tostring(outgoing_delegations_selector:count()) .. ")",
    9.63 -  icon = { static = "icons/16/table_go.png" },
    9.64 -  module = "delegation",
    9.65 -  view = "_list",
    9.66 -  params = { delegations_selector = outgoing_delegations_selector, outgoing = true },
    9.67 -}
    9.68 -
    9.69  local contacts_selector = member:get_reference_selector("saved_members"):add_where("public")
    9.70  tabs[#tabs+1] = {
    9.71    name = "contacts",
    10.1 --- a/app/main/suggestion/_list.lua	Sun Feb 12 13:42:08 2012 +0100
    10.2 +++ b/app/main/suggestion/_list.lua	Sun Feb 12 20:03:26 2012 +0100
    10.3 @@ -32,10 +32,8 @@
    10.4  end
    10.5  
    10.6  ui_filters{
    10.7 -  label = _"Show filter",
    10.8    selector = suggestions_selector,
    10.9    {
   10.10 -    label = _"Order by",
   10.11      {
   10.12        name = "plus_unfulfilled",
   10.13        label = _"requested",
    11.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.2 +++ b/app/main/unit/_list.lua	Sun Feb 12 20:03:26 2012 +0100
    11.3 @@ -0,0 +1,12 @@
    11.4 +local units = Unit:get_flattened_tree{ active = true }
    11.5 +
    11.6 +ui.list{
    11.7 +  records = units,
    11.8 +  columns = {
    11.9 +    {
   11.10 +      content = function(unit)
   11.11 +        ui.link{ text = unit.name, module = "area", view = "list", params = { unit_id = unit.id } }
   11.12 +      end 
   11.13 +    }
   11.14 +  }
   11.15 +}
   11.16 \ No newline at end of file
    12.1 --- a/app/main/unit/list.lua	Sun Feb 12 13:42:08 2012 +0100
    12.2 +++ b/app/main/unit/list.lua	Sun Feb 12 20:03:26 2012 +0100
    12.3 @@ -1,26 +1,5 @@
    12.4 -local units = Unit:get_flattened_tree{ active = true }
    12.5 -
    12.6  slot.put_into("title", _"Unit list")
    12.7  
    12.8 -if not app.session.member_id and config.motd_public then
    12.9 -  local help_text = config.motd_public
   12.10 -  ui.container{
   12.11 -    attr = { class = "wiki motd" },
   12.12 -    content = function()
   12.13 -      slot.put(format.wiki_text(help_text))
   12.14 -    end
   12.15 -  }
   12.16 -end
   12.17 -
   12.18  util.help("unit.list", _"Unit list")
   12.19  
   12.20 -ui.list{
   12.21 -  records = units,
   12.22 -  columns = {
   12.23 -    {
   12.24 -      content = function(unit)
   12.25 -        ui.link{ text = unit.name, module = "area", view = "list", params = { unit_id = unit.id } }
   12.26 -      end 
   12.27 -    }
   12.28 -  }
   12.29 -}
   12.30 \ No newline at end of file
   12.31 +execute.view{ module = "unit", view = "_list" }
   12.32 \ No newline at end of file
    13.1 --- a/env/ui/field/issue_state.lua	Sun Feb 12 13:42:08 2012 +0100
    13.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    13.3 @@ -1,15 +0,0 @@
    13.4 -function ui.field.issue_state(args)
    13.5 -  ui.form_element(args, {fetch_value = true}, function(args)
    13.6 -    local value = args.value
    13.7 -    local state_name = Issue:get_state_name_for_state(value)
    13.8 -    ui.tag{
    13.9 -      attr = { class = "vote_now" },
   13.10 -      content = function()
   13.11 -        ui.tag{
   13.12 -          attr = { class = "value" },
   13.13 -          content = tostring(state_name)
   13.14 -        }
   13.15 -      end
   13.16 -    }
   13.17 -  end)
   13.18 -end
    14.1 --- a/env/ui/field/negative_votes.lua	Sun Feb 12 13:42:08 2012 +0100
    14.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    14.3 @@ -1,16 +0,0 @@
    14.4 -function ui.field.negative_votes(args)
    14.5 -  ui.form_element(args, {fetch_value = true}, function(args)
    14.6 -    local value = args.value
    14.7 -    ui.container{
    14.8 -      attr = { class = "negative_votes" },
    14.9 -      content = function()
   14.10 -        ui.tag{
   14.11 -          attr = { class = "value" },
   14.12 -          content = function()
   14.13 -            slot.put(tostring(value) .. ' ')
   14.14 -          end
   14.15 -        }
   14.16 -      end
   14.17 -    }
   14.18 -  end)
   14.19 -end
    15.1 --- a/env/ui/field/positive_votes.lua	Sun Feb 12 13:42:08 2012 +0100
    15.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.3 @@ -1,16 +0,0 @@
    15.4 -function ui.field.positive_votes(args)
    15.5 -  ui.form_element(args, {fetch_value = true}, function(args)
    15.6 -    local value = args.value
    15.7 -    ui.container{
    15.8 -      attr = { class = "positive_votes" },
    15.9 -      content = function()
   15.10 -        ui.tag{
   15.11 -          attr = { class = "value" },
   15.12 -          content = function()
   15.13 -            slot.put(tostring(value) .. ' ')
   15.14 -          end
   15.15 -        }
   15.16 -      end
   15.17 -    }
   15.18 -  end)
   15.19 -end
    16.1 --- a/env/ui/field/potential_initiative_weight.lua	Sun Feb 12 13:42:08 2012 +0100
    16.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    16.3 @@ -1,14 +0,0 @@
    16.4 -function ui.field.potential_initiative_weight(args)
    16.5 -  ui.form_element(args, {fetch_value = true}, function(args)
    16.6 -    local value = args.value
    16.7 -    ui.tag{
    16.8 -      attr = { class = "potential_weight" },
    16.9 -      content = function()
   16.10 -        ui.tag{
   16.11 -          attr = { class = "value" },
   16.12 -          content = "(" .. tostring(value) .. ")"
   16.13 -        }
   16.14 -      end
   16.15 -    }
   16.16 -  end)
   16.17 -end
   16.18 \ No newline at end of file
    17.1 --- a/env/ui/field/potential_issue_weight.lua	Sun Feb 12 13:42:08 2012 +0100
    17.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    17.3 @@ -1,14 +0,0 @@
    17.4 -function ui.field.potential_issue_weight(args)
    17.5 -  ui.form_element(args, {fetch_value = true}, function(args)
    17.6 -    local value = args.value
    17.7 -    ui.tag{
    17.8 -      attr = { class = "potential_weight" },
    17.9 -      content = function()
   17.10 -        ui.tag{
   17.11 -          attr = { class = "value" },
   17.12 -          content = tostring(value)
   17.13 -        }
   17.14 -      end
   17.15 -    }
   17.16 -  end)
   17.17 -end
   17.18 \ No newline at end of file
    18.1 --- a/env/ui/field/satisfaction_informed.lua	Sun Feb 12 13:42:08 2012 +0100
    18.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    18.3 @@ -1,20 +0,0 @@
    18.4 -function ui.field.satisfaction_informed(args)
    18.5 -  ui.form_element(args, {fetch_value = true}, function(args)
    18.6 -    local value = args.value
    18.7 -    ui.tag{
    18.8 -      attr = { class = "satisfaction_informed" },
    18.9 -      content = function()
   18.10 -        ui.tag{
   18.11 -          attr = { class = "value" },
   18.12 -          content = function()
   18.13 -            slot.put(tostring(value) .. ' ')
   18.14 -            ui.image{
   18.15 -              static = "icons/16/thumb_up_green.png"
   18.16 -            }
   18.17 -          end
   18.18 -        }
   18.19 -      end
   18.20 -    }
   18.21 -  end)
   18.22 -end
   18.23 -
    19.1 --- a/env/ui/field/satisfaction_total.lua	Sun Feb 12 13:42:08 2012 +0100
    19.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    19.3 @@ -1,22 +0,0 @@
    19.4 -function ui.field.satisfaction_total(args)
    19.5 -  ui.form_element(args, {fetch_value = true}, function(args)
    19.6 -    local value = args.value
    19.7 -    ui.tag{
    19.8 -      attr = { class = "satisfaction_total" },
    19.9 -      content = function()
   19.10 -        ui.tag{
   19.11 -          attr = { class = "value" },
   19.12 -          content = function()
   19.13 -            slot.put("(")
   19.14 -            slot.put(tostring(value) .. ' ')
   19.15 -            ui.image{
   19.16 -              static = "icons/16/thumb_up_green.png"
   19.17 -            }
   19.18 -            slot.put(")")
   19.19 -          end
   19.20 -        }
   19.21 -      end
   19.22 -    }
   19.23 -  end)
   19.24 -end
   19.25 -
    20.1 --- a/env/ui/field/vote_later.lua	Sun Feb 12 13:42:08 2012 +0100
    20.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    20.3 @@ -1,14 +0,0 @@
    20.4 -function ui.field.vote_later(args)
    20.5 -  ui.form_element(args, {fetch_value = true}, function(args)
    20.6 -    local value = args.value
    20.7 -    ui.tag{
    20.8 -      attr = { class = "vote_later" },
    20.9 -      content = function()
   20.10 -        ui.tag{
   20.11 -          attr = { class = "value" },
   20.12 -          content = tostring(value)
   20.13 -        }
   20.14 -      end
   20.15 -    }
   20.16 -  end)
   20.17 -end
    21.1 --- a/env/ui/field/vote_now.lua	Sun Feb 12 13:42:08 2012 +0100
    21.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    21.3 @@ -1,14 +0,0 @@
    21.4 -function ui.field.vote_now(args)
    21.5 -  ui.form_element(args, {fetch_value = true}, function(args)
    21.6 -    local value = args.value
    21.7 -    ui.tag{
    21.8 -      attr = { class = "vote_now" },
    21.9 -      content = function()
   21.10 -        ui.tag{
   21.11 -          attr = { class = "value" },
   21.12 -          content = tostring(value)
   21.13 -        }
   21.14 -      end
   21.15 -    }
   21.16 -  end)
   21.17 -end
    22.1 --- a/model/initiative.lua	Sun Feb 12 13:42:08 2012 +0100
    22.2 +++ b/model/initiative.lua	Sun Feb 12 20:03:26 2012 +0100
    22.3 @@ -127,7 +127,6 @@
    22.4      :add_group_by('"initiative"."satisfied_informed_supporter_count"')
    22.5      :add_group_by('"initiative"."positive_votes"')
    22.6      :add_group_by('"initiative"."negative_votes"')
    22.7 -    :add_group_by('"initiative"."agreed"')
    22.8      :add_group_by('"initiative"."rank"')
    22.9      :add_group_by('"initiative"."suggested_initiative_id"')
   22.10      :add_group_by('"initiative"."text_search_data"')
    23.1 --- a/model/issue.lua	Sun Feb 12 13:42:08 2012 +0100
    23.2 +++ b/model/issue.lua	Sun Feb 12 20:03:26 2012 +0100
    23.3 @@ -140,8 +140,6 @@
    23.4      :add_group_by('"issue"."snapshot"')
    23.5      :add_group_by('"issue"."latest_snapshot_event"')
    23.6      :add_group_by('"issue"."population"')
    23.7 -    :add_group_by('"issue"."vote_now"')
    23.8 -    :add_group_by('"issue"."vote_later"')
    23.9      :add_group_by('"issue"."voter_count"')
   23.10      :add_group_by('"issue"."admission_time"')
   23.11      :add_group_by('"issue"."discussion_time"')
    24.1 --- a/static/style.css	Sun Feb 12 13:42:08 2012 +0100
    24.2 +++ b/static/style.css	Sun Feb 12 20:03:26 2012 +0100
    24.3 @@ -636,6 +636,7 @@
    24.4  
    24.5  .ui_filter {
    24.6    overflow: hidden;
    24.7 +  margin-bottom: 1ex;
    24.8  }
    24.9  
   24.10  .ui_filter_closed_head,

Impressum / About Us