Projet

Général

Profil

0001-misc-rename-move-FormDefSubstVar-to-lazy-variables-m.patch

Frédéric Péters, 12 avril 2019 15:25

Télécharger (2,9 ko)

Voir les différences:

Subject: [PATCH 1/2] misc: rename/move FormDefSubstVar to lazy variables
 module (#32244)

 wcs/formdef.py   | 18 ++----------------
 wcs/variables.py | 19 +++++++++++++++++--
 2 files changed, 19 insertions(+), 18 deletions(-)
wcs/formdef.py
1193 1193
            'form_slug': self.url_name,
1194 1194
        }
1195 1195
        if not minimal:
1196
            d['form_objects'] = FormDefSubstVar(self)
1196
            from wcs.variables import LazyFormDef
1197
            d['form_objects'] = LazyFormDef(self).objects
1197 1198
        if self.category:
1198 1199
            d.update(self.category.get_substitution_variables(minimal=minimal))
1199 1200
        d.update(self.get_variable_options())
......
1415 1416
        return pickle.dumps(object, protocol=2) + pickle.dumps(object.fields, protocol=2)
1416 1417

  
1417 1418

  
1418
class FormDefSubstVar(object):
1419
    def __init__(self, formdef):
1420
        self.formdef = formdef
1421

  
1422
    @property
1423
    def count(self):
1424
        return self.formdef.data_class().count()
1425

  
1426
    def __getattr__(self, attribute):
1427
        if attribute.startswith('count_status_'):
1428
            status = attribute[len('count_status_'):]
1429
            return len(self.formdef.data_class().get_ids_with_indexed_value(
1430
                'status', 'wf-%s' % status))
1431
        return super(FormDefSubstVar, self).__getattr__(attribute)
1432

  
1433 1419
from qommon.admin.emails import EmailsDirectory
1434 1420

  
1435 1421
EmailsDirectory.register('new_user', N_('Notification of creation to user'),
wcs/variables.py
23 23
from qommon.templatetags.qommon import parse_datetime
24 24

  
25 25

  
26
class LazyFormDefObjectsManager(object):
27
    def __init__(self, formdef):
28
        self._formdef = formdef
29

  
30
    @property
31
    def count(self):
32
        return self._formdef.data_class().count()
33

  
34
    def __getattr__(self, attribute):
35
        if attribute.startswith('count_status_'):
36
            status = attribute[len('count_status_'):]
37
            return len(self._formdef.data_class().get_ids_with_indexed_value(
38
                'status', 'wf-%s' % status))
39
        return super(FormDefSubstVar, self).__getattr__(attribute)
40

  
41

  
26 42
class LazyFormDef(object):
27 43
    def __init__(self, formdef):
28 44
        self._formdef = formdef
......
37 53

  
38 54
    @property
39 55
    def objects(self):
40
        from wcs.formdef import FormDefSubstVar
41
        return FormDefSubstVar(self._formdef)
56
        return LazyFormDefObjectsManager(self._formdef)
42 57

  
43 58
    @property
44 59
    def option(self):
45
-