src/ldt/ldt/ldt_utils/forms.py
author verrierj
Mon, 12 Dec 2011 15:57:35 +0100
changeset 279 b50206f6238f
parent 271 99347d5275b6
child 285 1cc364d7b298
permissions -rw-r--r--
Add cache form ObjectPermissionChecker objects
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
235
e5e5c4aeede9 User can leave groups and code is cleaner when updating project permissions
verrierj
parents: 234
diff changeset
    23
class PermissionForm(forms.Form):
e5e5c4aeede9 User can leave groups and code is cleaner when updating project permissions
verrierj
parents: 234
diff changeset
    24
    share = forms.BooleanField(required=False, widget=forms.CheckboxInput(attrs={'class':'checkbox_group'}))
238
b738eb0717de Improved forms about group management
verrierj
parents: 235
diff changeset
    25
    perms = forms.CharField(required=False, widget=forms.HiddenInput(attrs={'class':'perm_field'})) 
235
e5e5c4aeede9 User can leave groups and code is cleaner when updating project permissions
verrierj
parents: 234
diff changeset
    26
    group = forms.IntegerField(required=False, widget=forms.HiddenInput())
233
f6d009f83e38 User can choose how to share a project at creation (read/write). Permissions updating does not work yet.
verrierj
parents: 228
diff changeset
    27
122
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    28
class ReindexForm(forms.Form):
269
4b8042fc3d33 Moved Share to form to security module
verrierj
parents: 268
diff changeset
    29
    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
    30
    index_projects = forms.BooleanField(required=False, initial=False)
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    31
279
b50206f6238f Add cache form ObjectPermissionChecker objects
verrierj
parents: 271
diff changeset
    32
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
    33
    search = forms.CharField(label=_("Search"))
160
123aa9bc55a7 Fixed minor bugs and added strings to django.po
verrierj
parents: 122
diff changeset
    34
    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
    35
    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
    36
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
    37
class AddProjectForm (ShareForm):
122
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    38
    title = forms.CharField(widget=forms.TextInput(attrs={'class':'inputbox required'}))
178
4b83c370dc8a Added project description and tooltip
verrierj
parents: 160
diff changeset
    39
    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
    40
    
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
    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
    42
        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
    43
        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
    44
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    45
class CopyProjectForm (forms.Form):
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    46
    title = forms.CharField()
262
1105a5ed9f8f Merge with d79097e98244a8f6611a950c95323517300eb4e4
verrierj
parents: 260 225
diff changeset
    47
    group = forms.IntegerField()    
122
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    48
269
4b8042fc3d33 Moved Share to form to security module
verrierj
parents: 268
diff changeset
    49
class ContentForm(ShareForm):
122
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    50
    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
    51
    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
    52
    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
    53
    groups = forms.ModelMultipleChoiceField(Group.objects.all(), required=False)
266
a35924820af7 Contents can be published for everyone
verrierj
parents: 262
diff changeset
    54
    is_public = forms.BooleanField(required=False)  
a35924820af7 Contents can be published for everyone
verrierj
parents: 262
diff changeset
    55
        
122
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    56
    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
    57
        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
    58
        if not data:
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    59
            data = generate_uuid()
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    60
        return data
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    61
    
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    62
    def clean(self):
269
4b8042fc3d33 Moved Share to form to security module
verrierj
parents: 268
diff changeset
    63
        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
    64
        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
    65
        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
    66
        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
    67
        if not iriurl_data:
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    68
            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
    69
        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
    70
        return cleaned_data
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    71
    
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    72
    class Meta:
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    73
        model = Content
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    74
        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
    75
        widgets = {
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    76
                   'iri_id': forms.HiddenInput,
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
        
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    79
    class Media:
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    80
        css = {
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    81
            '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
    82
               }
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
class MediaForm(forms.ModelForm):
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    85
    
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    86
    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
    87
    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
    88
    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
    89
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    90
    class Meta:
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    91
        model = Media
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    92
        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
    93
    
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    94
    class Media:
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    95
        css = {
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    96
            '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
    97
               }
228
94fdb72b7d56 Users can add their own groups
verrierj
parents: 178
diff changeset
    98
        
271
99347d5275b6 Contents can be shared with groups
verrierj
parents: 269
diff changeset
    99
class GroupAddForm(ShareForm):
228
94fdb72b7d56 Users can add their own groups
verrierj
parents: 178
diff changeset
   100
    name = forms.CharField(required=True)
234
331f767d8996 Display error message when creating a group with an already existing name
verrierj
parents: 233
diff changeset
   101
    
331f767d8996 Display error message when creating a group with an already existing name
verrierj
parents: 233
diff changeset
   102
    class Meta:
331f767d8996 Display error message when creating a group with an already existing name
verrierj
parents: 233
diff changeset
   103
        model = Group