Exemplo n.º 1
0
def _extend_event_menu(sender, **kwargs):
    from indico.modules.events.registration.models.forms import RegistrationForm
    from indico.modules.events.registration.models.registrations import Registration

    def _visible_registration(event):
        if not event.has_feature('registration'):
            return False
        if not event.can_access(session.user) and not (
                event.has_regform_in_acl and event.public_regform_access):
            return False
        if any(form.is_scheduled for form in event.registration_forms):
            return True
        if not session.user:
            return False
        return (Registration.query.with_parent(event).join(
            Registration.registration_form).filter(
                Registration.user == session.user,
                ~RegistrationForm.is_deleted).has_rows())

    def _visible_participant_list(event):
        return event.has_feature('registration')

    yield MenuEntryData(_('Registration'),
                        'registration',
                        'event_registration.display_regform_list',
                        position=10,
                        visible=_visible_registration,
                        hide_if_restricted=False)
    yield MenuEntryData(_('Participant List'),
                        'participants',
                        'event_registration.participant_list',
                        position=11,
                        visible=_visible_participant_list,
                        static_site=True)
Exemplo n.º 2
0
def _extend_event_menu(sender, **kwargs):
    from indico.modules.events.abstracts.util import has_user_tracks
    from indico.modules.events.layout.util import MenuEntryData
    from indico.modules.events.contributions import contribution_settings

    def _boa_visible(event):
        return (config.LATEX_ENABLED and event.has_feature('abstracts')
                and contribution_settings.get(event, 'published'))

    def _reviewing_area_visible(event):
        if not session.user or not event.has_feature('abstracts'):
            return False
        return has_user_tracks(event, session.user)

    yield MenuEntryData(title=_("Book of Abstracts"),
                        name='abstracts_book',
                        endpoint='abstracts.export_boa',
                        position=9,
                        visible=_boa_visible,
                        static_site=True)
    yield MenuEntryData(title=_("Call for Abstracts"),
                        name='call_for_abstracts',
                        endpoint='abstracts.call_for_abstracts',
                        position=2,
                        visible=lambda event: event.has_feature('abstracts'))
    yield MenuEntryData(title=_("Reviewing Area"),
                        name='abstract_reviewing_area',
                        endpoint='abstracts.display_reviewable_tracks',
                        position=0,
                        parent='call_for_abstracts',
                        visible=_reviewing_area_visible)
Exemplo n.º 3
0
def _extend_event_menu(sender, **kwargs):
    from indico.modules.events.layout.util import MenuEntryData

    def _judging_area_visible(event):
        if not session.user or not event.has_feature('papers'):
            return False
        return event.cfp.can_access_judging_area(session.user)

    def _reviewing_area_visible(event):
        if not session.user or not event.has_feature('papers'):
            return False
        return event.cfp.can_access_reviewing_area(session.user)

    def _call_for_papers_visible(event):
        from indico.modules.events.papers.util import has_contributions_with_user_paper_submission_rights
        if not session.user or not event.has_feature('papers'):
            return False
        return (has_contributions_with_user_paper_submission_rights(event, session.user) or
                event.cfp.is_staff(session.user))

    yield MenuEntryData(title=_("Call for Papers"), name='call_for_papers',
                        endpoint='papers.call_for_papers', position=8,
                        visible=_call_for_papers_visible)

    yield MenuEntryData(title=_("Reviewing Area"), name='paper_reviewing_area', parent='call_for_papers',
                        endpoint='papers.reviewing_area', position=0, visible=_reviewing_area_visible)

    yield MenuEntryData(title=_("Judging Area"), name='paper_judging_area', parent='call_for_papers',
                        endpoint='papers.papers_list', position=1, visible=_judging_area_visible)
