OpenSlides/openslides/motions/projector.py

57 lines
1.6 KiB
Python
Raw Normal View History

from typing import Generator, Type
from ..core.exceptions import ProjectorException
from ..utils.projector import ProjectorElement
2018-08-22 07:59:22 +02:00
from .models import Motion, MotionBlock
class MotionSlide(ProjectorElement):
"""
Slide definitions for Motion model.
"""
2019-01-06 16:22:33 +01:00
name = "motions/motion"
def check_data(self):
2019-01-06 16:22:33 +01:00
if not Motion.objects.filter(pk=self.config_entry.get("id")).exists():
raise ProjectorException("Motion does not exist.")
2016-10-05 18:25:50 +02:00
def update_data(self):
data = None
try:
2019-01-06 16:22:33 +01:00
motion = Motion.objects.get(pk=self.config_entry.get("id"))
2016-10-05 18:25:50 +02:00
except Motion.DoesNotExist:
# Motion does not exist, so just do nothing.
pass
else:
2019-01-06 16:22:33 +01:00
data = {"agenda_item_id": motion.agenda_item_id}
2016-10-05 18:25:50 +02:00
return data
class MotionBlockSlide(ProjectorElement):
"""
Slide definitions for a block of motions (MotionBlock model).
"""
2019-01-06 16:22:33 +01:00
name = "motions/motion-block"
def check_data(self):
2019-01-06 16:22:33 +01:00
if not MotionBlock.objects.filter(pk=self.config_entry.get("id")).exists():
raise ProjectorException("MotionBlock does not exist.")
def update_data(self):
data = None
try:
2019-01-06 16:22:33 +01:00
motion_block = MotionBlock.objects.get(pk=self.config_entry.get("id"))
except MotionBlock.DoesNotExist:
# MotionBlock does not exist, so just do nothing.
pass
else:
2019-01-06 16:22:33 +01:00
data = {"agenda_item_id": motion_block.agenda_item_id}
return data
def get_projector_elements() -> Generator[Type[ProjectorElement], None, None]:
yield MotionSlide
yield MotionBlockSlide