Projet

Général

Profil

« Précédent | Suivant » 

Révision a9ee9454

Ajouté par Nicolas Roche il y a plus de 4 ans

myspace: upgrade sort and remove dedicated display form (#38761)

Voir les différences:

auquotidien/modules/root.py
19 19
import wcs
20 20
import wcs.root
21 21
from wcs import qommon
22
from wcs.forms.root import RootDirectory as FormsRootDirectory
22 23
from wcs.qommon import get_cfg, get_logger
23 24
from wcs.qommon import template
24 25
from wcs.qommon import errors
......
70 71
Category.TEXT_ATTRIBUTES = ['name', 'url_name', 'description', 'homepage_position']
71 72
Category.INT_ATTRIBUTES = ['position', 'limit']
72 73

  
73

  
74
class FormsRootDirectory(wcs.forms.root.RootDirectory):
75

  
76
    def _q_index(self, *args):
77
        get_response().filter['is_index'] = True
78
        return wcs.forms.root.RootDirectory._q_index(self, *args)
79

  
80
    def user_forms(self, user_forms):
81
        r = TemplateIO(html=True)
82
        base_url = get_publisher().get_root_url()
83

  
84
        draft = [x for x in user_forms if x.is_draft() and not x.formdef.is_disabled()]
85
        if draft:
86
            r += htmltext('<h4 id="drafts">%s</h4>') % _('My Current Drafts')
87
            r += htmltext('<ul>')
88
            for f in draft:
89
                if f.formdef.category:
90
                    category_url = '%s' % f.formdef.category.url_name
91
                else:
92
                    category_url = '.'
93
                r += htmltext('<li><a href="%s%s/%s/%s">%s</a>, %s') % (base_url,
94
                    category_url,
95
                    f.formdef.url_name, f.id, f.formdef.name,
96
                    misc.localstrftime(f.receipt_time))
97
                r += htmltext(' (<a href="%s%s/%s/%s?remove-draft">%s</a>)') % (base_url,
98
                    category_url,
99
                    f.formdef.url_name, f.id, _('delete'))
100
                r += htmltext('</li>')
101
            r += htmltext('</ul>')
102

  
103
        forms_by_status_name = {}
104
        for f in user_forms:
105
            if f.is_draft():
106
                continue
107
            status = f.get_visible_status()
108
            if status:
109
                status_name = status.name
110
            else:
111
                status_name = None
112
            if status_name in forms_by_status_name:
113
                forms_by_status_name[status_name].append(f)
114
            else:
115
                forms_by_status_name[status_name] = [f]
116
        for status_name in forms_by_status_name:
117
            if status_name:
118
                r += htmltext('<h4>%s</h4>') % _('My forms with status "%s"') % status_name
119
            else:
120
                r += htmltext('<h4>%s</h4>') % _('My forms with an unknown status') % status_name
121
            r += htmltext('<ul>')
122
            forms_by_status_name[status_name].sort(lambda x,y: cmp(x.receipt_time, y.receipt_time))
123
            for f in forms_by_status_name[status_name]:
124
                if f.formdef.category_id:
125
                    category_url = f.formdef.category.url_name
126
                else:
127
                    category_url = '.'
128
                r += htmltext('<li><a href="%s%s/%s/%s/">%s</a>, %s</li>') % (
129
                        base_url,
130
                        category_url,
131
                        f.formdef.url_name, f.id, f.formdef.name, 
132
                        misc.localstrftime(f.receipt_time))
133
            r += htmltext('</ul>')
134
        return r.getvalue()
135

  
136

  
137 74
OldRegisterDirectory = wcs.root.RegisterDirectory
138 75

  
139 76
class AlternateRegisterDirectory(OldRegisterDirectory):

Formats disponibles : Unified diff