Exemplo n.º 4
0
def get_default_menu_entries():
    return [
        MenuEntryData(title=_("Overview"),
                      name='overview',
                      endpoint='event.conferenceDisplay-overview',
                      position=0,
                      static_site=True),
        MenuEntryData(title=_("My Conference"),
                      name='my_conference',
                      endpoint='event.myconference',
                      position=7,
                      visible=_visibility_my_conference),
        MenuEntryData(title=_("Paper Reviewing"),
                      name='paper_reviewing',
                      endpoint='event.paperReviewingDisplay',
                      position=8,
                      visible=_visibility_paper_review),
        MenuEntryData(title=_("Manage Paper Reviewing"),
                      name='paper_setup',
                      endpoint='event_mgmt.confModifReviewing-paperSetup',
                      visible=_visibility_paper_review_managment,
                      position=0,
                      parent='paper_reviewing'),
        MenuEntryData(title=_("Assign Papers"),
                      name='paper_assign',
                      endpoint='event_mgmt.assignContributions',
                      visible=_visibility_paper_assign,
                      position=1,
                      parent='paper_reviewing'),
        MenuEntryData(title=_("Referee Area"),
                      name='contributions_to_judge',
                      endpoint='event_mgmt.confListContribToJudge',
                      visible=_visibility_judge,
                      position=2,
                      parent='paper_reviewing'),
        MenuEntryData(title=_("Content Reviewer Area"),
                      name='contributions_as_reviewer',
                      endpoint='event_mgmt.confListContribToJudge-asReviewer',
                      visible=_visibility_contributions_as_reviewer,
                      position=3,
                      parent='paper_reviewing'),
        MenuEntryData(title=_("Layout Reviewer Area"),
                      name='contributions_as_editor',
                      endpoint='event_mgmt.confListContribToJudge-asEditor',
                      visible=_visibility_contributions_as_editor,
                      position=4,
                      parent='paper_reviewing'),
        MenuEntryData(title=_("Upload Paper"),
                      name='paper_upload',
                      endpoint='event.paperReviewingDisplay-uploadPaper',
                      visible=_visibility_paper_review_transfer,
                      position=5,
                      parent='paper_reviewing'),
        MenuEntryData(title=_("Download Template"),
                      name='download_template',
                      endpoint='event.paperReviewingDisplay-downloadTemplate',
                      visible=_visibility_paper_review_transfer,
                      position=6,
                      parent='paper_reviewing')
    ]
Exemplo n.º 5
0
def _extend_event_menu(sender, **kwargs):
    from indico.modules.events.registration.models.forms import RegistrationForm
    from indico.modules.events.registration.models.registrations import Registration

    def _visible_registration(event):
        if not event.has_feature('registration'):
            return False
        if RegistrationForm.find(RegistrationForm.is_scheduled,
                                 RegistrationForm.event_id == int(
                                     event.id)).count():
            return True
        if not session.user:
            return False
        return bool(
            Registration.find(Registration.user == session.user,
                              Registration.event_id == int(event.id),
                              ~Registration.is_deleted,
                              ~RegistrationForm.is_deleted,
                              _join=Registration.registration_form).count())

    def _visible_participant_list(event):
        return event.has_feature('registration')

    yield MenuEntryData(_('Registration'),
                        'registration',
                        'event_registration.display_regform_list',
                        position=10,
                        visible=_visible_registration)
    yield MenuEntryData(_('Participant List'),
                        'participants',
                        'event_registration.participant_list',
                        position=11,
                        visible=_visible_participant_list,
                        static_site=True)
Exemplo n.º 6
0
def _extend_event_menu(sender, **kwargs):
    from indico.modules.events.layout.util import MenuEntryData, get_menu_entry_by_name

    def _my_conference_visible(event):
        return session.user and (get_menu_entry_by_name('my_contributions', event).is_visible or
                                 get_menu_entry_by_name('my_sessions', event).is_visible)

    yield MenuEntryData(_("Overview"), 'overview', 'events.display_overview', position=0, static_site=True)
    yield MenuEntryData(_("My Conference"), 'my_conference', position=7, visible=_my_conference_visible)
Exemplo n.º 7
0
def get_default_menu_entries():
    return [
        MenuEntryData(title=_("Overview"),
                      name='overview',
                      endpoint='events.display_overview',
                      position=0,
                      static_site=True),
        MenuEntryData(title=_("My Conference"),
                      name='my_conference',
                      endpoint='event.myconference',
                      position=7,
                      visible=_visibility_my_conference)
    ]
