src/ldt/ldt/ldt_utils/forms.py
author verrierj
Thu, 02 Feb 2012 16:10:55 +0100
changeset 511 2edec83f1bd8
parent 404 4adc42ab55fd
child 527 348844fc63ce
permissions -rw-r--r--
Fix bugs in forms
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
122
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
     1
from django import forms
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
     2
from django.utils.translation import ugettext_lazy as _
271
99347d5275b6 Contents can be shared with groups
verrierj
parents: 269
diff changeset
     3
from django.contrib.auth.models import Group
122
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
     4
from ldt.forms import widgets as ldt_widgets
269
4b8042fc3d33 Moved Share to form to security module
verrierj
parents: 268
diff changeset
     5
from ldt.security.forms import ShareForm
122
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
     6
from models import Project, Content, Media
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
     7
from utils import generate_uuid
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
     8
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
     9
class LdtImportForm(forms.Form):
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    10
    importFile = forms.FileField()
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    11
    videoPath = forms.CharField(required=False)
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    12
    flatten = forms.BooleanField(required=False, initial=True)   
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    13
    
268
c0c161736794 Projects can be shared with users and groups. Does not work with contents yet, still some bugs in templates
verrierj
parents: 267
diff changeset
    14
class LdtAddForm(ShareForm):
225
691a394a7afd Improve project creation window
verrierj
parents: 178
diff changeset
    15
    title = forms.CharField(required=True)
269
4b8042fc3d33 Moved Share to form to security module
verrierj
parents: 268
diff changeset
    16
    contents = forms.ModelMultipleChoiceField(Content.objects.all())
178
4b83c370dc8a Added project description and tooltip
verrierj
parents: 160
diff changeset
    17
    description = forms.CharField(widget=forms.Textarea, required=False)
268
c0c161736794 Projects can be shared with users and groups. Does not work with contents yet, still some bugs in templates
verrierj
parents: 267
diff changeset
    18
    
122
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    19
    class Meta:
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    20
        model = Project
269
4b8042fc3d33 Moved Share to form to security module
verrierj
parents: 268
diff changeset
    21
        exclude = ("ldt_id", "ldt", "created_by", "changed_by", "creation_date", "modification_date", "state", "owner")   
122
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    22
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    23
class ReindexForm(forms.Form):
269
4b8042fc3d33 Moved Share to form to security module
verrierj
parents: 268
diff changeset
    24
    contents = forms.ModelMultipleChoiceField(Content.objects.all())
122
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    25
    index_projects = forms.BooleanField(required=False, initial=False)
340
5f919a978f50 Stats for annotations volume can be computed using ./manage.py statannotation [-c content_id] or in the admin pages of module ldt_utils.
verrierj
parents: 327
diff changeset
    26
    
5f919a978f50 Stats for annotations volume can be computed using ./manage.py statannotation [-c content_id] or in the admin pages of module ldt_utils.
verrierj
parents: 327
diff changeset
    27
class StatAnnotationForm(forms.Form):
343
1b9b509013a7 Stats are recomputed without parsing extra xml file when projects are saved from ligne de temps.
verrierj
parents: 340
diff changeset
    28
    projects = forms.ModelMultipleChoiceField(Project.objects.all())
340
5f919a978f50 Stats for annotations volume can be computed using ./manage.py statannotation [-c content_id] or in the admin pages of module ldt_utils.
verrierj
parents: 327
diff changeset
    29
    choose_all = forms.BooleanField(required=False, initial=False)
122
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    30
279
b50206f6238f Add cache form ObjectPermissionChecker objects
verrierj
parents: 271
diff changeset
    31
class SearchForm(forms.Form):
122
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    32
    search = forms.CharField(label=_("Search"))
160
123aa9bc55a7 Fixed minor bugs and added strings to django.po
verrierj
parents: 122
diff changeset
    33
    field = forms.ChoiceField([(u"all", _("all")), (u"title", _("title")), (u"abstract", _("resume")), (u"tags", _("tags"))], label=_("Fields"))
122
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    34
    ldt_pres = forms.BooleanField(required=False, initial=True, label=_("Display the results in Lignes De Temps"))
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    35
268
c0c161736794 Projects can be shared with users and groups. Does not work with contents yet, still some bugs in templates
verrierj
parents: 267
diff changeset
    36
class AddProjectForm (ShareForm):
122
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    37
    title = forms.CharField(widget=forms.TextInput(attrs={'class':'inputbox required'}))
178
4b83c370dc8a Added project description and tooltip
verrierj
parents: 160
diff changeset
    38
    description = forms.CharField(widget=forms.Textarea, required=False)
268
c0c161736794 Projects can be shared with users and groups. Does not work with contents yet, still some bugs in templates
verrierj
parents: 267
diff changeset
    39
    
c0c161736794 Projects can be shared with users and groups. Does not work with contents yet, still some bugs in templates
verrierj
parents: 267
diff changeset
    40
    class Meta:
