rename Element to Slide
This commit is contained in:
parent
16c37661f7
commit
8c27c731f8
@ -15,7 +15,7 @@ from django.contrib import messages
|
||||
from django.core.context_processors import csrf
|
||||
|
||||
from openslides.system.api import config_get
|
||||
from projector.api import get_active_element
|
||||
from projector.api import get_active_slide
|
||||
|
||||
|
||||
def is_summary():
|
||||
@ -24,7 +24,7 @@ def is_summary():
|
||||
"""
|
||||
from agenda.models import Item
|
||||
try:
|
||||
get_active_element()
|
||||
get_active_slide()
|
||||
except Item.DoesNotExist:
|
||||
return True
|
||||
if config_get('summary', False):
|
||||
|
@ -13,7 +13,7 @@
|
||||
from django.forms import Form, ModelForm, IntegerField, ChoiceField, \
|
||||
ModelChoiceField, HiddenInput, Select
|
||||
from django.utils.translation import ugettext as _
|
||||
from openslides.agenda.models import Item, ItemText
|
||||
from openslides.agenda.models import Item
|
||||
|
||||
class ItemFormText(ModelForm):
|
||||
error_css_class = 'error'
|
||||
@ -21,7 +21,7 @@ class ItemFormText(ModelForm):
|
||||
items = Item.objects.all().filter(parent=None).order_by('weight')
|
||||
parent = ModelChoiceField(queryset=items, label=_("Parent item"), required=False)
|
||||
class Meta:
|
||||
model = ItemText
|
||||
model = Item
|
||||
exclude = ('closed', 'weight')
|
||||
|
||||
|
||||
@ -32,7 +32,7 @@ def genweightchoices():
|
||||
return l
|
||||
|
||||
|
||||
class ElementOrderForm(Form):
|
||||
class ItemOrderForm(Form):
|
||||
weight = ChoiceField(choices=genweightchoices(), \
|
||||
widget=Select(attrs={'class': 'menu-weight'}),
|
||||
label="")
|
||||
|
@ -18,15 +18,15 @@ except ImportError:
|
||||
from django.db import models
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
from projector.models import Element
|
||||
from projector.api import element_register
|
||||
from projector.models import Slide
|
||||
from projector.api import register_slidemodel
|
||||
from system.api import config_set
|
||||
from application.models import Application
|
||||
from poll.models import Poll
|
||||
from assignment.models import Assignment
|
||||
|
||||
|
||||
class Item(models.Model, Element):
|
||||
class Item(models.Model, Slide):
|
||||
"""
|
||||
An Agenda Item
|
||||
"""
|
||||
@ -56,7 +56,7 @@ class Item(models.Model, Element):
|
||||
"""
|
||||
Return True if the item has a activ parent
|
||||
"""
|
||||
if get_active_element(only_id=True) in \
|
||||
if get_active_slide(only_sid=True) in \
|
||||
[parent.id for parent in self.parents]:
|
||||
return True
|
||||
return False
|
||||
@ -65,7 +65,7 @@ class Item(models.Model, Element):
|
||||
"""
|
||||
Appoint this item as the active one.
|
||||
"""
|
||||
Element.set_active(self)
|
||||
Slide.set_active(self)
|
||||
if summary:
|
||||
config_set("summary", True)
|
||||
else:
|
||||
@ -105,7 +105,7 @@ class Item(models.Model, Element):
|
||||
"""
|
||||
Return the WeightForm for this item.
|
||||
"""
|
||||
from agenda.forms import ElementOrderForm
|
||||
from agenda.forms import ItemOrderForm
|
||||
try:
|
||||
parent = self.parent.id
|
||||
except AttributeError:
|
||||
@ -115,7 +115,7 @@ class Item(models.Model, Element):
|
||||
'self': self.id,
|
||||
'parent': parent,
|
||||
}
|
||||
return ElementOrderForm(initial=initial, prefix="i%d" % self.id)
|
||||
return ItemOrderForm(initial=initial, prefix="i%d" % self.id)
|
||||
|
||||
def edit_form(self, post=None):
|
||||
"""
|
||||
@ -191,4 +191,4 @@ ItemText = Item # ItemText is Depricated
|
||||
|
||||
|
||||
|
||||
element_register(Item.prefix, Item)
|
||||
register_slidemodel(Item)
|
||||
|
@ -17,11 +17,11 @@ from django.core.urlresolvers import reverse
|
||||
from django.contrib import messages
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
from projector.api import get_active_element
|
||||
from projector.api import get_active_slide
|
||||
from agenda.models import Item
|
||||
from agenda.api import is_summary, children_list, \
|
||||
del_confirm_form_for_items
|
||||
from agenda.forms import ElementOrderForm, ItemFormText
|
||||
from agenda.forms import ItemOrderForm, ItemFormText
|
||||
from application.models import Application
|
||||
from assignment.models import Assignment
|
||||
from poll.models import Poll
|
||||
@ -53,7 +53,7 @@ def overview(request):
|
||||
"""
|
||||
if request.method == 'POST':
|
||||
for item in Item.objects.all():
|
||||
form = ElementOrderForm(request.POST, prefix="i%d" % item.id)
|
||||
form = ItemOrderForm(request.POST, prefix="i%d" % item.id)
|
||||
if form.is_valid():
|
||||
try:
|
||||
item.parent = Item.objects.get( \
|
||||
@ -66,7 +66,7 @@ def overview(request):
|
||||
items = children_list(Item.objects.filter(parent=None).exclude(hidden=True).order_by('weight'))
|
||||
items_hidden = children_list(Item.objects.filter(parent=None).exclude(hidden=False).order_by('weight'))
|
||||
try:
|
||||
overview = is_summary() and not get_active_element()
|
||||
overview = is_summary() and not get_active_slide()
|
||||
except Item.DoesNotExist:
|
||||
overview = True
|
||||
return {
|
||||
|
@ -17,15 +17,15 @@ from django.db.models import Max
|
||||
from django.contrib.auth.models import User
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
from projector.api import element_register
|
||||
from projector.models import Element
|
||||
from projector.api import register_slidemodel
|
||||
from projector.models import Slide
|
||||
|
||||
from participant.models import Profile
|
||||
from system.api import config_get
|
||||
from utils.utils import _propper_unicode
|
||||
|
||||
|
||||
class Application(models.Model, Element):
|
||||
class Application(models.Model, Slide):
|
||||
prefix = "application"
|
||||
STATUS = (
|
||||
('pub', _('Published')),
|
||||
@ -483,4 +483,4 @@ class AVersion(models.Model):
|
||||
.filter(id__lte=self.id).count()
|
||||
return self._aid
|
||||
|
||||
element_register(Application.prefix, Application)
|
||||
register_slidemodel(Application)
|
||||
|
@ -15,11 +15,11 @@ from django.utils.translation import ugettext as _
|
||||
|
||||
from participant.models import Profile
|
||||
|
||||
from projector.models import Element
|
||||
from projector.api import element_register
|
||||
from projector.models import Slide
|
||||
from projector.api import register_slidemodel
|
||||
|
||||
|
||||
class Assignment(models.Model, Element):
|
||||
class Assignment(models.Model, Slide):
|
||||
prefix = 'assignment'
|
||||
STATUS = (
|
||||
('sea', _('Searching for candidates')),
|
||||
@ -145,4 +145,4 @@ class Assignment(models.Model, Element):
|
||||
('can_manage_assignment', "Can manage assignment"),
|
||||
)
|
||||
|
||||
element_register(Assignment.prefix, Assignment)
|
||||
register_slidemodel(Assignment)
|
||||
|
@ -1,35 +1,34 @@
|
||||
from system.api import config_set, config_get
|
||||
from projector.models import ELEMENT
|
||||
from projector.models import SLIDE
|
||||
|
||||
|
||||
def get_element_from_eid(eid):
|
||||
def get_slide_from_sid(sid):
|
||||
try:
|
||||
model, id = eid.split()
|
||||
model, id = sid.split()
|
||||
except ValueError:
|
||||
return None # We need a elementError hier
|
||||
return None # We need a slideError hier
|
||||
except AttributeError:
|
||||
return None
|
||||
return ELEMENT[model].objects.get(pk=id)
|
||||
return SLIDE[model].objects.get(pk=id)
|
||||
|
||||
|
||||
def get_active_element(only_eid=False):
|
||||
def get_active_slide(only_sid=False):
|
||||
"""
|
||||
Returns the active element. If no element is active, or it can not find an Item,
|
||||
it raise Element.DoesNotExist
|
||||
Returns the active slide. If no slide is active, or it can not find an Item,
|
||||
it raise an error
|
||||
|
||||
if only_id is True, returns only the id of this item. Returns None if not Item
|
||||
if only_sid is True, returns only the id of this item. Returns None if not Item
|
||||
is active. Does not Raise Item.DoesNotExist
|
||||
"""
|
||||
from projector.models import Element
|
||||
eid = config_get("presentation", None)
|
||||
sid = config_get("presentation", None)
|
||||
|
||||
if only_eid:
|
||||
return eid
|
||||
return get_element_from_eid(eid)
|
||||
if only_sid:
|
||||
return sid
|
||||
return get_slide_from_sid(sid)
|
||||
|
||||
|
||||
def element_register(prefix, model):
|
||||
ELEMENT[prefix] = model
|
||||
def register_slidemodel(model):
|
||||
SLIDE[model.prefix] = model
|
||||
|
||||
|
||||
def assignment_votes(item):
|
||||
|
@ -2,25 +2,25 @@ from django.db import models
|
||||
|
||||
from system.api import config_set, config_get
|
||||
|
||||
ELEMENT = {}
|
||||
SLIDE = {}
|
||||
|
||||
class Element(object):
|
||||
class Slide(object):
|
||||
|
||||
def slide(self):
|
||||
"""
|
||||
Return a map with all Data for a Slide
|
||||
"""
|
||||
return {
|
||||
'element': self,
|
||||
'slide': self,
|
||||
'title': 'dummy-title',
|
||||
}
|
||||
|
||||
@property
|
||||
def eid(self):
|
||||
def sid(self):
|
||||
"""
|
||||
Return the eid from this element
|
||||
Return the sid from this Slide
|
||||
"""
|
||||
for key, value in ELEMENT.iteritems():
|
||||
for key, value in SLIDE.iteritems():
|
||||
if type(self) == value:
|
||||
return "%s %d" % (key, self.id)
|
||||
return None
|
||||
@ -28,10 +28,10 @@ class Element(object):
|
||||
@property
|
||||
def active(self):
|
||||
"""
|
||||
Return True, if the the element is the active one.
|
||||
Return True, if the the slide is the active one.
|
||||
"""
|
||||
from projector.api import get_active_element
|
||||
return True if get_active_element(only_eid=True) == self.eid else False
|
||||
from projector.api import get_active_slide
|
||||
return True if get_active_slide(only_sid=True) == self.sid else False
|
||||
|
||||
def set_active(self):
|
||||
"""
|
||||
|
@ -28,7 +28,7 @@ from agenda.api import is_summary, children_list, \
|
||||
del_confirm_form_for_items
|
||||
from agenda.models import Item
|
||||
|
||||
from projector.api import get_active_element, assignment_votes, assignment_polls
|
||||
from projector.api import get_active_slide
|
||||
|
||||
|
||||
@permission_required('agenda.can_see_projector')
|
||||
@ -37,27 +37,27 @@ def active_slide(request):
|
||||
Shows the active Slide.
|
||||
"""
|
||||
try:
|
||||
element = get_active_element()
|
||||
except Item.DoesNotExist: #TODO: It has to be an Element.DoesNotExist
|
||||
element = None
|
||||
slide = get_active_slide()
|
||||
except Item.DoesNotExist: #TODO: It has to be an Slide.DoesNotExist
|
||||
slide = None
|
||||
|
||||
|
||||
if element is None:
|
||||
if slide is None:
|
||||
data = {}
|
||||
else:
|
||||
data = element.slide()
|
||||
data = slide.slide()
|
||||
|
||||
data['ajax'] = 'on'
|
||||
|
||||
if element is None or (type(element) == Item and is_summary()):
|
||||
if slide is None or (type(slide) == Item and is_summary()):
|
||||
|
||||
if element is None:
|
||||
if slide is None:
|
||||
items = Item.objects.filter(parent=None) \
|
||||
.filter(hidden=False).order_by('weight')
|
||||
data['title'] = _("Agenda")
|
||||
else:
|
||||
items = element.children.filter(hidden=False)
|
||||
data['title'] = element.title
|
||||
items = slide.children.filter(hidden=False)
|
||||
data['title'] = slide.title
|
||||
data['items'] = items
|
||||
data['template'] = 'projector/AgendaSummary.html'
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user