Exemplo n.º 8
0
def _extend_event_menu(sender, **kwargs):
    from indico.modules.events.editing.models.editable import EditableType
    from indico.modules.events.layout.util import MenuEntryData

    def _editing_visible(event, specific_type=None):
        if not session.user or not event.has_feature('editing'):
            return False

        enabled_types = {
            EditableType[et]
            for et in event.editable_types
            if (specific_type is None or specific_type.name == et)
        }
        if not enabled_types:
            return False
        elif event.can_manage(session.user, 'editing_manager'):
            return True
        return any(
            event.can_manage(session.user, et.editor_permission)
            for et in enabled_types)

    def _make_visible(editable_type):
        return lambda event: _editing_visible(event, editable_type)

    yield MenuEntryData(title=_('Editing'),
                        name='editing',
                        position=8,
                        visible=_editing_visible)
    yield MenuEntryData(title=_('Papers'),
                        name='editing_papers',
                        parent='editing',
                        endpoint='event_editing.editable_type_list',
                        position=0,
                        visible=_make_visible(EditableType.paper),
                        url_kwargs={'type': 'paper'})
    yield MenuEntryData(title=_('Slides'),
                        name='editing_slides',
                        parent='editing',
                        endpoint='event_editing.editable_type_list',
                        position=1,
                        visible=_make_visible(EditableType.slides),
                        url_kwargs={'type': 'slides'})
    yield MenuEntryData(title=_('Posters'),
                        name='editing_posters',
                        parent='editing',
                        endpoint='event_editing.editable_type_list',
                        position=2,
                        visible=_make_visible(EditableType.poster),
                        url_kwargs={'type': 'poster'})
Exemplo n.º 9
0
def _extend_event_menu(sender, **kwargs):
    from indico.modules.events.layout.util import MenuEntryData
    yield MenuEntryData(title=_("Timetable"),
                        name='timetable',
                        endpoint='timetable.timetable',
                        position=3,
                        static_site=True)
Exemplo n.º 10
0
 def extend_event_menu(self, sender, **kwargs):
     return MenuEntryData(_('Chat Rooms'),
                          'chatrooms',
                          'chat.event_page',
                          position=-1,
                          visible=lambda event: ChatroomEventAssociation.
                          find_for_event(event).has_rows())
Exemplo n.º 11
0
def _extend_event_menu(sender, **kwargs):
    from indico.modules.events.layout.util import MenuEntryData

    def _visible_my_sessions(event):
        return session.user and has_sessions_for_user(event, session.user)

    yield MenuEntryData(title=_("My Sessions"), name='my_sessions', endpoint='sessions.my_sessions', position=1,
                        parent='my_conference', visible=_visible_my_sessions)
Exemplo n.º 12
0
def _extend_event_menu(sender, **kwargs):
    from indico.modules.events.layout.util import MenuEntryData
    from indico.modules.events.tracks.settings import track_settings

    def _program_visible(event):
        return bool(track_settings.get(event, 'program').strip() or Track.query.with_parent(event).has_rows())

    return MenuEntryData(title=_("Scientific Programme"), name='program', endpoint='tracks.program', position=1,
                         visible=_program_visible, static_site=True)
Exemplo n.º 13
0
def _extend_event_menu(sender, **kwargs):
    from indico.modules.events.layout.util import MenuEntryData
    from indico.modules.events.contributions import contribution_settings

    def _visible_timetable(event):
        return contribution_settings.get(event, 'published')

    yield MenuEntryData(title=_("Timetable"), name='timetable', endpoint='timetable.timetable', position=3,
                        visible=_visible_timetable, static_site=True)
Exemplo n.º 14
0
def _extend_event_menu(sender, **kwargs):
    from indico.modules.events.contributions.util import has_contributions_with_user_as_submitter
    from indico.modules.events.layout.util import MenuEntryData

    def _visible_my_contributions(event):
        return session.user and has_contributions_with_user_as_submitter(event, session.user)

    def _visible_list_of_contributions(event):
        return Contribution.query.filter(Contribution.event_new == event).has_rows()

    yield MenuEntryData(title=_("My Contributions"), name='my_contributions', visible=_visible_my_contributions,
                        endpoint='contributions.my_contributions', position=2, parent='my_conference')
    yield MenuEntryData(title=_("Contribution List"), name='contributions', endpoint='contributions.contribution_list',
                        position=4, static_site=True, visible=_visible_list_of_contributions)
    yield MenuEntryData(title=_("Author List"), name='author_index', endpoint='contributions.author_list', position=5,
                        is_enabled=False, static_site=True)
    yield MenuEntryData(title=_("Speaker List"), name='speaker_index', endpoint='contributions.speaker_list',
                        position=6, is_enabled=False, static_site=True)
