src/ldt/ldt/ldt_utils/forms.py
author grandjoncl
Wed, 02 Jan 2013 17:21:19 +0100
branchmodifications_relative_ldtxml
changeset 1045 cb83b868164a
parent 818 1762d0711008
child 1296 1a24fb79eb11
permissions -rw-r--r--
solve some problems of css for the create content page (modifications in forms.py and ldtform.css) publishedprojectslist.html : modification to have a valid link to the embed page
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
818
1762d0711008 Add a custom duration field for the create content form
rougeronj
parents: 795
diff changeset
     4
from ldt.forms import widgets as ldt_widgets, fields as ldt_fields
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):
534
e2d15b14ce56 Fix stat form in admin
verrierj
parents: 530
diff changeset
    28
    contents = forms.ModelMultipleChoiceField(Content.objects.all(), required=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
    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"))
570
361ecea621e0 Little clean up for search
verrierj
parents: 535
diff changeset
    35
    page = forms.IntegerField(required=False, widget=forms.HiddenInput())
599
5207abea900d possibility to search by group of tagged medias.
cavaliet
parents: 570
diff changeset
    36
    content_tag = forms.CharField(label=_("Content Tag"), required=False, widget=forms.HiddenInput())
122
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    37
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
    38
class AddProjectForm (ShareForm):
122
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    39
    title = forms.CharField(widget=forms.TextInput(attrs={'class':'inputbox required'}))
178
4b83c370dc8a Added project description and tooltip
verrierj
parents: 160
diff changeset
    40
    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
    41
    
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
    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
    43
        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
    44
        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
    45
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    46
class CopyProjectForm (forms.Form):
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    47
    title = forms.CharField()
285
1cc364d7b298 Fix bug in project copy from group tab
verrierj
parents: 279
diff changeset
    48
    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
    49
269
4b8042fc3d33 Moved Share to form to security module
verrierj
parents: 268
diff changeset
    50
class ContentForm(ShareForm):
122
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    51
    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
    52
    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
    53
    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
    54
    groups = forms.ModelMultipleChoiceField(Group.objects.all(), required=False)
780
35631012b6d4 Commit Julien:
Julien Rougeron <julien.rougeron@iri.centrepompidou.fr>
parents: 779
diff changeset
    55
    is_public = forms.BooleanField(required=False)
511
2edec83f1bd8 Fix bugs in forms
verrierj
parents: 404
diff changeset
    56
    front_project = forms.ModelChoiceField(queryset=Project.objects.none(), required=False, label=_("content.front_project"))
818
1762d0711008 Add a custom duration field for the create content form
rougeronj
parents: 795
diff changeset
    57
    duration = ldt_fields.LdtDurationField(required=True, label=_("content.duration")+" (Ms, M:S, H:M:S, HhM, Ss, Ssec)", formats=["%M:%S", "%H:%M:%S", "%Hh%M", "%Ss", "%Ssec"])
266
a35924820af7 Contents can be published for everyone
verrierj
parents: 262
diff changeset
    58
        
122
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    59
    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
    60
        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
    61
        if not data:
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    62
            data = generate_uuid()
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    63
        return data
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    64
    
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    65
    def clean(self):
269
4b8042fc3d33 Moved Share to form to security module
verrierj
parents: 268
diff changeset
    66
        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
    67
        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
    68
        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
    69
        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
    70
        if not iriurl_data:
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    71
            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
    72
        cleaned_data['iriurl'] = iriurl_data
530
a69f1af2fe47 Little correction on content tag management.
cavaliet
parents: 527
diff changeset
    73
        # if needed, we add a comma to the tag list, to force comma separated list and enable tags with spaces.
535
7ef1fee10085 Little correction on content tag management.
cavaliet
parents: 534
diff changeset
    74
        if ',' not in cleaned_data['tags'] and cleaned_data['tags']!="" :
530
a69f1af2fe47 Little correction on content tag management.
cavaliet
parents: 527
diff changeset
    75
            cleaned_data['tags'] = cleaned_data['tags'] + ','
122
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    76
        return cleaned_data
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    77
    
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    78
    class Meta:
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    79
        model = Content
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    80
        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
    81
        widgets = {
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    82
                   'iri_id': forms.HiddenInput,
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 Media:
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    86
        css = {
1045
cb83b868164a solve some problems of css for the create content page (modifications in forms.py and ldtform.css)
grandjoncl
parents: 818
diff changeset
    87
            'all' : ('admin/css/forms.css', 'admin/css/widgets.css')
122
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    88
               }
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    89
        
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    90
class MediaForm(forms.ModelForm):
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    91
    
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    92
    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
    93
    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
    94
    src = forms.CharField(required=False, max_length=1024)
795
923429f142ea Possibility to list a content on the front or not, with a private media. A media can be private, and the content public (listed or not)
rougeronj
parents: 780
diff changeset
    95
    media_public = forms.BooleanField(required=False)
122
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    96
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    97
    class Meta:
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    98
        model = Media
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    99
        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
   100
    
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
   101
    class Media:
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
   102
        css = {
1045
cb83b868164a solve some problems of css for the create content page (modifications in forms.py and ldtform.css)
grandjoncl
parents: 818
diff changeset
   103
            'all' : ('admin/css/forms.css', 'admin/css/widgets.css')
122
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
   104
               }
228
94fdb72b7d56 Users can add their own groups
verrierj
parents: 178
diff changeset
   105
        
271
99347d5275b6 Contents can be shared with groups
verrierj
parents: 269
diff changeset
   106
class GroupAddForm(ShareForm):
228
94fdb72b7d56 Users can add their own groups
verrierj
parents: 178
diff changeset
   107
    name = forms.CharField(required=True)
327
e801e50edcce A description can be added to a group
verrierj
parents: 285
diff changeset
   108
    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
   109
    
331f767d8996 Display error message when creating a group with an already existing name
verrierj
parents: 233
diff changeset
   110
    class Meta:
331f767d8996 Display error message when creating a group with an already existing name
verrierj
parents: 233
diff changeset
   111
        model = Group