2011-07-31 10:46:29 +02:00
|
|
|
#!/usr/bin/env python
|
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
"""
|
2012-10-24 11:04:23 +02:00
|
|
|
openslides.motion.views
|
2013-01-06 12:07:37 +01:00
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~
|
2011-07-31 10:46:29 +02:00
|
|
|
|
2012-10-24 11:04:23 +02:00
|
|
|
Views for the motion app.
|
2011-07-31 10:46:29 +02:00
|
|
|
|
2013-01-06 12:07:37 +01:00
|
|
|
:copyright: 2011, 2012 by the OpenSlides team, see AUTHORS.
|
2011-07-31 10:46:29 +02:00
|
|
|
:license: GNU GPL, see LICENSE for more details.
|
|
|
|
"""
|
2013-01-06 12:07:37 +01:00
|
|
|
from reportlab.platypus import Paragraph
|
2012-07-08 09:21:39 +02:00
|
|
|
|
|
|
|
from django.core.urlresolvers import reverse
|
2013-01-06 12:07:37 +01:00
|
|
|
from django.contrib import messages
|
2011-11-09 22:53:10 +01:00
|
|
|
from django.db import transaction
|
2013-01-06 12:07:37 +01:00
|
|
|
from django.db.models import Model
|
|
|
|
from django.utils.translation import ugettext as _, ugettext_lazy
|
|
|
|
from django.views.generic.detail import SingleObjectMixin
|
2012-06-11 13:43:48 +02:00
|
|
|
|
2012-07-01 15:35:05 +02:00
|
|
|
from openslides.utils.pdf import stylesheet
|
2012-11-24 14:01:21 +01:00
|
|
|
from openslides.utils.views import (
|
2013-01-06 12:07:37 +01:00
|
|
|
TemplateView, RedirectView, UpdateView, CreateView, DeleteView, PDFView,
|
|
|
|
DetailView, ListView)
|
|
|
|
from openslides.utils.template import Tab
|
|
|
|
from openslides.utils.utils import html_strong
|
|
|
|
from openslides.projector.api import get_active_slide
|
|
|
|
from openslides.projector.projector import Widget, SLIDE
|
|
|
|
from .models import Motion
|
|
|
|
from .forms import MotionCreateForm, MotionUpdateForm
|
2011-07-31 10:46:29 +02:00
|
|
|
|
|
|
|
|
2013-01-06 12:07:37 +01:00
|
|
|
from django.views.generic.edit import ModelFormMixin
|
2011-07-31 10:46:29 +02:00
|
|
|
|
|
|
|
|
2013-01-06 12:07:37 +01:00
|
|
|
class MotionListView(ListView):
|
|
|
|
permission_required = 'motion.can_see_motion'
|
2012-10-25 09:23:24 +02:00
|
|
|
model = Motion
|
2012-10-28 02:09:47 +02:00
|
|
|
|
2013-01-06 12:07:37 +01:00
|
|
|
motion_list = MotionListView.as_view()
|
2012-10-28 19:59:41 +01:00
|
|
|
|
2011-07-31 10:46:29 +02:00
|
|
|
|
2013-01-06 12:07:37 +01:00
|
|
|
class MotionDetailView(DetailView):
|
|
|
|
permission_required = 'motion.can_see_motion'
|
2012-10-24 11:04:23 +02:00
|
|
|
model = Motion
|
2013-01-06 12:07:37 +01:00
|
|
|
template_name = 'motion/motion_detail.html'
|
2012-04-27 21:22:44 +02:00
|
|
|
|
|
|
|
def get_object(self):
|
2013-01-06 12:07:37 +01:00
|
|
|
object = super(MotionDetailView, self).get_object()
|
|
|
|
version_id = self.kwargs.get('version_id', None)
|
|
|
|
if version_id is not None:
|
|
|
|
object.default_version = int(version_id) -1
|
|
|
|
return object
|
2012-04-27 21:22:44 +02:00
|
|
|
|
2013-01-06 12:07:37 +01:00
|
|
|
motion_detail = MotionDetailView.as_view()
|
2012-04-27 21:22:44 +02:00
|
|
|
|
|
|
|
|
2013-01-06 12:07:37 +01:00
|
|
|
class MotionMixin(object):
|
|
|
|
def manipulate_object(self, form):
|
|
|
|
for attr in ['title', 'text', 'reason']:
|
|
|
|
setattr(self.object, attr, form.cleaned_data[attr])
|
2012-07-13 11:16:06 +02:00
|
|
|
|
2012-02-14 16:31:21 +01:00
|
|
|
|
2013-01-06 12:07:37 +01:00
|
|
|
class MotionCreateView(MotionMixin, CreateView):
|
|
|
|
permission_required = 'motion.can_create_motion'
|
|
|
|
model = Motion
|
|
|
|
form_class = MotionCreateForm
|
2012-03-18 17:11:58 +01:00
|
|
|
|
2013-01-06 12:07:37 +01:00
|
|
|
motion_create = MotionCreateView.as_view()
|
2012-03-18 17:11:58 +01:00
|
|
|
|
2012-06-11 13:43:48 +02:00
|
|
|
|
2013-01-06 12:07:37 +01:00
|
|
|
class MotionUpdateView(MotionMixin, UpdateView):
|
|
|
|
model = Motion
|
|
|
|
form_class = MotionUpdateForm
|
2012-06-11 13:43:48 +02:00
|
|
|
|
2013-01-06 12:07:37 +01:00
|
|
|
motion_edit = MotionUpdateView.as_view()
|