Exemplo n.º 15
0
def _extend_event_menu(sender, **kwargs):
    def _visible(event):
        return event.has_feature('surveys') and query_active_surveys(
            event).has_rows()

    return MenuEntryData(_('Surveys'),
                         'surveys',
                         'surveys.display_survey_list',
                         position=12,
                         visible=_visible)
Exemplo n.º 16
0
def _extend_event_menu(sender, **kwargs):
    def _visible(event):
        return bool(get_vc_plugins(
        )) and VCRoomEventAssociation.find_for_event(event).has_rows()

    return MenuEntryData(_('Videoconference Rooms'),
                         'videoconference_rooms',
                         'vc.event_videoconference',
                         position=14,
                         visible=_visible)
Exemplo n.º 17
0
def _extend_event_menu(sender, **kwargs):
    from indico.modules.events.surveys.models.surveys import Survey

    def _visible(event):
        return event.has_feature('surveys') and query_active_surveys(
            event).has_rows()

    return MenuEntryData(_('Surveys'),
                         'surveys',
                         'surveys.display_survey_list',
                         position=12,
                         visible=_visible)
Exemplo n.º 18
0
def _extend_event_menu(sender, **kwargs):
    from indico.modules.events.surveys.models.surveys import Survey

    def _visible(event):
        return (event.has_feature('surveys')
                and Survey.query.with_parent(event).filter(
                    Survey.is_visible).has_rows())

    return MenuEntryData(_('Surveys'),
                         'surveys',
                         'surveys.display_survey_list',
                         position=12,
                         visible=_visible)
Exemplo n.º 19
0
def _extend_event_menu(sender, **kwargs):
    from indico.modules.events.contributions.util import has_contributions_with_user_as_submitter
    from indico.modules.events.layout.util import MenuEntryData

    def _visible_my_contributions(event):
        if not session.user:
            return False
        return has_contributions_with_user_as_submitter(event, session.user)

    def _visible_list_of_contributions(event):
        published = contribution_settings.get(event, 'published')
        can_manage = event.can_manage(session.user)
        return (published or can_manage) and Contribution.query.filter(Contribution.event == event).has_rows()

    yield MenuEntryData(title=_('My Contributions'), name='my_contributions', visible=_visible_my_contributions,
                        endpoint='contributions.my_contributions', position=2, parent='my_conference')
    yield MenuEntryData(title=_('Contribution List'), name='contributions', endpoint='contributions.contribution_list',
                        position=4, static_site=True, visible=_visible_list_of_contributions)
    yield MenuEntryData(title=_('Author List'), name='author_index', endpoint='contributions.author_list', position=5,
                        is_enabled=False, static_site=True)
    yield MenuEntryData(title=_('Speaker List'), name='speaker_index', endpoint='contributions.speaker_list',
                        position=6, is_enabled=False, static_site=True)
Exemplo n.º 20
0
def _extend_event_menu(sender, **kwargs):
    from indico.modules.events.surveys.models.surveys import Survey

    def _visible(event):
        return (event.has_feature('surveys') and bool(
            Survey.find(Survey.is_visible, Survey.event_id == int(
                event.id)).count()))

    return MenuEntryData(_('Surveys'),
                         'surveys',
                         'surveys.display_survey_list',
                         position=12,
                         visible=_visible)
