def _extend_event_menu(sender, **kwargs):
    from fossir.modules.events.registration.models.forms import RegistrationForm
    from fossir.modules.events.registration.models.registrations import Registration

    def _visible_registration(event):
        if not event.has_feature('registration'):
            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)
    yield MenuEntryData(_('Participant List'),
                        'participants',
                        'event_registration.participant_list',
                        position=11,
                        visible=_visible_participant_list,
                        static_site=True)
def _extend_event_menu(sender, **kwargs):
    from fossir.modules.events.abstracts.util import has_user_tracks
    from fossir.modules.events.layout.util import MenuEntryData

    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=lambda event: event.has_feature('abstracts'), 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)
def _extend_event_menu(sender, **kwargs):
    from fossir.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)
def _extend_event_menu(sender, **kwargs):
    from fossir.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)
def _extend_event_menu(sender, **kwargs):
    from fossir.modules.events.layout.util import MenuEntryData
    from fossir.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)
def _extend_event_menu(sender, **kwargs):
    from fossir.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)
def _extend_event_menu(sender, **kwargs):
    from fossir.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 fossir.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)
def _extend_event_menu(sender, **kwargs):
    from fossir.modules.events.contributions.util import has_contributions_with_user_as_submitter
    from fossir.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 == 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)
def _extend_event_menu(sender, **kwargs):
    from fossir.modules.events.layout.util import MenuEntryData
    yield MenuEntryData(title=_("Timetable"), name='timetable', endpoint='timetable.timetable', position=3,
                        static_site=True)
Exemple #10
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)