Example #1
0
 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
Example #2
0
 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
Example #3
0
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
Example #4
0
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
Example #5
0
 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
Example #6
0
 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
Example #7
0
 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
Example #8
0
 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
Example #9
0
 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
Example #10
0
 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
Example #11
0
 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
Example #12
0
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))
Example #13
0
    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 = {}
Example #14
0
    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 = {}
Example #15
0
 def _checkParams(self, params):
     RHManageSessionBase._checkParams(self, params)
     self.session_block = SessionBlock.get_one(
         request.view_args['block_id'])
Example #16
0
 def _checkParams(self, params):
     RHManageSessionBase._checkParams(self, params)
     self.session_block = SessionBlock.get_one(request.view_args["block_id"])
Example #17
0
 def _process_args(self):
     RHManageSessionBase._process_args(self)
     self.session_block = SessionBlock.get_one(
         request.view_args['block_id'])
Example #18
0
 def _process_args(self):
     RHManageSessionBase._process_args(self)
     self.session_block = SessionBlock.get_one(request.view_args['block_id'])