src/ldt/ldt/ldt_utils/forms.py
author verrierj
Wed, 30 Nov 2011 10:44:15 +0100
changeset 262 1105a5ed9f8f
parent 260 3d9cb9b6ff8d
parent 225 691a394a7afd
child 266 a35924820af7
permissions -rw-r--r--
Merge with d79097e98244a8f6611a950c95323517300eb4e4
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 _
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
     3
from django.contrib.auth.models import User, 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
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
     5
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
     6
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
     7
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
     8
class LdtImportForm(forms.Form):
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
     9
    importFile = forms.FileField()
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    10
    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
    11
    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
    12
    
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    13
class LdtAddForm(forms.ModelForm):
225
691a394a7afd Improve project creation window
verrierj
parents: 178
diff changeset
    14
    title = forms.CharField(required=True)
122
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    15
    contents = forms.ModelMultipleChoiceField(Content.objects.all()) #@UndefinedVariable
178
4b83c370dc8a Added project description and tooltip
verrierj
parents: 160
diff changeset
    16
    description = forms.CharField(widget=forms.Textarea, required=False)
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
    17
    groups = forms.ModelMultipleChoiceField(Group.objects.all(), required=False)
122
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    18
    # owner = forms.ModelChoiceField(Author.objects.all())
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
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    21
        exclude = ("ldt_id", "ldt", "created_by", "changed_by", "creation_date", "modification_date", "state", "owner")   
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):
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    29
    contents = forms.ModelMultipleChoiceField(Content.objects.all()) #@UndefinedVariable
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
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    32
class SearchForm(forms.Form):
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
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    37
class AddProjectForm (forms.Form):
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)
122
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    40
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    41
class CopyProjectForm (forms.Form):
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    42
    title = forms.CharField()
262
1105a5ed9f8f Merge with d79097e98244a8f6611a950c95323517300eb4e4
verrierj
parents: 260 225
diff changeset
    43
    group = forms.IntegerField()    
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 ContentForm(forms.ModelForm):
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    46
    #iri_id = forms.CharField(max_length=1024, widget=forms.HiddenInput, initial=generate_uuid)
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    47
    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
    48
    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
    49
    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
    50
    groups = forms.ModelMultipleChoiceField(Group.objects.all(), required=False)
122
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    51
    
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    52
    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
    53
        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
    54
        if not data:
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    55
            data = generate_uuid()
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    56
        return data
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    57
    
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    58
    def clean(self):
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    59
        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
    60
        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
    61
        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
    62
        if not iriurl_data:
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    63
            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
    64
        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
    65
        return cleaned_data
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    66
    
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    67
    class Meta:
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    68
        model = Content
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    69
        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
    70
        widgets = {
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    71
                   'iri_id': forms.HiddenInput,
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
        
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    74
    class Media:
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    75
        css = {
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    76
            '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
    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 MediaForm(forms.ModelForm):
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    80
    
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    81
    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
    82
    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
    83
    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
    84
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    85
    class Meta:
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    86
        model = Media
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    87
        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
    88
    
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    89
    class Media:
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    90
        css = {
f3a013f66974 Add search form, displaying the results in a regular LDT template. Update language files.
cavaliet
parents: 111
diff changeset
    91
            '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
    92
               }
228
94fdb72b7d56 Users can add their own groups
verrierj
parents: 178
diff changeset
    93
        
234
331f767d8996 Display error message when creating a group with an already existing name
verrierj
parents: 233
diff changeset
    94
class GroupAddForm(forms.ModelForm):
228
94fdb72b7d56 Users can add their own groups
verrierj
parents: 178
diff changeset
    95
    name = forms.CharField(required=True)
94fdb72b7d56 Users can add their own groups
verrierj
parents: 178
diff changeset
    96
    members_list = forms.ModelMultipleChoiceField(User.objects.all(), required=False)
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
    97
    admin_list = forms.ModelMultipleChoiceField(User.objects.all(), required=False)
234
331f767d8996 Display error message when creating a group with an already existing name
verrierj
parents: 233
diff changeset
    98
    
331f767d8996 Display error message when creating a group with an already existing name
verrierj
parents: 233
diff changeset
    99
    class Meta:
331f767d8996 Display error message when creating a group with an already existing name
verrierj
parents: 233
diff changeset
   100
        model = Group