summaryrefslogtreecommitdiff
path: root/chimere/forms.py
diff options
context:
space:
mode:
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
commit655238608edfa82a37e86294c9a4960df3bf9af7 (patch)
tree89094368e53053443657ebdd1f0867c2e96c35d2 /chimere/forms.py
parentc978532f9ac828a812acb6fbb12da978eb55dc28 (diff)
downloadChimè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.py34
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)