some small code design changes
This commit is contained in:
parent
a591e4f547
commit
4f3f917812
@ -17,7 +17,7 @@ from django.utils.translation import ugettext_lazy as _
|
|||||||
from mptt.forms import TreeNodeChoiceField
|
from mptt.forms import TreeNodeChoiceField
|
||||||
|
|
||||||
from openslides.utils.forms import CssClassMixin
|
from openslides.utils.forms import CssClassMixin
|
||||||
from openslides.agenda.models import Item
|
from .models import Item
|
||||||
|
|
||||||
|
|
||||||
class ItemForm(forms.ModelForm, CssClassMixin):
|
class ItemForm(forms.ModelForm, CssClassMixin):
|
||||||
@ -32,8 +32,7 @@ class ItemForm(forms.ModelForm, CssClassMixin):
|
|||||||
error_message=_("Invalid format. Hours from 0 to 99 and minutes from 00 to 59"),
|
error_message=_("Invalid format. Hours from 0 to 99 and minutes from 00 to 59"),
|
||||||
max_length=5,
|
max_length=5,
|
||||||
required=False,
|
required=False,
|
||||||
label=_("Duration (hh:mm)")
|
label=_("Duration (hh:mm)"))
|
||||||
)
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Item
|
model = Item
|
||||||
@ -53,19 +52,15 @@ class ItemOrderForm(forms.Form, CssClassMixin):
|
|||||||
"""
|
"""
|
||||||
weight = forms.ChoiceField(
|
weight = forms.ChoiceField(
|
||||||
choices=gen_weight_choices(),
|
choices=gen_weight_choices(),
|
||||||
widget=forms.Select(attrs={'class': 'menu-weight'}),
|
widget=forms.Select(attrs={'class': 'menu-weight'}))
|
||||||
)
|
|
||||||
self = forms.IntegerField(
|
self = forms.IntegerField(
|
||||||
widget=forms.HiddenInput(attrs={'class': 'menu-mlid'}),
|
widget=forms.HiddenInput(attrs={'class': 'menu-mlid'}))
|
||||||
)
|
|
||||||
parent = forms.IntegerField(
|
parent = forms.IntegerField(
|
||||||
widget=forms.HiddenInput(attrs={'class': 'menu-plid'}),
|
widget=forms.HiddenInput(attrs={'class': 'menu-plid'}))
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class ConfigForm(CssClassMixin, forms.Form):
|
class ConfigForm(CssClassMixin, forms.Form):
|
||||||
agenda_start_event_date_time = forms.CharField(
|
agenda_start_event_date_time = forms.CharField(
|
||||||
widget=forms.DateTimeInput(format='%d.%m.%Y %H:%M'),
|
widget=forms.DateTimeInput(format='%d.%m.%Y %H:%M'),
|
||||||
required=False,
|
required=False,
|
||||||
label=_("Begin of event")
|
label=_("Begin of event"))
|
||||||
)
|
|
||||||
|
@ -20,7 +20,7 @@ from openslides.config.models import config
|
|||||||
from openslides.projector.projector import SlideMixin
|
from openslides.projector.projector import SlideMixin
|
||||||
from openslides.projector.api import (
|
from openslides.projector.api import (
|
||||||
register_slidemodel, get_slide_from_sid, register_slidefunc)
|
register_slidemodel, get_slide_from_sid, register_slidefunc)
|
||||||
from openslides.agenda.slides import agenda_show
|
from .slides import agenda_show
|
||||||
|
|
||||||
|
|
||||||
class Item(MPTTModel, SlideMixin):
|
class Item(MPTTModel, SlideMixin):
|
||||||
@ -36,8 +36,7 @@ class Item(MPTTModel, SlideMixin):
|
|||||||
|
|
||||||
ITEM_TYPE = (
|
ITEM_TYPE = (
|
||||||
(AGENDA_ITEM, _('Agenda item')),
|
(AGENDA_ITEM, _('Agenda item')),
|
||||||
(ORGANIZATIONAL_ITEM, _('Organizational item')),
|
(ORGANIZATIONAL_ITEM, _('Organizational item')))
|
||||||
)
|
|
||||||
|
|
||||||
title = models.CharField(null=True, max_length=255, verbose_name=_("Title"))
|
title = models.CharField(null=True, max_length=255, verbose_name=_("Title"))
|
||||||
text = models.TextField(null=True, blank=True, verbose_name=_("Text"))
|
text = models.TextField(null=True, blank=True, verbose_name=_("Text"))
|
||||||
|
@ -19,35 +19,43 @@ urlpatterns = patterns(
|
|||||||
'',
|
'',
|
||||||
url(r'^$',
|
url(r'^$',
|
||||||
Overview.as_view(),
|
Overview.as_view(),
|
||||||
name='item_overview', ),
|
name='item_overview',
|
||||||
|
),
|
||||||
|
|
||||||
url(r'^(?P<pk>\d+)/$',
|
url(r'^(?P<pk>\d+)/$',
|
||||||
View.as_view(),
|
View.as_view(),
|
||||||
name='item_view', ),
|
name='item_view',
|
||||||
|
),
|
||||||
|
|
||||||
url(r'^(?P<pk>\d+)/close/$',
|
url(r'^(?P<pk>\d+)/close/$',
|
||||||
SetClosed.as_view(),
|
SetClosed.as_view(),
|
||||||
{'closed': True},
|
{'closed': True},
|
||||||
name='item_close', ),
|
name='item_close',
|
||||||
|
),
|
||||||
|
|
||||||
url(r'^(?P<pk>\d+)/open/$',
|
url(r'^(?P<pk>\d+)/open/$',
|
||||||
SetClosed.as_view(),
|
SetClosed.as_view(),
|
||||||
{'closed': False},
|
{'closed': False},
|
||||||
name='item_open', ),
|
name='item_open',
|
||||||
|
),
|
||||||
|
|
||||||
url(r'^(?P<pk>\d+)/edit/$',
|
url(r'^(?P<pk>\d+)/edit/$',
|
||||||
ItemUpdate.as_view(),
|
ItemUpdate.as_view(),
|
||||||
name='item_edit', ),
|
name='item_edit',
|
||||||
|
),
|
||||||
|
|
||||||
url(r'^new/$',
|
url(r'^new/$',
|
||||||
ItemCreate.as_view(),
|
ItemCreate.as_view(),
|
||||||
name='item_new', ),
|
name='item_new',
|
||||||
|
),
|
||||||
|
|
||||||
url(r'^(?P<pk>\d+)/del/$',
|
url(r'^(?P<pk>\d+)/del/$',
|
||||||
ItemDelete.as_view(),
|
ItemDelete.as_view(),
|
||||||
name='item_delete', ),
|
name='item_delete',
|
||||||
|
),
|
||||||
|
|
||||||
url(r'^print/$',
|
url(r'^print/$',
|
||||||
AgendaPDF.as_view(),
|
AgendaPDF.as_view(),
|
||||||
name='print_agenda', ),
|
name='print_agenda',
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
from reportlab.platypus import Paragraph
|
from reportlab.platypus import Paragraph
|
||||||
|
from datetime import datetime, timedelta
|
||||||
|
|
||||||
from django.core.urlresolvers import reverse
|
from django.core.urlresolvers import reverse
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
@ -31,7 +32,6 @@ from openslides.projector.api import get_active_slide
|
|||||||
from openslides.projector.projector import Widget, SLIDE
|
from openslides.projector.projector import Widget, SLIDE
|
||||||
from .models import Item
|
from .models import Item
|
||||||
from .forms import ItemOrderForm, ItemForm
|
from .forms import ItemOrderForm, ItemForm
|
||||||
from datetime import datetime, timedelta
|
|
||||||
|
|
||||||
|
|
||||||
class Overview(TemplateView):
|
class Overview(TemplateView):
|
||||||
@ -71,15 +71,16 @@ class Overview(TemplateView):
|
|||||||
else:
|
else:
|
||||||
end = start + duration
|
end = start + duration
|
||||||
|
|
||||||
duration = u'%d:%02d' % ((duration.days * 24 + duration.seconds / 3600), (duration.seconds / 60 % 60))
|
duration = u'%d:%02d' % (
|
||||||
|
(duration.days * 24 + duration.seconds / 3600.0),
|
||||||
|
(duration.seconds / 60.0 % 60))
|
||||||
|
|
||||||
context.update({
|
context.update({
|
||||||
'items': items,
|
'items': items,
|
||||||
'active_sid': get_active_slide(only_sid=True),
|
'active_sid': get_active_slide(only_sid=True),
|
||||||
'duration': duration,
|
'duration': duration,
|
||||||
'start': start,
|
'start': start,
|
||||||
'end': end,
|
'end': end})
|
||||||
})
|
|
||||||
return context
|
return context
|
||||||
|
|
||||||
@transaction.commit_manually
|
@transaction.commit_manually
|
||||||
@ -140,8 +141,7 @@ class SetClosed(RedirectView, SingleObjectMixin):
|
|||||||
link = reverse('item_close', args=[self.object.id])
|
link = reverse('item_close', args=[self.object.id])
|
||||||
context.update({
|
context.update({
|
||||||
'closed': kwargs['closed'],
|
'closed': kwargs['closed'],
|
||||||
'link': link,
|
'link': link})
|
||||||
})
|
|
||||||
return context
|
return context
|
||||||
|
|
||||||
def pre_redirect(self, request, *args, **kwargs):
|
def pre_redirect(self, request, *args, **kwargs):
|
||||||
|
@ -182,7 +182,6 @@ class ViewTest(TestCase):
|
|||||||
data = {'title': 'newitem1', 'text': 'item1-text', 'weight': '0',
|
data = {'title': 'newitem1', 'text': 'item1-text', 'weight': '0',
|
||||||
'type': 1}
|
'type': 1}
|
||||||
response = c.post('/agenda/%d/edit/' % self.item1.id, data)
|
response = c.post('/agenda/%d/edit/' % self.item1.id, data)
|
||||||
print response
|
|
||||||
self.assertEqual(response.status_code, 302)
|
self.assertEqual(response.status_code, 302)
|
||||||
self.refreshItems()
|
self.refreshItems()
|
||||||
self.assertEqual(self.item1.title, 'newitem1')
|
self.assertEqual(self.item1.title, 'newitem1')
|
||||||
|
Loading…
Reference in New Issue
Block a user