Skip to content
Snippets Groups Projects
Commit 49a59f62 authored by Flavio TARSETTI's avatar Flavio TARSETTI
Browse files

[plotters][api/apps/models/templates/views] added possibility to share

plotterparameter public/person(s)/team(s)
parent 4a4c85b2
No related branches found
No related tags found
No related merge requests found
Pipeline #
......@@ -124,12 +124,12 @@ class CheckPlotterNameView(CheckContributionNameView):
#----------------------------------------------------------
class SharePlotterView(ShareCodeView):
class SharePlotterParameterView(ShareCodeView):
"""
This view allows to share a plotter with
This view allows to share a plotterparameter with
other users and/or teams
"""
model = Plotter
model = PlotterParameter
#----------------------------------------------------------
......
......@@ -32,6 +32,12 @@ from . import api
urlpatterns = [
url(r'^$', api.ListPlotterView.as_view(), name='all'),
url(r'^format/(?P<author_name>\w+)/(?P<dataformat_name>[a-zA-Z0-9_\-]+)/(?P<version>\d+)/$', api.ListFormatPlotterView.as_view(), name='object'),
url(r'^plotterparameters/(?P<author_name>\w+)/(?P<object_name>[a-zA-Z0-9_\-]+)/(?P<version>\d+)/share/$',
api.SharePlotterParameterView.as_view(),
name='share',
),
url(r'^plotterparameters/(?P<author_name>\w+)/(?P<object_name>[a-zA-Z0-9_\-]+)/(?P<version>\d+)/$', api.RetrieveUpdateDestroyPlotterParametersView.as_view(), name='view'),
url(r'^plotterparameters/(?P<author_name>\w+)/$', api.ListPlotterParametersView.as_view(), name='view'),
url(r'^plotterparameters/$', api.ListPlotterParameterView.as_view(), name='all_plotterparameter'),
......@@ -53,10 +59,6 @@ urlpatterns = [
# name='diff',
# ),
url(r'^(?P<author_name>\w+)/(?P<object_name>[-\w]+)/(?P<version>\d+)/share/$',
api.SharePlotterView.as_view(),
name='share',
),
url(r'^(?P<author_name>\w+)/$',
api.ListCreatePlottersView.as_view(),
......
......@@ -36,3 +36,4 @@ class PlottersConfig(CommonAppConfig):
super(PlottersConfig, self).ready()
from actstream import registry
registry.register(self.get_model('Plotter'))
registry.register(self.get_model('PlotterParameter'))
......@@ -295,6 +295,14 @@ class PlotterParameter(Contribution):
)
def get_api_share_url(self):
'''Returns the endpoint to share this object'''
return reverse(
'api_plotters:share',
args=(self.author.username, self.name, self.version,),
)
class DefaultPlotter(models.Model):
......
......@@ -242,9 +242,7 @@
</div>
{% if owner %}
<div role="tabpanel" class="tab-pane" id="sharing">
{% comment %}
{% plotterparameter_sharing plotterparameter %}
{% endcomment %}
</div>
{% endif %}
<div role="tabpanel" class="tab-pane" id="reports">
......
......@@ -242,6 +242,25 @@ def plotterparameter_actions(context, object, display_count):
)
@register.inclusion_tag('plotterparameters/panels/sharing.html', takes_context=True)
def plotterparameter_sharing(context, obj):
'''Composes the current sharing properties and a form to change them
Parameters:
obj (plotter): The plotter object concerned for which the
sharing panel will be drawn
'''
return {
'request': context['request'],
'object': obj,
'owner': context['request'].user == obj.author,
'users': context['users'],
'teams': context['teams'],
}
@register.inclusion_tag('plotters/panels/sharing.html', takes_context=True)
def plotter_sharing(context, obj):
'''Composes the current sharing properties and a form to change them
......
......@@ -719,11 +719,22 @@ def plotterparameter_for_author(request, author_name, plotterparameter_name, ver
name = plotterparameter_name,
version = version)
(has_access, accessibility) = obj.accessibility_for(request.user)
if not has_access: raise Http404()
owner = (request.user == obj.author)
# Users the object can be shared with
users = User.objects.exclude(username__in=settings.ACCOUNTS_TO_EXCLUDE_FROM_TEAMS).order_by('username')
return render_to_response('plotterparameters/plotterparameter.html',
{
'author' : author_name,
'plotterparameter_name' : plotterparameter_name,
'owner' : (request.user == obj.author),
'users': users,
'teams': Team.objects.for_user(request.user, True),
'plotterparameter' : obj,
'USE_HTTPS_GRAVATAR': settings.USE_HTTPS_GRAVATAR,
},
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment