Projet

Général

Profil

Télécharger (1,54 ko) Statistiques
| Branche: | Tag: | Révision:

root / corbo / forms.py @ bf5d84a3

1
from django import forms
2
from django.utils.translation import ugettext_lazy as _
3
from django.utils.text import slugify
4
from django.core.exceptions import ObjectDoesNotExist
5

    
6
from .models import Announce, Category, Broadcast, channel_choices
7

    
8

    
9
class AnnounceForm(forms.ModelForm):
10

    
11
    class Meta:
12
        model = Announce
13
        exclude = ('identifier',)
14
        widgets = {
15
            'publication_time': forms.TextInput(attrs={'class': 'datetimepicker',
16
                                                       'readonly': True}),
17
            'expiration_time': forms.TextInput(attrs={'class': 'datetimepicker',
18
                                                      'readonly': True}),
19
            'category': forms.HiddenInput()
20
        }
21

    
22
    def save(self, *args, **kwargs):
23
        instance = super(AnnounceForm, self).save(*args, **kwargs)
24
        if instance:
25
            Broadcast.objects.get_or_create(announce=instance)
26
        return instance
27

    
28

    
29
class CategoryForm(forms.ModelForm):
30
    class Meta:
31
        fields = ('name', 'rss_feed_url')
32
        model = Category
33

    
34
    def save(self, commit=True):
35
        slug = slugify(self.instance.name)
36
        base_slug = slug
37
        if not self.instance.slug:
38
            i = 1
39
            while True:
40
                try:
41
                    c = Category.objects.get(slug=slug)
42
                except ObjectDoesNotExist:
43
                    break
44
                i += 1
45
                slug = '%s-%s' % (base_slug, i)
46
            self.instance.slug = slug
47
        return super(CategoryForm, self).save(commit=commit)
(4-4/11)