diff options
Diffstat (limited to 'chimere/forms.py')
| -rw-r--r-- | chimere/forms.py | 34 | 
1 files changed, 8 insertions, 26 deletions
| diff --git a/chimere/forms.py b/chimere/forms.py index 813f0f8..eb64a04 100644 --- a/chimere/forms.py +++ b/chimere/forms.py @@ -33,8 +33,7 @@ from django.core.mail import EmailMessage, BadHeaderError  from chimere.models import Marker, Route, PropertyModel, Property, Area,\     News, Category, SubCategory, RouteFile, MultimediaFile, MultimediaType, \ -   PictureFile, Importer, IMPORTER_CHOICES, PropertyModelChoice, IFRAME_LINKS,\ -   MultimediaExtension +   PictureFile, Importer, IMPORTER_CHOICES, IFRAME_LINKS, MultimediaExtension  from chimere.widgets import AreaField, PointField, TextareaWidget, \      ImportFiltrWidget, TextareaAdminWidget, DatePickerWidget, \      ImporterChoicesWidget, RE_XAPI @@ -414,6 +413,11 @@ class MultimediaFileAdminForm(forms.ModelForm):              '%schimere/js/menu-sort.js' % settings.STATIC_URL,          ] +    def __init__(self, *args, **kwargs): +        super(MultimediaFileAdminForm, self).__init__(*args, **kwargs) +        self.fields['multimedia_type'].widget.choices = \ +                                                MultimediaType.get_tuples() +  class MultimediaFileForm(BaseFileForm):      """      Form for a multimedia file @@ -427,30 +431,8 @@ class MultimediaFileForm(BaseFileForm):          super(MultimediaFileForm, self).__init__(*args, **kwargs)          self.fields['multimedia_type'].widget.choices = \                                                  MultimediaType.get_tuples() - -    def clean(self): -        if not self.cleaned_data.get('multimedia_type') or\ -           not self.cleaned_data.get('url'): -            return self.cleaned_data -        if self.cleaned_data['multimedia_type'].name != 'auto': -            return self.cleaned_data -        url = self.cleaned_data['url'] -        for mm_type in IFRAME_LINKS: -            res, embeded_url = IFRAME_LINKS[mm_type] -            if [r for r in res if r.search(url)]: -                multimedia_type = MultimediaType.objects.get( -                                    name__iexact=mm_type) -                self.cleaned_data['multimedia_type'] = multimedia_type -                return self.cleaned_data -        ext = url.split(".")[-1] -        q = MultimediaExtension.objects.filter(name__iendswith=ext) -        if q.count(): -            self.cleaned_data['multimedia_type'] = q.all()[0].multimedia_type -        else: -            # default to an iframe -            self.cleaned_data['multimedia_type'] = \ -                MultimediaType.objects.filter(name__iexact='iframe').all()[0] -        return self.cleaned_data +        # this can be auto detect +        self.fields['multimedia_type'].required = False  MultimediaFileFormSet = formset_factory(MultimediaFileForm, can_delete=True) | 
