1a17862d6b
The old hidden type was used as internal, so everything is changed to not be shown if the item is internal. hidden is "new", and actually behaves as hidden now.
60 lines
1.5 KiB
Python
60 lines
1.5 KiB
Python
from openslides.utils.rest_api import ModelSerializer, RelatedField
|
|
|
|
from .models import Item, Speaker
|
|
|
|
|
|
class SpeakerSerializer(ModelSerializer):
|
|
"""
|
|
Serializer for agenda.models.Speaker objects.
|
|
"""
|
|
class Meta:
|
|
model = Speaker
|
|
fields = (
|
|
'id',
|
|
'user',
|
|
'begin_time',
|
|
'end_time',
|
|
'weight',
|
|
'marked',
|
|
'item', # js-data needs the item-id in the nested object to define relations.
|
|
)
|
|
|
|
|
|
class RelatedItemRelatedField(RelatedField):
|
|
"""
|
|
A custom field to use for the content_object generic relationship.
|
|
"""
|
|
def to_representation(self, value):
|
|
"""
|
|
Returns info concerning the related object extracted from the api URL
|
|
of this object.
|
|
"""
|
|
return {'collection': value.get_collection_string(), 'id': value.get_rest_pk()}
|
|
|
|
|
|
class ItemSerializer(ModelSerializer):
|
|
"""
|
|
Serializer for agenda.models.Item objects.
|
|
"""
|
|
content_object = RelatedItemRelatedField(read_only=True)
|
|
speakers = SpeakerSerializer(many=True, read_only=True)
|
|
|
|
class Meta:
|
|
model = Item
|
|
fields = (
|
|
'id',
|
|
'item_number',
|
|
'title',
|
|
'list_view_title',
|
|
'comment',
|
|
'closed',
|
|
'type',
|
|
'is_internal',
|
|
'is_hidden',
|
|
'duration',
|
|
'speakers',
|
|
'speaker_list_closed',
|
|
'content_object',
|
|
'weight',
|
|
'parent',)
|