From c859122b20af7c088d1ac49273c0264aaf4627b3 Mon Sep 17 00:00:00 2001 From: Philip ABBET <philip.abbet@idiap.ch> Date: Mon, 11 Sep 2017 15:12:49 +0200 Subject: [PATCH] [algorithms] Bugfix: Can't use the admin interface for binary algorithms --- beat/web/algorithms/admin.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) mode change 100644 => 100755 beat/web/algorithms/admin.py diff --git a/beat/web/algorithms/admin.py b/beat/web/algorithms/admin.py old mode 100644 new mode 100755 index 50feac2e2..f03412a9e --- a/beat/web/algorithms/admin.py +++ b/beat/web/algorithms/admin.py @@ -90,6 +90,13 @@ class AlgorithmModelForm(forms.ModelForm): ), } + + def __init__(self, *args, **kwargs): + super(AlgorithmModelForm, self).__init__(*args, **kwargs) + + if kwargs['instance'].is_binary(): + del self.fields['source_code_file'] + def clean_declaration_file(self): """Cleans-up the file data, make sure it is really new""" @@ -231,4 +238,12 @@ class Algorithm(admin.ModelAdmin): ), ) + def get_form(self, request, obj=None, **kwargs): + if obj.is_binary(): + self.exclude = ('source_code_file',) + fieldsets = filter(lambda x: x[0] == 'Definition',self.fieldsets)[0] + fieldsets[1]['fields'] = ('hash', 'splittable', 'declaration_file', 'language') + form = super(Algorithm, self).get_form(request, obj, **kwargs) + return form + admin.site.register(AlgorithmModel, Algorithm) -- GitLab