diff options
author | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-11-26 17:27:30 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-11-26 17:27:30 +0100 |
commit | 655238608edfa82a37e86294c9a4960df3bf9af7 (patch) | |
tree | 89094368e53053443657ebdd1f0867c2e96c35d2 /chimere/forms.py | |
parent | c978532f9ac828a812acb6fbb12da978eb55dc28 (diff) | |
download | Chimère-655238608edfa82a37e86294c9a4960df3bf9af7.tar.bz2 Chimère-655238608edfa82a37e86294c9a4960df3bf9af7.zip |
Fix auto-recognition of multimedia files
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) |