Source code for pretalx.schedule.models.room

from django.db import models
from django.utils.translation import ugettext_lazy as _
from django_scopes import ScopedManager
from i18nfield.fields import I18nCharField

from pretalx.common.mixins import LogMixin
from pretalx.common.urls import EventUrls


[docs]class Room(LogMixin, models.Model): """A Room is an actual place where talks will be scheduled. The Room object stores some meta information. Most, like capacity, are not in use right now. """ event = models.ForeignKey( to='event.Event', on_delete=models.PROTECT, related_name='rooms' ) name = I18nCharField(max_length=100, verbose_name=_('Name')) description = I18nCharField( max_length=1000, null=True, blank=True, verbose_name=_('Description'), help_text=_('A description for attendees, for example directions.'), ) speaker_info = I18nCharField( max_length=1000, null=True, blank=True, verbose_name=_('Speaker Information'), help_text=_( 'Information relevant for speakers scheduled in this room, for example room size, special directions, available adapters for video input …' ), ) capacity = models.PositiveIntegerField( null=True, blank=True, verbose_name=_('Capacity'), help_text=_('How many people can fit in the room?'), ) position = models.PositiveIntegerField( null=True, blank=True, verbose_name=_('Position'), help_text=_( 'This is the order that rooms are displayed in in the schedule (lower = left).' ), ) objects = ScopedManager(event='event') class Meta: ordering = ('position',) class urls(EventUrls): settings_base = edit = '{self.event.orga_urls.room_settings}{self.pk}/' delete = '{settings_base}delete' up = '{settings_base}up' down = '{settings_base}down' def __str__(self) -> str: return str(self.name)