c0c161736794 Projects can be shared with users and groups. Does not work with contents yet, still some bugs in templates
verrierj
parents: 267
diff changeset
    41
        model = Project
c0c161736794 Projects can be shared with users and groups. Does not work with contents yet, still some bugs in templates
verrierj
parents: 267
diff changeset
    42
        exclude = ("ldt_id", "ldt", "created_by", "changed_by", "creation_date", "modification_date", "state", "owner", "contents")   
122
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    43
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    44
class CopyProjectForm (forms.Form):
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    45
    title = forms.CharField()
285
1cc364d7b298 Fix bug in project copy from group tab
verrierj
parents: 279
diff changeset
    46
    group = forms.IntegerField(required=False)    
122
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    47
269
4b8042fc3d33 Moved Share to form to security module
verrierj
parents: 268
diff changeset
    48
class ContentForm(ShareForm):
122
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    49
    iriurl = forms.CharField(max_length=1024, widget=forms.HiddenInput, required=False)
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    50
    content_creation_date = forms.SplitDateTimeField(widget=ldt_widgets.LdtSplitDateTime, required=False, label=_("content.content_creation_date"))
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    51
    media_input_type = forms.ChoiceField(required=False, label=_("content.media_input_type"), choices=(("upload", _("file_upload")), ("url", _("url")), ("link", _("existing_media")), ("create", _("create_media")), ("none", _("none_media"))))
260
3d9cb9b6ff8d Add permission form to content
verrierj
parents: 256
diff changeset
    52
    groups = forms.ModelMultipleChoiceField(Group.objects.all(), required=False)
383
a99ea8eb8b9a Front projects are created with each new content
verrierj
parents: 343
diff changeset
    53
    is_public = forms.BooleanField(required=False)
511
2edec83f1bd8 Fix bugs in forms
verrierj
parents: 404
diff changeset
    54
    front_project = forms.ModelChoiceField(queryset=Project.objects.none(), required=False, label=_("content.front_project"))
2edec83f1bd8 Fix bugs in forms
verrierj
parents: 404
diff changeset
    55
    duration = forms.IntegerField(required=True) 
266
a35924820af7 Contents can be published for everyone
verrierj
parents: 262
diff changeset
    56
        
122
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    57
    def clean_iri_id(self):
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    58
        data = self.cleaned_data.get('iri_id')
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    59
        if not data:
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    60
            data = generate_uuid()
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    61
        return data
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    62
    
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    63
    def clean(self):
269
4b8042fc3d33 Moved Share to form to security module
verrierj
parents: 268
diff changeset
    64
        super(ContentForm, self).clean()
122
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    65
        cleaned_data = self.cleaned_data
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    66
        iriurl_data = cleaned_data.get('iriurl')
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    67
        iri_id_data = cleaned_data['iri_id']
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    68
        if not iriurl_data:
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    69
            iriurl_data = "%s/%s.iri" % (iri_id_data, iri_id_data)    
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    70
        cleaned_data['iriurl'] = iriurl_data
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    71
        return cleaned_data
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    72
    
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    73
    class Meta:
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    74
        model = Content
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    75
        exclude = ("creation_date", "update_date", "authors")
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    76
        widgets = {
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    77
                   'iri_id': forms.HiddenInput,
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    78
        }
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    79
        
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    80
    class Media:
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    81
        css = {
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    82
            'all' : ('admin/css/forms.css', 'admin/css/base.css', 'admin/css/widgets.css')
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    83
               }
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    84
        
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    85
class MediaForm(forms.ModelForm):
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    86
    
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    87
    media_creation_date = forms.SplitDateTimeField(widget=ldt_widgets.LdtSplitDateTime, required=False)
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    88
    media_file = forms.FileField(required=False);
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    89
    src = forms.CharField(required=False, max_length=1024)
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    90
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    91
    class Meta:
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    92
        model = Media
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    93
        exclude = ("creation_date", "update_date", "creator")
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    94
    
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    95
    class Media:
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    96
        css = {
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    97
            'all' : ('admin/css/forms.css', 'admin/css/base.css', 'admin/css/widgets.css')
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    98
               }
228
94fdb72b7d56 Users can add their own groups
verrierj
parents: 178
diff changeset
    99
        
271
99347d5275b6 Contents can be shared with groups
verrierj
parents: 269
diff changeset
   100
class GroupAddForm(ShareForm):
228
94fdb72b7d56 Users can add their own groups
verrierj
parents: 178
diff changeset
   101
    name = forms.CharField(required=True)
327
e801e50edcce A description can be added to a group
verrierj
parents: 285
diff changeset
   102
    description = forms.CharField(widget=forms.Textarea, required=False)
234
331f767d8996 Display error message when creating a group with an already existing name
verrierj
parents: 233
diff changeset
   103
    
331f767d8996 Display error message when creating a group with an already existing name
verrierj
parents: 233
diff changeset
   104
    class Meta:
331f767d8996 Display error message when creating a group with an already existing name
verrierj
parents: 233
diff changeset
   105
        model = Group