Exemplo n.º 21
0
def get_default_menu_entries():
    return [
        MenuEntryData(title=_("Overview"),
                      name='overview',
                      endpoint='event.conferenceDisplay-overview',
                      position=0,
                      static_site=True),
        MenuEntryData(title=_("Scientific Programme"),
                      name='program',
                      endpoint='event.conferenceProgram',
                      position=1,
                      static_site=True),
        MenuEntryData(
            title=_("Manage my Tracks"),
            name='program_my_tracks',
            visible=_visibility_my_tracks,
            endpoint='event.myconference-myTracks',
            parent='program',
        ),
        MenuEntryData(
            title=_("Call for Abstracts"),
            name='call_for_abstracts',
            endpoint='event.conferenceCFA',
            position=2,
            visible=_visibility_call_for_abstracts,
        ),
        MenuEntryData(title=_("View my Abstracts"),
                      name='user_abstracts',
                      endpoint='event.userAbstracts',
                      position=0,
                      parent='call_for_abstracts'),
        MenuEntryData(title=_("Submit Abstract"),
                      name='abstract_submission',
                      endpoint='event.abstractSubmission',
                      position=1,
                      parent='call_for_abstracts'),
        MenuEntryData(title=_("Timetable"),
                      name='timetable',
                      endpoint='event.conferenceTimeTable',
                      position=3,
                      static_site=True),
        MenuEntryData(title=_("Contribution List"),
                      name='contributions',
                      endpoint='event.contributionListDisplay',
                      position=4,
                      static_site=True),
        MenuEntryData(title=_("Author List"),
                      name='author_index',
                      endpoint='event.confAuthorIndex',
                      position=5,
                      is_enabled=False,
                      static_site=True),
        MenuEntryData(title=_("Speaker List"),
                      name='speaker_index',
                      endpoint='event.confSpeakerIndex',
                      position=6,
                      is_enabled=False,
                      static_site=True),
        MenuEntryData(title=_("My Conference"),
                      name='my_conference',
                      endpoint='event.myconference',
                      position=7,
                      visible=_visibility_my_conference),
        MenuEntryData(title=_("My Tracks"),
                      endpoint='event.myconference-myTracks',
                      name='my_tracks',
                      visible=_visibility_my_tracks,
                      position=0,
                      parent='my_conference'),
        MenuEntryData(title=_("My Sessions"),
                      name='my_sessions',
                      endpoint='event.myconference-mySessions',
                      position=1,
                      parent='my_conference'),
        MenuEntryData(title=_("My Contributions"),
                      name='my_contributions',
                      visible=_visibility_my_contributions,
                      endpoint='event.myconference-myContributions',
                      position=2,
                      parent='my_conference'),
        MenuEntryData(title=_("Paper Reviewing"),
                      name='paper_reviewing',
                      endpoint='event.paperReviewingDisplay',
                      position=8,
                      visible=_visibility_paper_review),
        MenuEntryData(title=_("Manage Paper Reviewing"),
                      name='paper_setup',
                      endpoint='event_mgmt.confModifReviewing-paperSetup',
                      visible=_visibility_paper_review_managment,
                      position=0,
                      parent='paper_reviewing'),
        MenuEntryData(title=_("Assign Papers"),
                      name='paper_assign',
                      endpoint='event_mgmt.assignContributions',
                      visible=_visibility_paper_assign,
                      position=1,
                      parent='paper_reviewing'),
        MenuEntryData(title=_("Referee Area"),
                      name='contributions_to_judge',
                      endpoint='event_mgmt.confListContribToJudge',
                      visible=_visibility_judge,
                      position=2,
                      parent='paper_reviewing'),
        MenuEntryData(title=_("Content Reviewer Area"),
                      name='contributions_as_reviewer',
                      endpoint='event_mgmt.confListContribToJudge-asReviewer',
                      visible=_visibility_contributions_as_reviewer,
                      position=3,
                      parent='paper_reviewing'),
        MenuEntryData(title=_("Layout Reviewer Area"),
                      name='contributions_as_editor',
                      endpoint='event_mgmt.confListContribToJudge-asEditor',
                      visible=_visibility_contributions_as_editor,
                      position=4,
                      parent='paper_reviewing'),
        MenuEntryData(title=_("Upload Paper"),
                      name='paper_upload',
                      endpoint='event.paperReviewingDisplay-uploadPaper',
                      visible=_visibility_paper_review_transfer,
                      position=5,
                      parent='paper_reviewing'),
        MenuEntryData(title=_("Download Template"),
                      name='download_template',
                      endpoint='event.paperReviewingDisplay-downloadTemplate',
                      visible=_visibility_paper_review_transfer,
                      position=6,
                      parent='paper_reviewing'),
        MenuEntryData(title=_("Book of Abstracts"),
                      name='abstracts_book',
                      endpoint='event.conferenceDisplay-abstractBook',
                      position=9,
                      visible=_visibility_abstracts_book,
                      static_site='files/generatedPdf/BookOfAbstracts.pdf')
    ]