def _clone_session_blocks(self, blocks): attrs = get_simple_column_attrs(SessionBlock) | {'own_room', 'own_venue'} for old_block in blocks: block = SessionBlock() block.populate_from_attrs(old_block, attrs) block.person_links = list(self._clone_person_links(old_block.person_links)) self._session_block_map[old_block] = block yield block
def create_session_block(session_, data): block = SessionBlock(session=session_) block.populate_from_dict(data) db.session.flush() session_.event_new.log(EventLogRealm.management, EventLogKind.positive, 'Sessions', 'Session block "{}" for session "{}" has been created' .format(block.title, session_.title), session.user) logger.info("Session block %s created by %s", block, session.user) return block
def _process_args(self): RHManageTimetableBase._process_args(self) self.session_id = None if 'session_block_id' in request.args: self.session_id = SessionBlock.get_or_404(request.args['session_block_id']).session_id if self.session and self.session.id != self.session_id: raise BadRequest
def _checkParams(self, params): RHManageTimetableBase._checkParams(self, params) self.session_id = None if 'session_block_id' in request.args: self.session_id = SessionBlock.get_one(request.args['session_block_id']).session_id if self.session and self.session.id != self.session_id: raise BadRequest
def _process_args(self): RHManageTimetableBase._process_args(self) self.session_id = None if 'session_block_id' in request.args: self.session_id = SessionBlock.get_one(request.args['session_block_id']).session_id if self.session and self.session.id != self.session_id: raise BadRequest
def __init__(self, *args, **kwargs): self.event = kwargs.pop('event') super(VCRoomLinkFormBase, self).__init__(*args, **kwargs) contrib_choices = [(contrib.id, contrib.title) for contrib in sorted(self.event.contributions, key=attrgetter('title'))] blocks = SessionBlock.find(SessionBlock.session.has((Session.event_new == self.event) & ~Session.is_deleted)) block_choices = [(block.id, block.full_title) for block in sorted(blocks, key=attrgetter('full_title'))] self.contribution.choices = [('', _("Please select a contribution"))] + contrib_choices self.block.choices = [('', _("Please select a session block"))] + block_choices
def __init__(self, *args, **kwargs): self.event = kwargs.pop('event') super().__init__(*args, **kwargs) contrib_choices = [(contrib.id, contrib.title) for contrib in sorted(self.event.contributions, key=attrgetter('title'))] blocks = SessionBlock.find(SessionBlock.session.has((Session.event == self.event) & ~Session.is_deleted)) block_choices = [(block.id, block.full_title) for block in sorted(blocks, key=attrgetter('full_title'))] self.contribution.choices = [('', _("Please select a contribution"))] + contrib_choices self.block.choices = [('', _("Please select a session block"))] + block_choices
def _migrate_block_timetable_entry(self, old_entry): old_block = old_entry._LinkedTimeSchEntry__owner try: session = self.event_ns.legacy_session_map[old_block.session] except KeyError: self.print_warning('%[yellow!]Found zombie session {}'.format(old_block.session)) session = self._migrate_session(old_block.session) session_block = SessionBlock(session=session, title=convert_to_unicode(old_block.title), duration=old_block.duration) session_block.timetable_entry = TimetableEntry(event_new=self.event, start_dt=self.context._fix_naive(old_block.startDate)) if session.legacy_mapping is not None: session_block.legacy_mapping = LegacySessionBlockMapping(event_new=self.event, legacy_session_id=old_block.session.id, legacy_session_block_id=old_block.id) self._migrate_location(old_block, session_block) session_block.person_links = list(self._migrate_session_block_person_links(old_block)) self._migrate_timetable_entries(old_block._schedule._entries, session_block) return session_block.timetable_entry
def _query_blocks(event_ids, dates_overlap, detail_level='session'): options = [subqueryload('session').joinedload('blocks').joinedload('person_links')] if detail_level == 'contribution': options.append(joinedload(SessionBlock.timetable_entry).joinedload(TimetableEntry.children)) else: options.append(joinedload(SessionBlock.timetable_entry)) return (SessionBlock.find(~Session.is_deleted, Session.event_id.in_(event_ids), dates_overlap(TimetableEntry)) .options(*options) .join(TimetableEntry).join(Session))
def update_data_association(self, event, vc_room, event_vc_room, data): contribution_id = data.pop('contribution') block_id = data.pop('block') link_type = VCRoomLinkType[data.pop('linking')] if link_type == VCRoomLinkType.event: event_vc_room.link_object = event elif link_type == VCRoomLinkType.contribution: event_vc_room.link_object = Contribution.get_one(contribution_id) elif link_type == VCRoomLinkType.block: event_vc_room.link_object = SessionBlock.get_one(block_id) event_vc_room.vc_room = vc_room event_vc_room.show = data.pop('show') if event_vc_room.data is None: event_vc_room.data = {}
def _checkParams(self, params): RHManageSessionBase._checkParams(self, params) self.session_block = SessionBlock.get_one( request.view_args['block_id'])
def _checkParams(self, params): RHManageSessionBase._checkParams(self, params) self.session_block = SessionBlock.get_one(request.view_args["block_id"])
def _process_args(self): RHManageSessionBase._process_args(self) self.session_block = SessionBlock.get_one( request.view_args['block_id'])
def _process_args(self): RHManageSessionBase._process_args(self) self.session_block = SessionBlock.get_one(request.view_args['block_id'])