From 4a4c85b24f17f0d247fce06269824fa82cae06de Mon Sep 17 00:00:00 2001 From: Flavio Tarsetti <Flavio.Tarsetti@idiap.ch> Date: Thu, 4 Aug 2016 15:44:14 +0200 Subject: [PATCH] [plotters][models/serializers/templates] added plotter description/short description update capacity. - Added documentation editor - Force editor to be uneditable(False) when not plotterparameter is private - Added get_api_update_url for documentation update - Using django smart encoding for descriptions --- beat/web/plotters/models.py | 8 ++++++++ beat/web/plotters/serializers.py | 8 +++++++- .../templates/plotterparameters/plotterparameter.html | 5 ++++- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/beat/web/plotters/models.py b/beat/web/plotters/models.py index 8741348ee..6dfc85c65 100755 --- a/beat/web/plotters/models.py +++ b/beat/web/plotters/models.py @@ -286,6 +286,14 @@ class PlotterParameter(Contribution): ) + def get_api_update_url(self): + '''Returns the endpoint to update this object''' + + return reverse( + 'api_plotters:view', + args=(self.author.username, self.name, self.version,), + ) + diff --git a/beat/web/plotters/serializers.py b/beat/web/plotters/serializers.py index a557e569f..f4460d743 100644 --- a/beat/web/plotters/serializers.py +++ b/beat/web/plotters/serializers.py @@ -33,6 +33,7 @@ from ..code.serializers import CodeSerializer, CodeCreationSerializer from ..libraries.serializers import LibraryReferenceSerializer from ..dataformats.serializers import ReferencedDataFormatSerializer +from django.utils.encoding import smart_unicode, smart_str import beat.core.plotter import simplejson as json @@ -160,7 +161,6 @@ class PlotterParameterAllSerializer(ContributionSerializer): #---------------------------------------------------------- - class FullPlotterParameterSerializer(PlotterParameterAllSerializer): plotters = serializers.SerializerMethodField() @@ -170,6 +170,12 @@ class FullPlotterParameterSerializer(PlotterParameterAllSerializer): #default_fields = PlotterParameterAllSerializer.Meta.default_fields + PlotterParameterAllSerializer.Meta.extra_fields default_fields = ['id', 'accessibility', 'modifiable', 'deletable', 'is_owner', 'name', 'fork_of', 'last_version', 'previous_version', 'short_description', 'description', 'version', 'creation_date', 'data', 'plotter', 'plotters'] + def get_description(self, obj): + return smart_unicode(obj.description, encoding='utf-8', strings_only=False, errors='strict') + + def get_short_description(self, obj): + return smart_unicode(obj.short_description, encoding='utf-8', strings_only=False, errors='strict') + def get_data(self, obj): return json.loads(obj.data) diff --git a/beat/web/plotters/templates/plotterparameters/plotterparameter.html b/beat/web/plotters/templates/plotterparameters/plotterparameter.html index 297819dbf..331819267 100644 --- a/beat/web/plotters/templates/plotterparameters/plotterparameter.html +++ b/beat/web/plotters/templates/plotterparameters/plotterparameter.html @@ -148,7 +148,7 @@ {% plotterparameter_sampleplot plotterparameter %} </div> <div role="tabpanel" class="tab-pane" id="doc"> - {% doc_editor plotterparameter 'api_plotterparameters:object' %} + {% doc_editor plotterparameter 'api_plotterparameters:object' False %} </div> {% if owner %} <div role="tabpanel" class="tab-pane" id="sharing"> @@ -235,7 +235,10 @@ </div> <div role="tabpanel" class="tab-pane" id="doc"> + {%comment%} {% doc_editor plotterparameter 'api_plotterparameters:object' %} + {%endcomment%} + {% doc_editor plotterparameter 'api_plotters:all' %} </div> {% if owner %} <div role="tabpanel" class="tab-pane" id="sharing"> -- GitLab