OpenSlides/openslides/projector/models.py

71 lines
1.8 KiB
Python
Raw Normal View History

2012-02-03 20:49:16 +01:00
from django.db import models
2012-02-15 12:04:11 +01:00
from system import config
2012-02-06 22:22:16 +01:00
SLIDE = {}
2012-03-03 09:11:56 +01:00
class SlideMixin(object):
2012-02-06 22:08:08 +01:00
def slide(self):
"""
2012-02-06 22:08:08 +01:00
Return a map with all Data for a Slide
"""
return {
2012-02-06 22:22:16 +01:00
'slide': self,
'title': 'dummy-title',
2012-02-15 12:36:50 +01:00
'template': 'projector/default.html',
}
@property
2012-02-06 22:22:16 +01:00
def sid(self):
"""
2012-02-06 22:22:16 +01:00
Return the sid from this Slide
"""
2012-02-06 22:22:16 +01:00
for key, value in SLIDE.iteritems():
2012-03-03 09:11:56 +01:00
if type(self) == value.model:
return "%s-%d" % (key, self.id)
return None
@property
def active(self):
"""
2012-02-06 22:22:16 +01:00
Return True, if the the slide is the active one.
"""
2012-02-06 22:22:16 +01:00
from projector.api import get_active_slide
return True if get_active_slide(only_sid=True) == self.sid else False
def set_active(self):
"""
Appoint this item as the active one.
"""
2012-03-03 09:11:56 +01:00
config["presentation"] = "%s-%d" % (self.prefix, self.id)
class Slide(object):
def __init__(self, model_slide=False, func=None, model=None, category=None, key=None):
"""
model_slide: Boolean if the value is a Model.
func: The function to call. Only if modelslide is False.
model: The model. Only if modelslide is True.
category: The category to show this Slide.
key: the key in the slide object to find myself.
"""
self.model_slide = model_slide
self.func = func
self.model = model
self.category = category
self.key = key
def get_items(self):
return self.model.objects.all()
def get_dict(self):
return {
'key': self.key,
'category': self.category,
'model_slide': self.model_slide,
'func': self.func,
'model': self.model,
'self': self,
}