diff options
| -rw-r--r-- | chimere/forms.py | 8 | ||||
| -rw-r--r-- | chimere/models.py | 9 | 
2 files changed, 5 insertions, 12 deletions
diff --git a/chimere/forms.py b/chimere/forms.py index fb71057..84ae27b 100644 --- a/chimere/forms.py +++ b/chimere/forms.py @@ -280,6 +280,7 @@ class BaseFileForm(forms.ModelForm):          if not hasattr(self, '_related_name') or not self._related_name:              raise ImproperlyConfigured          super(BaseFileForm, self).__init__(*args, **kwargs) +        self.fields.pop('marker')      def save(self, associated_marker):          if not hasattr(self, 'cleaned_data') or not self.cleaned_data: @@ -287,11 +288,8 @@ class BaseFileForm(forms.ModelForm):          instance = None          if self.cleaned_data.get('id'):              try: -                # marker must be equal to none because the link has just be -                # removed - this condition is necessary to prevent modification -                # of already validated items by a forged request                  instance = self._meta.model.objects.get( -                           pk=self.cleaned_data['id'], marker=None) +                                    pk=self.cleaned_data['id'])              except:                  pass              self.cleaned_data.pop('id') @@ -300,13 +298,13 @@ class BaseFileForm(forms.ModelForm):                  instance.delete()              return          self.cleaned_data.pop('DELETE') +        self.cleaned_data['marker'] = associated_marker          if instance:              for k in self.cleaned_data:                  setattr(instance, k, self.cleaned_data[k])              instance.save()          else:              instance = self._meta.model.objects.create(**self.cleaned_data) -        getattr(associated_marker, self._related_name).add(instance)  class MultimediaFileForm(BaseFileForm):      """ diff --git a/chimere/models.py b/chimere/models.py index 295de1c..b9e9fb4 100644 --- a/chimere/models.py +++ b/chimere/models.py @@ -289,11 +289,6 @@ class Marker(GeographicItem):                                                 null=True)      route = models.ForeignKey(u"Route", blank=True, null=True,                                related_name='associated_marker') -    #pictures = models.ManyToManyField(u"PictureFile", verbose_name='Pictures', -    #           blank=True, null=True, related_name='marker') -    #multimedia_files = models.ManyToManyField(u"MultimediaFile", -    #                   verbose_name='Multimedia files', blank=True, null=True, -    #                   related_name='marker')#, edit_inline=models.STACKED)      description = models.TextField(_(u"Description"), blank=True, null=True)      objects = BaseGeoManager() @@ -474,7 +469,7 @@ class MultimediaFile(models.Model):      multimedia_type = models.ForeignKey(MultimediaType)      miniature = models.BooleanField(_(u"Display inside the description?"),                                    default=settings.CHIMERE_MINIATURE_BY_DEFAULT) -    marker = models.ForeignKey(Marker) +    marker = models.ForeignKey(Marker, related_name='multimedia_files')      def __unicode__(self):          return self.name or u"" @@ -502,7 +497,7 @@ class PictureFile(models.Model):      miniature = models.BooleanField(_(u"Display inside the description?"),                                    default=settings.CHIMERE_MINIATURE_BY_DEFAULT)      order = models.IntegerField(_(u"Order"), default=1) -    marker = models.ForeignKey(Marker) +    marker = models.ForeignKey(Marker, related_name='pictures')      def __unicode__(self):          return self.name or u""  | 
