Projet

Général

Profil

« Précédent | Suivant » 

Révision 9156835d

Ajouté par Frédéric Péters il y a presque 3 ans

misc: extend category bits instead of replacing them (#53667)

Voir les différences:

auquotidien/auquotidien.py
32 32

  
33 33
import wcs.categories
34 34

  
35
wcs.categories.Category.XML_NODES = [
36
    ('name', 'str'),
37
    ('url_name', 'str'),
38
    ('description', 'str'),
39
    ('position', 'int'),
40
    ('homepage_position', 'str'),
41
    ('redirect_url', 'str'),
42
    ('limit', 'int'),
43
]
35
if ('homepage_position', 'str') not in wcs.categories.Category.XML_NODES:
36
    wcs.categories.Category.XML_NODES.append(('homepage_position', 'str'))
37
    wcs.categories.Category.XML_NODES.append(('limit', 'int'))
auquotidien/modules/categories_admin.py
27 27
import wcs.admin.categories
28 28

  
29 29

  
30
class CategoryUI:
30
class CategoryUI(wcs.admin.categories.CategoryUI):
31 31
    def __init__(self, category):
32 32
        self.category = category
33 33
        if self.category is None:
34 34
            self.category = Category()
35 35

  
36
    def get_form(self):
37
        form = Form(enctype='multipart/form-data')
38
        form.add(
39
            StringWidget, 'name', title=_('Category Name'), required=True, size=30, value=self.category.name
40
        )
41
        form.add(
42
            TextWidget,
43
            'description',
44
            title=_('Description'),
45
            cols=80,
46
            rows=10,
47
            value=self.category.description,
48
        )
49

  
36
    def get_form(self, **kwargs):
37
        form = super().get_form(**kwargs)
50 38
        homepage_redirect_url = get_cfg('misc', {}).get('homepage-redirect-url')
51 39
        if not homepage_redirect_url:
52 40
            form.add(
......
67 55
                title=_('Limit number of items displayed on homepage'),
68 56
                value=self.category.get_limit(),
69 57
            )
70

  
71
        form.add(
72
            StringWidget,
73
            'redirect_url',
74
            size=32,
75
            title=_('URL Redirection'),
76
            hint=_('If set, redirect the site category page to the given URL.'),
77
            value=self.category.redirect_url,
78
        )
79

  
80
        form.add_submit('submit', _('Submit'))
81
        form.add_submit('cancel', _('Cancel'))
82 58
        return form
83 59

  
84 60
    def submit_form(self, form):
85
        if self.category.id:
86
            self.category.name = form.get_widget('name').parse()
87
            category = self.category
88
        else:
89
            category = Category(name=form.get_widget('name').parse())
90

  
91
        name = form.get_widget('name').parse()
92
        category_names = [x.name for x in Category.select() if x.id != category.id]
93
        if name in category_names:
94
            form.get_widget('name').set_error(_('This name is already used'))
95
            raise ValueError()
96

  
97
        category.description = form.get_widget('description').parse()
98
        category.redirect_url = form.get_widget('redirect_url').parse()
61
        super().submit_form(form)
99 62

  
100 63
        homepage_redirect_url = get_cfg('misc', {}).get('homepage-redirect-url')
101 64
        if not homepage_redirect_url:
102
            category.homepage_position = form.get_widget('homepage_position').parse()
103
            category.limit = form.get_widget('limit').parse()
65
            self.category.homepage_position = form.get_widget('homepage_position').parse()
66
            self.category.limit = form.get_widget('limit').parse()
104 67

  
105
        category.store()
68
        self.category.store()
106 69

  
107 70

  
108 71
class CategoryPage(wcs.admin.categories.CategoryPage):

Formats disponibles : Unified diff