From: Guillaume Pellerin Date: Thu, 19 Dec 2013 10:31:03 +0000 (+0100) Subject: fix instrument replace X-Git-Tag: 1.5.0rc3~30 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=41c8a04ea3f3bd23b23a190a38e030ee1772a893;p=telemeta.git fix instrument replace --- diff --git a/telemeta/views/instrument.py b/telemeta/views/instrument.py index abc2d781..957927a6 100644 --- a/telemeta/views/instrument.py +++ b/telemeta/views/instrument.py @@ -83,7 +83,6 @@ class InstrumentView(object): return self.edit_instrument(request) - @method_decorator(permission_required('telemeta.change_instrument')) def replace_instrument_value(self, request, value_id): if request.method == 'POST': @@ -92,11 +91,7 @@ class InstrumentView(object): if 'delete' in request.POST.keys(): delete = True - if from_record == None: - raise Http404 - obj_type = Instrument - field_type = ForeignKey from_record = Instrument.objects.get(id__exact=value_id) to_record = Instrument.objects.get(id__exact=to_value_id) links = [rel.get_accessor_name() for rel in from_record._meta.get_all_related_objects()] @@ -107,14 +102,13 @@ class InstrumentView(object): for name in obj._meta.get_all_field_names(): try: field = obj._meta.get_field(name) - if type(field) == field_type: - if field.rel.to == obj_type: - setattr(obj, name, to_record) - obj.save() + if field.rel.to == obj_type: + setattr(obj, name, to_record) + obj.save() except: continue + if delete: from_record.delete() return self.edit_instrument(request) -