diff --git a/openslides/agenda/migrations/0003_auto_20160127_2136.py b/openslides/agenda/migrations/0003_auto_20160127_2136.py new file mode 100644 index 000000000..06f8a2f77 --- /dev/null +++ b/openslides/agenda/migrations/0003_auto_20160127_2136.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.1 on 2016-01-27 21:36 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('agenda', '0002_auto_20160122_2318'), + ] + + operations = [ + migrations.AlterField( + model_name='item', + name='weight', + field=models.IntegerField(default=10000), + ), + ] diff --git a/openslides/agenda/models.py b/openslides/agenda/models.py index 312fc7f89..1a9a5e9b4 100644 --- a/openslides/agenda/models.py +++ b/openslides/agenda/models.py @@ -233,7 +233,7 @@ class Item(RESTModelMixin, models.Model): The parent item in the agenda tree. """ - weight = models.IntegerField(default=0) + weight = models.IntegerField(default=10000) """ Weight to sort the item in the agenda. """ diff --git a/openslides/agenda/static/js/agenda/site.js b/openslides/agenda/static/js/agenda/site.js index af6cad44a..b67270a53 100644 --- a/openslides/agenda/static/js/agenda/site.js +++ b/openslides/agenda/static/js/agenda/site.js @@ -71,12 +71,13 @@ angular.module('OpenSlidesApp.agenda.site', ['OpenSlidesApp.agenda']) '$scope', '$http', '$state', + 'operator', 'ngDialog', 'Agenda', 'AgendaTree', 'Customslide', 'Projector', - function($scope, $http, $state, ngDialog, Agenda, AgendaTree, Customslide, Projector) { + function($scope, $http, $state, operator, ngDialog, Agenda, AgendaTree, Customslide, Projector) { // Bind agenda tree to the scope $scope.$watch(function () { return Agenda.lastModified(); @@ -85,6 +86,20 @@ angular.module('OpenSlidesApp.agenda.site', ['OpenSlidesApp.agenda']) }); $scope.alert = {}; + // check open permission + $scope.isAllowedToSeeOpenLink = function (item) { + var collection = item.content_object.collection; + switch (collection) { + case 'core/customslide': + return operator.hasPerms('core.can_manage_projector'); + case 'motions/motion': + return operator.hasPerms('motions.can_see'); + case 'assignments/assignment': + return operator.hasPerms('assignments.can_see'); + default: + return false; + } + }; // open new dialog $scope.newDialog = function () { ngDialog.open({ diff --git a/openslides/agenda/static/templates/agenda/item-list.html b/openslides/agenda/static/templates/agenda/item-list.html index 122ded0be..056d65e77 100644 --- a/openslides/agenda/static/templates/agenda/item-list.html +++ b/openslides/agenda/static/templates/agenda/item-list.html @@ -135,9 +135,12 @@ - + {{ item.getListViewTitle() }} + + {{ item.getListViewTitle() }} +
diff --git a/tests/integration/agenda/test_viewsets.py b/tests/integration/agenda/test_viewsets.py index 05a87ee0a..b66f721de 100644 --- a/tests/integration/agenda/test_viewsets.py +++ b/tests/integration/agenda/test_viewsets.py @@ -244,6 +244,7 @@ class Numbering(TestCase): self.client.login(username='admin', password='admin') self.item_1 = CustomSlide.objects.create(title='test_title_thuha8eef7ohXar3eech').agenda_item self.item_1.type = Item.AGENDA_ITEM + self.item_1.weight = 1 self.item_1.save() self.item_2 = CustomSlide.objects.create(title='test_title_eisah7thuxa1eingaeLo').agenda_item self.item_2.type = Item.AGENDA_ITEM