Add motion to agenda
This commit is contained in:
parent
910e0f17e7
commit
a27bd7eade
@ -314,6 +314,13 @@ class Motion(SlideMixin, models.Model):
|
||||
data['template'] = 'projector/Motion.html'
|
||||
return data
|
||||
|
||||
def get_agenda_title(self):
|
||||
return self.last_version.title
|
||||
|
||||
## def get_agenda_title_supplement(self):
|
||||
## number = self.number or '<i>[%s]</i>' % ugettext('no number')
|
||||
## return '(%s %s)' % (ugettext('motion'), number)
|
||||
|
||||
|
||||
class MotionVersion(models.Model):
|
||||
title = models.CharField(max_length=255, verbose_name=ugettext_lazy("Title"))
|
||||
|
@ -77,4 +77,9 @@ urlpatterns = patterns('openslides.motion.views',
|
||||
'reset_state',
|
||||
name='motion_reset_state',
|
||||
),
|
||||
|
||||
url(r'^(?P<pk>\d+)/agenda/$',
|
||||
'create_agenda_item',
|
||||
name='motion_create_agenda',
|
||||
),
|
||||
)
|
||||
|
@ -29,6 +29,7 @@ from openslides.poll.views import PollFormView
|
||||
from openslides.projector.api import get_active_slide
|
||||
from openslides.projector.projector import Widget, SLIDE
|
||||
from openslides.config.models import config
|
||||
from openslides.agenda.models import Item
|
||||
from .models import Motion, MotionSubmitter, MotionSupporter, MotionPoll
|
||||
from .forms import (BaseMotionForm, MotionSubmitterMixin, MotionSupporterMixin,
|
||||
MotionCreateNewVersionMixin, ConfigForm)
|
||||
@ -274,6 +275,21 @@ set_state = MotionSetStateView.as_view()
|
||||
reset_state = MotionSetStateView.as_view(reset=True)
|
||||
|
||||
|
||||
class CreateAgendaItemView(SingleObjectMixin, RedirectView):
|
||||
permission_required = 'agenda.can_manage_agenda'
|
||||
url_name = 'item_overview'
|
||||
model = Motion
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
self.object = self.get_object()
|
||||
return super(CreateAgendaItemView, self).get(request, *args, **kwargs)
|
||||
|
||||
def pre_redirect(self, request, *args, **kwargs):
|
||||
self.item = Item.objects.create(related_sid=self.object.sid)
|
||||
|
||||
create_agenda_item = CreateAgendaItemView.as_view()
|
||||
|
||||
|
||||
class Config(FormView):
|
||||
permission_required = 'config.can_manage_config'
|
||||
form_class = ConfigForm
|
||||
|
@ -83,7 +83,7 @@ class ModelTest(TestCase):
|
||||
|
||||
self.assertEqual(self.motion.get_absolute_url('detail'), '/motion/%d/' % motion_id)
|
||||
self.assertEqual(self.motion.get_absolute_url('edit'), '/motion/%d/edit/' % motion_id)
|
||||
#self.assertEqual(self.motion.get_absolute_url('delete'), '/motion/%d/del/' % motion_id)
|
||||
self.assertEqual(self.motion.get_absolute_url('delete'), '/motion/%d/del/' % motion_id)
|
||||
|
||||
def test_supporter(self):
|
||||
self.assertFalse(self.motion.is_supporter(self.test_user))
|
||||
|
Loading…
Reference in New Issue
Block a user