Exemple #1
0
    RHManageCategoryProtection, RHManageCategorySettings, RHMoveCategory,
    RHMoveEvents, RHMoveSubcategories, RHSortSubcategories, RHSplitCategory)
from fossir.modules.users import User
from fossir.web.flask.util import make_compat_redirect_func, redirect_view, url_for
from fossir.web.flask.wrappers import fossirBlueprint


def _redirect_event_creation(category_id, event_type):
    anchor = 'create-event:{}:{}'.format(event_type, category_id)
    return redirect(
        url_for('.display', category_id=category_id, _anchor=anchor))


_bp = fossirBlueprint('categories',
                      __name__,
                      template_folder='templates',
                      virtual_template_folder='categories',
                      url_prefix='/category/<int:category_id>')

# Category management
_bp.add_url_rule('/manage/', 'manage_content', RHManageCategoryContent)
_bp.add_url_rule('/manage/delete',
                 'delete',
                 RHDeleteCategory,
                 methods=('POST', ))
_bp.add_url_rule('/manage/icon',
                 'manage_icon',
                 RHManageCategoryIcon,
                 methods=('POST', 'DELETE'))
_bp.add_url_rule('/manage/logo',
                 'manage_logo',
from __future__ import unicode_literals

from fossir.modules.news.controllers import RHCreateNews, RHDeleteNews, RHEditNews, RHManageNews, RHNews, RHNewsSettings
from fossir.web.flask.wrappers import fossirBlueprint

_bp = fossirBlueprint('news',
                      __name__,
                      template_folder='templates',
                      virtual_template_folder='news')

_bp.add_url_rule('/news', 'display', RHNews)
_bp.add_url_rule('/admin/news/', 'manage', RHManageNews)
_bp.add_url_rule('/admin/news/settings',
                 'settings',
                 RHNewsSettings,
                 methods=('GET', 'POST'))
_bp.add_url_rule('/admin/news/create',
                 'create_news',
                 RHCreateNews,
                 methods=('GET', 'POST'))
_bp.add_url_rule('/admin/news/<int:news_id>/',
                 'edit_news',
                 RHEditNews,
                 methods=('GET', 'POST'))
_bp.add_url_rule('/admin/news/<int:news_id>/delete',
                 'delete_news',
                 RHDeleteNews,
                 methods=('GET', 'POST'))
Exemple #3
0
from __future__ import unicode_literals

from fossir.modules.events.reminders.controllers import (RHAddReminder,
                                                         RHDeleteReminder,
                                                         RHEditReminder,
                                                         RHListReminders,
                                                         RHPreviewReminder)
from fossir.web.flask.wrappers import fossirBlueprint

_bp = fossirBlueprint('event_reminders',
                      __name__,
                      template_folder='templates',
                      virtual_template_folder='events/reminders',
                      url_prefix='/event/<confId>/manage/reminders')

_bp.add_url_rule('/', 'list', RHListReminders)
_bp.add_url_rule('/add', 'add', RHAddReminder, methods=('GET', 'POST'))
_bp.add_url_rule('/preview', 'preview', RHPreviewReminder, methods=('POST', ))
_bp.add_url_rule('/<int:reminder_id>/',
                 'edit',
                 RHEditReminder,
                 methods=('GET', 'POST'))
_bp.add_url_rule('/<int:reminder_id>/delete',
                 'delete',
                 RHDeleteReminder,
                 methods=('POST', ))
Exemple #4
0
    RHLegacyTimetableAddSession, RHLegacyTimetableAddSessionBlock,
    RHLegacyTimetableBreakREST, RHLegacyTimetableDeleteEntry,
    RHLegacyTimetableEditEntry, RHLegacyTimetableEditEntryDateTime,
    RHLegacyTimetableEditEntryTime, RHLegacyTimetableEditSession,
    RHLegacyTimetableFitBlock, RHLegacyTimetableGetUnscheduledContributions,
    RHLegacyTimetableMoveEntry, RHLegacyTimetableReschedule,
    RHLegacyTimetableScheduleContribution, RHLegacyTimetableShiftEntries,
    RHLegacyTimetableSwapEntries)
from fossir.modules.events.timetable.controllers.manage import (
    RHManageSessionTimetable, RHManageTimetable, RHManageTimetableEntryInfo,
    RHTimetableREST)
from fossir.web.flask.wrappers import fossirBlueprint

_bp = fossirBlueprint('timetable',
                      __name__,
                      template_folder='templates',
                      virtual_template_folder='events/timetable',
                      url_prefix='/event/<confId>')

# Management
_bp.add_url_rule('/manage/timetable/', 'management', RHManageTimetable)
_bp.add_url_rule('/manage/timetable/',
                 'timetable_rest',
                 RHTimetableREST,
                 methods=('POST', ))
_bp.add_url_rule('/manage/timetable/<int:entry_id>',
                 'timetable_rest',
                 RHTimetableREST,
                 methods=('PATCH', 'DELETE'))
_bp.add_url_rule('/manage/timetable/session/<int:session_id>/',
                 'manage_session', RHManageSessionTimetable)
Exemple #5
0
from __future__ import unicode_literals

from fossir.modules.groups.controllers import (RHGroupDelete,
                                               RHGroupDeleteMember,
                                               RHGroupDetails, RHGroupEdit,
                                               RHGroupMembers, RHGroups)
from fossir.web.flask.wrappers import fossirBlueprint

_bp = fossirBlueprint('groups',
                      __name__,
                      template_folder='templates',
                      virtual_template_folder='groups',
                      url_prefix='/admin/groups')

_bp.add_url_rule('/', 'groups', RHGroups, methods=('GET', 'POST'))
_bp.add_url_rule('/<provider>/<group_id>/', 'group_details', RHGroupDetails)
_bp.add_url_rule('/<provider>/<group_id>/members', 'group_members',
                 RHGroupMembers)
_bp.add_url_rule('/fossir/new',
                 'group_add',
                 RHGroupEdit,
                 methods=('GET', 'POST'))
_bp.add_url_rule('/<any(fossir):provider>/<int:group_id>/edit',
                 'group_edit',
                 RHGroupEdit,
                 methods=('GET', 'POST'))
_bp.add_url_rule('/<any(fossir):provider>/<int:group_id>/delete',
                 'group_delete',
                 RHGroupDelete,
                 methods=('POST', ))
_bp.add_url_rule('/<any(fossir):provider>/<int:group_id>/<int:user_id>',
Exemple #6
0
from __future__ import unicode_literals

from fossir.modules.bootstrap.controllers import RHBootstrap
from fossir.web.flask.wrappers import fossirBlueprint

_bp = fossirBlueprint('bootstrap',
                      __name__,
                      template_folder='templates',
                      virtual_template_folder='bootstrap')
_bp.add_url_rule('/bootstrap', 'index', RHBootstrap, methods=('GET', 'POST'))
Exemple #7
0
from __future__ import unicode_literals

from flask import request

from fossir.modules.oauth.controllers import (
    RHOAuthAdmin, RHOAuthAdminApplication, RHOAuthAdminApplicationDelete,
    RHOAuthAdminApplicationNew, RHOAuthAdminApplicationReset,
    RHOAuthAdminApplicationRevoke, RHOAuthAuthorize, RHOAuthErrors,
    RHOAuthToken, RHOAuthUserProfile, RHOAuthUserTokenRevoke)
from fossir.web.flask.wrappers import fossirBlueprint

_bp = fossirBlueprint('oauth',
                      __name__,
                      template_folder='templates',
                      virtual_template_folder='oauth')

# Application endpoints
_bp.add_url_rule('/oauth/authorize',
                 'oauth_authorize',
                 RHOAuthAuthorize,
                 methods=('GET', 'POST'))
_bp.add_url_rule('/oauth/errors', 'oauth_errors', RHOAuthErrors)
_bp.add_url_rule('/oauth/token',
                 'oauth_token',
                 RHOAuthToken,
                 methods=('POST', ))

# Server administration
_bp.add_url_rule('/admin/apps/', 'apps', RHOAuthAdmin)
_bp.add_url_rule('/admin/apps/new',
                 'app_new',
from __future__ import unicode_literals

from fossir.modules.events import event_management_object_url_prefixes
from fossir.modules.events.management.controllers import actions, cloning, posters, protection, settings
from fossir.web.flask.util import make_compat_redirect_func
from fossir.web.flask.wrappers import fossirBlueprint

_bp = fossirBlueprint('event_management',
                      __name__,
                      template_folder='templates',
                      virtual_template_folder='events/management',
                      url_prefix='/event/<confId>/manage')

# Settings
_bp.add_url_rule('/', 'settings', settings.RHEventSettings)
_bp.add_url_rule('/settings/data',
                 'edit_data',
                 settings.RHEditEventData,
                 methods=('GET', 'POST'))
_bp.add_url_rule('/settings/dates',
                 'edit_dates',
                 settings.RHEditEventDates,
                 methods=('GET', 'POST'))
_bp.add_url_rule('/settings/location',
                 'edit_location',
                 settings.RHEditEventLocation,
                 methods=('GET', 'POST'))
_bp.add_url_rule('/settings/persons',
                 'edit_persons',
                 settings.RHEditEventPersons,
                 methods=('GET', 'POST'))

from __future__ import unicode_literals

from fossir.modules.cephalopod.controllers import RHCephalopod, RHCephalopodSync, RHSystemInfo
from fossir.web.flask.wrappers import fossirBlueprint


cephalopod_blueprint = _bp = fossirBlueprint('cephalopod', __name__, template_folder='templates',
                                             virtual_template_folder='cephalopod')

_bp.add_url_rule('/admin/community-hub/', 'index', RHCephalopod, methods=('GET', 'POST'))
_bp.add_url_rule('/admin/community-hub/sync', 'sync', RHCephalopodSync, methods=('POST',))
_bp.add_url_rule('/system-info', 'system-info', RHSystemInfo)
Exemple #10
0
from __future__ import unicode_literals

from fossir.modules.events.agreements.controllers import (RHAgreementForm, RHAgreementManager,
                                                          RHAgreementManagerDetails,
                                                          RHAgreementManagerDetailsDownloadAgreement,
                                                          RHAgreementManagerDetailsRemind,
                                                          RHAgreementManagerDetailsRemindAll,
                                                          RHAgreementManagerDetailsSend,
                                                          RHAgreementManagerDetailsSendAll,
                                                          RHAgreementManagerDetailsSubmitAnswer,
                                                          RHAgreementManagerDetailsToggleNotifications)
from fossir.web.flask.wrappers import fossirBlueprint


_bp = fossirBlueprint('agreements', __name__, template_folder='templates', virtual_template_folder='events/agreements',
                      url_prefix='/event/<confId>')

# Event management
_bp.add_url_rule('/manage/agreements/', 'event_agreements', RHAgreementManager)
_bp.add_url_rule('/manage/agreements/<definition>/', 'event_agreements_details', RHAgreementManagerDetails)
_bp.add_url_rule('/manage/agreements/<definition>/toggle-notifications', 'toggle_notifications',
                 RHAgreementManagerDetailsToggleNotifications, methods=('POST',))
_bp.add_url_rule('/manage/agreements/<definition>/send', 'event_agreements_details_send',
                 RHAgreementManagerDetailsSend, methods=('GET', 'POST'))
_bp.add_url_rule('/manage/agreements/<definition>/remind', 'event_agreements_details_remind',
                 RHAgreementManagerDetailsRemind, methods=('GET', 'POST'))
_bp.add_url_rule('/manage/agreements/<definition>/send-all', 'event_agreements_details_send_all',
                 RHAgreementManagerDetailsSendAll, methods=('GET', 'POST'))
_bp.add_url_rule('/manage/agreements/<definition>/remind-all', 'event_agreements_details_remind_all',
                 RHAgreementManagerDetailsRemindAll, methods=('GET', 'POST'))
_bp.add_url_rule('/manage/agreements/<definition>/submit/<id>', 'event_agreements_details_submit_answer',
from fossir.modules.events.layout.compat import compat_image, compat_page
from fossir.modules.events.layout.controllers.images import RHImageDelete, RHImageDisplay, RHImages, RHImageUpload
from fossir.modules.events.layout.controllers.layout import (
    RHLayoutCSSDelete, RHLayoutCSSDisplay, RHLayoutCSSPreview,
    RHLayoutCSSSaveTheme, RHLayoutCSSUpload, RHLayoutEdit, RHLayoutLogoDelete,
    RHLayoutLogoUpload, RHLayoutTimetableThemeForm, RHLogoDisplay)
from fossir.modules.events.layout.controllers.menu import (
    RHMenuAddEntry, RHMenuDeleteEntry, RHMenuEdit, RHMenuEntryEdit,
    RHMenuEntryPosition, RHMenuEntryToggleDefault, RHMenuEntryToggleEnabled,
    RHMenuToggleCustom, RHPageDisplay)
from fossir.web.flask.util import make_compat_redirect_func
from fossir.web.flask.wrappers import fossirBlueprint

_bp = fossirBlueprint('event_layout',
                      __name__,
                      template_folder='templates',
                      virtual_template_folder='events/layout',
                      url_prefix='/event/<confId>/manage/layout')

_bp.add_url_rule('/', 'index', RHLayoutEdit, methods=('GET', 'POST'))
_bp.add_url_rule('/timetable-theme-form', 'timetable_theme_form',
                 RHLayoutTimetableThemeForm)
_bp.add_url_rule('/menu/', 'menu', RHMenuEdit)
_bp.add_url_rule('/menu/toggle-customize',
                 'menu_toggle_custom',
                 RHMenuToggleCustom,
                 methods=('POST', ))
_bp.add_url_rule('/menu/<int:menu_entry_id>/',
                 'menu_entry_edit',
                 RHMenuEntryEdit,
                 methods=(
Exemple #12
0
from __future__ import unicode_literals

from fossir.modules.rb.controllers.user import event
from fossir.web.flask.wrappers import fossirBlueprint

event_mgmt = fossirBlueprint('event_mgmt',
                             __name__,
                             url_prefix='/event/<confId>/manage')

# Booking and event assignment list
event_mgmt.add_url_rule('/rooms/', 'rooms_booking_list',
                        event.RHRoomBookingEventBookingList)
event_mgmt.add_url_rule('/rooms/choose-event', 'rooms_choose_event',
                        event.RHRoomBookingEventChooseEvent)

# View/modify booking
event_mgmt.add_url_rule('/rooms/booking/<roomLocation>/<int:resvID>/',
                        'rooms_booking_details',
                        event.RHRoomBookingEventBookingDetails)
event_mgmt.add_url_rule('/rooms/booking/<roomLocation>/<int:resvID>/modify',
                        'rooms_booking_modify',
                        event.RHRoomBookingEventBookingModifyBooking,
                        methods=('GET', 'POST'))
event_mgmt.add_url_rule('/rooms/booking/<roomLocation>/<int:resvID>/clone',
                        'rooms_booking_clone',
                        event.RHRoomBookingEventBookingCloneBooking,
                        methods=('GET', 'POST'))
event_mgmt.add_url_rule('/rooms/booking/<roomLocation>/<int:resvID>/accept',
                        'rooms_booking_accept',
                        event.RHRoomBookingEventAcceptBooking,
                        methods=('POST', ))
    RHCreateCategoryFolder, RHDeleteCategoryAttachment, RHDeleteCategoryFolder,
    RHEditCategoryAttachment, RHEditCategoryFolder,
    RHManageCategoryAttachments)
from fossir.modules.attachments.controllers.management.event import (
    RHAddEventAttachmentFiles, RHAddEventAttachmentLink,
    RHAttachmentManagementInfoColumn, RHCreateEventFolder,
    RHDeleteEventAttachment, RHDeleteEventFolder, RHEditEventAttachment,
    RHEditEventFolder, RHManageEventAttachments,
    RHPackageEventAttachmentsManagement)
from fossir.modules.events import event_management_object_url_prefixes, event_object_url_prefixes
from fossir.util.caching import memoize
from fossir.web.flask.util import make_compat_redirect_func, make_view_func
from fossir.web.flask.wrappers import fossirBlueprint

_bp = fossirBlueprint('attachments',
                      __name__,
                      template_folder='templates',
                      virtual_template_folder='attachments')


@memoize
def _dispatch(event_rh, category_rh):
    event_view = make_view_func(event_rh)
    categ_view = make_view_func(category_rh)

    def view_func(**kwargs):
        return categ_view(
            **kwargs) if kwargs['object_type'] == 'category' else event_view(
                **kwargs)

    return view_func
Exemple #14
0
from __future__ import unicode_literals

from fossir.modules.announcement.controllers import RHAnnouncement
from fossir.web.flask.wrappers import fossirBlueprint

_bp = fossirBlueprint('announcement',
                      __name__,
                      template_folder='templates',
                      virtual_template_folder='announcement')

_bp.add_url_rule('/admin/announcement',
                 'manage',
                 RHAnnouncement,
                 methods=('GET', 'POST'))
from __future__ import unicode_literals

from fossir.modules.events.persons.controllers import (
    RHEditEventPerson, RHEmailEventPersons, RHGrantModificationRights,
    RHGrantSubmissionRights, RHPersonsList, RHRevokeSubmissionRights)
from fossir.web.flask.wrappers import fossirBlueprint

_bp = fossirBlueprint('persons',
                      __name__,
                      template_folder='templates',
                      virtual_template_folder='events/persons',
                      url_prefix='/event/<confId>/manage')

_bp.add_url_rule('/persons/', 'person_list', RHPersonsList)
_bp.add_url_rule('/persons/email',
                 'email_event_persons',
                 RHEmailEventPersons,
                 methods=('POST', ))
_bp.add_url_rule('/persons/grant-submission',
                 'grant_submission_rights',
                 RHGrantSubmissionRights,
                 methods=('POST', ))
_bp.add_url_rule('/persons/grant-modification',
                 'grant_modification_rights',
                 RHGrantModificationRights,
                 methods=('POST', ))
_bp.add_url_rule('/persons/revoke-submission',
                 'revoke_submission_rights',
                 RHRevokeSubmissionRights,
                 methods=('POST', ))
Exemple #16
0
                                                                                RHEditSurveySection, RHEditSurveyText,
                                                                                RHExportSurveyQuestionnaire,
                                                                                RHImportSurveyQuestionnaire,
                                                                                RHManageSurveyQuestionnaire,
                                                                                RHSortSurveyItems)
from fossir.modules.events.surveys.controllers.management.results import (RHDeleteSubmissions, RHDisplaySubmission,
                                                                          RHExportSubmissionsCSV,
                                                                          RHExportSubmissionsExcel, RHSurveyResults)
from fossir.modules.events.surveys.controllers.management.survey import (RHCloseSurvey, RHCreateSurvey, RHDeleteSurvey,
                                                                         RHEditSurvey, RHManageSurvey, RHManageSurveys,
                                                                         RHOpenSurvey, RHScheduleSurvey,
                                                                         RHSendSurveyLinks)
from fossir.web.flask.wrappers import fossirBlueprint


_bp = fossirBlueprint('surveys', __name__, template_folder='templates', virtual_template_folder='events/surveys',
                      url_prefix='/event/<confId>', event_feature='surveys')

# survey display/submission
_bp.add_url_rule('/surveys/', 'display_survey_list', RHSurveyList)
_bp.add_url_rule('/surveys/<int:survey_id>', 'display_survey_form', RHSubmitSurvey, methods=('GET', 'POST'))
_bp.add_url_rule('/surveys/<int:survey_id>/save', 'display_save_answers', RHSaveSurveyAnswers, methods=('POST',))

# survey management
_bp.add_url_rule('/manage/surveys/', 'manage_survey_list', RHManageSurveys)
_bp.add_url_rule('/manage/surveys/create', 'create', RHCreateSurvey, methods=('GET', 'POST'))

# Single survey management
_bp.add_url_rule('/manage/surveys/<int:survey_id>/', 'manage_survey', RHManageSurvey)
_bp.add_url_rule('/manage/surveys/<int:survey_id>/results', 'survey_results', RHSurveyResults)
_bp.add_url_rule('/manage/surveys/<int:survey_id>/delete', 'delete_survey', RHDeleteSurvey, methods=('POST',))
_bp.add_url_rule('/manage/surveys/<int:survey_id>/edit', 'edit_survey', RHEditSurvey, methods=('GET', 'POST'))
Exemple #17
0
from __future__ import unicode_literals

from fossir.core.celery.controllers import RHCeleryTasks
from fossir.web.flask.wrappers import fossirBlueprint

_bp = fossirBlueprint('celery',
                      __name__,
                      url_prefix='/admin/tasks',
                      template_folder='templates',
                      virtual_template_folder='celery')

_bp.add_url_rule('/', 'index', RHCeleryTasks)
from __future__ import unicode_literals

from fossir.modules.designer.controllers import (
    RHAddCategoryTemplate, RHAddEventTemplate, RHCloneCategoryTemplate,
    RHCloneEventTemplate, RHDeleteDesignerTemplate, RHDownloadTemplateImage,
    RHEditDesignerTemplate, RHGetTemplateData, RHListBacksideTemplates,
    RHListCategoryTemplates, RHListEventTemplates,
    RHToggleTemplateDefaultOnCategory, RHUploadBackgroundImage)
from fossir.util.caching import memoize
from fossir.web.flask.util import make_view_func
from fossir.web.flask.wrappers import fossirBlueprint

_bp = fossirBlueprint('designer',
                      __name__,
                      template_folder='templates',
                      virtual_template_folder='designer')


@memoize
def _dispatch(event_rh, category_rh):
    event_view = make_view_func(event_rh)
    categ_view = make_view_func(category_rh)

    def view_func(**kwargs):
        return categ_view(
            **kwargs) if kwargs['object_type'] == 'category' else event_view(
                **kwargs)

    return view_func

Exemple #19
0
from __future__ import unicode_literals

from fossir.core.plugins.controllers import RHPluginDetails, RHPlugins
from fossir.web.flask.wrappers import fossirBlueprint

_bp = fossirBlueprint('plugins',
                      __name__,
                      template_folder='templates',
                      virtual_template_folder='plugins',
                      url_prefix='/admin/plugins')

_bp.add_url_rule('/', 'index', RHPlugins)
_bp.add_url_rule('/<plugin>/',
                 'details',
                 RHPluginDetails,
                 methods=('GET', 'POST'))
Exemple #20
0
from __future__ import unicode_literals

from fossir.modules.events.payment.controllers import (
    RHPaymentAdminPluginSettings, RHPaymentAdminSettings, RHPaymentCheckout,
    RHPaymentConditions, RHPaymentForm, RHPaymentPluginEdit, RHPaymentSettings,
    RHPaymentSettingsEdit)
from fossir.web.flask.wrappers import fossirBlueprint

_bp = fossirBlueprint('payment',
                      __name__,
                      template_folder='templates',
                      virtual_template_folder='events/payment')

# Admin
_bp.add_url_rule('/admin/payment/',
                 'admin_settings',
                 RHPaymentAdminSettings,
                 methods=('GET', 'POST'))
_bp.add_url_rule('/admin/payment/<plugin>/',
                 'admin_plugin_settings',
                 RHPaymentAdminPluginSettings,
                 methods=('GET', 'POST'))

# Event management
_bp.add_url_rule('/event/<confId>/manage/payments/', 'event_settings',
                 RHPaymentSettings)
_bp.add_url_rule('/event/<confId>/manage/payments/settings',
                 'event_settings_edit',
                 RHPaymentSettingsEdit,
                 methods=('GET', 'POST'))
_bp.add_url_rule('/event/<confId>/manage/payments/method/<method>',

from __future__ import unicode_literals

from flask import current_app, g

from fossir.modules.events.papers.controllers import display, management, paper, templates
from fossir.web.flask.wrappers import fossirBlueprint


_bp = fossirBlueprint('papers', __name__, url_prefix='/event/<confId>', template_folder='templates',
                      virtual_template_folder='events/papers')


# Display pages
_bp.add_url_rule('/papers/', 'call_for_papers', display.RHCallForPapers)
_bp.add_url_rule('/papers/select-contribution', 'select_contribution', display.RHSelectContribution)
_bp.add_url_rule('/papers/<int:contrib_id>/', 'paper_timeline', display.RHPaperTimeline)
_bp.add_url_rule('/papers/<int:contrib_id>/files/<int:file_id>-<filename>', 'download_file',
                 display.RHDownloadPaperFile)
_bp.add_url_rule('/papers/templates/<int:template_id>-<filename>', 'download_template',
                 templates.RHDownloadPaperTemplate)
_bp.add_url_rule('/contributions/<int:contrib_id>/paper/submit', 'submit_revision',
                 display.RHSubmitPaper, methods=('GET', 'POST'))
# Paper reviews/judgments
_bp.add_url_rule('/papers/<int:contrib_id>/review/type/<review_type>', 'submit_review',
                 display.RHSubmitPaperReview, methods=('GET', 'POST'))
_bp.add_url_rule('/papers/<int:contrib_id>/revision/<int:revision_id>/review/<int:review_id>/edit', 'edit_review',
                 display.RHEditPaperReview, methods=('GET', 'POST'))
_bp.add_url_rule('/papers/<int:contrib_id>/judgment', 'judge_paper',
                 display.RHJudgePaper, methods=('POST',))
Exemple #22
0
from __future__ import unicode_literals

from flask import request

from fossir.modules.auth.controllers import (RHAccounts, RHAdminImpersonate,
                                             RHLinkAccount, RHLogin,
                                             RHLoginForm, RHLogout, RHRegister,
                                             RHRemoveAccount, RHResetPassword)
from fossir.web.flask.util import make_compat_redirect_func
from fossir.web.flask.wrappers import fossirBlueprint

_bp = fossirBlueprint('auth',
                      __name__,
                      template_folder='templates',
                      virtual_template_folder='auth')

_bp.add_url_rule('/login/', 'login', RHLogin, methods=('GET', 'POST'))
_bp.add_url_rule('/login/<provider>/', 'login', RHLogin)
_bp.add_url_rule('/login/<provider>/form', 'login_form', RHLoginForm)
_bp.add_url_rule('/login/<provider>/link-account',
                 'link_account',
                 RHLinkAccount,
                 methods=('GET', 'POST'))
_bp.add_url_rule('/logout/', 'logout', RHLogout)

_bp.add_url_rule('/register/',
                 'register',
                 RHRegister,
                 methods=('GET', 'POST'),
                 defaults={'provider': None})
_bp.add_url_rule('/register/<provider>',

from __future__ import unicode_literals

from fossir.modules.events.static.controllers import RHStaticSiteBuild, RHStaticSiteDownload, RHStaticSiteList
from fossir.web.flask.wrappers import fossirBlueprint


_bp = fossirBlueprint('static_site', __name__, template_folder='templates', virtual_template_folder='events/static',
                      url_prefix='/event/<confId>/manage/offline-copy')

# Event management
_bp.add_url_rule('/', 'list', RHStaticSiteList)
_bp.add_url_rule('/<int:id>.zip', 'download', RHStaticSiteDownload)
_bp.add_url_rule('/build', 'build', RHStaticSiteBuild, methods=('POST',))
from fossir.modules.rb.controllers.admin import index as index_handler
from fossir.modules.rb.controllers.admin import locations as location_handlers
from fossir.modules.rb.controllers.admin import rooms as room_handlers
from fossir.web.flask.wrappers import fossirBlueprint

_bp = fossirBlueprint('rooms_admin',
                      __name__,
                      template_folder='../templates',
                      virtual_template_folder='rb',
                      url_prefix='/admin/rooms')

# Main settings
_bp.add_url_rule('/config/',
                 'settings',
                 index_handler.RHRoomBookingSettings,
                 methods=('GET', 'POST'))

# Locations
_bp.add_url_rule('/locations/', 'roomBooking-admin',
                 location_handlers.RHRoomBookingAdmin)

_bp.add_url_rule('/locations/delete',
                 'roomBooking-deleteLocation',
                 location_handlers.RHRoomBookingDeleteLocation,
                 methods=('POST', ))

_bp.add_url_rule('/locations/add',
                 'roomBooking-saveLocation',
                 location_handlers.RHRoomBookingSaveLocation,
                 methods=('POST', ))
Exemple #25
0
from flask import Response, current_app, json, redirect, render_template, send_from_directory, session
from werkzeug.exceptions import NotFound

from fossir.core.config import config
from fossir.core.plugins import plugin_engine
from fossir.modules.events.layout import theme_settings
from fossir.modules.users.util import serialize_user
from fossir.util.i18n import po_to_json
from fossir.util.string import crc32
from fossir.web.assets.util import get_asset_path
from fossir.web.assets.vars_js import generate_global_file
from fossir.web.flask.util import send_file, url_for
from fossir.web.flask.wrappers import fossirBlueprint

assets_blueprint = fossirBlueprint('assets', __name__, url_prefix='/assets')
assets_blueprint.add_url_rule('!/css/<path:filename>', 'css', build_only=True)
assets_blueprint.add_url_rule('!/images/<path:filename>',
                              'image',
                              build_only=True)
assets_blueprint.add_url_rule('!/js/<path:filename>', 'js', build_only=True)


@assets_blueprint.route('/js-vars/global.js')
def js_vars_global():
    """
    Provides a JS file with global definitions (all users)
    Useful for server-wide config options, URLs, etc...
    """
    cache_file = os.path.join(config.CACHE_DIR,
                              'assets_global_{}.js'.format(config.hash))
from __future__ import unicode_literals

from flask import request

from fossir.modules.users.api import fetch_authenticated_user
from fossir.modules.users.controllers import (RHAcceptRegistrationRequest, RHAdmins, RHPersonalData,
                                              RHRegistrationRequestList, RHRejectRegistrationRequest, RHUserDashboard,
                                              RHUserEmails, RHUserEmailsDelete, RHUserEmailsSetPrimary,
                                              RHUserEmailsVerify, RHUserFavorites, RHUserFavoritesCategoryAPI,
                                              RHUserFavoritesUserRemove, RHUserFavoritesUsersAdd, RHUserPreferences,
                                              RHUsersAdmin, RHUsersAdminCreate, RHUsersAdminMerge,
                                              RHUsersAdminMergeCheck, RHUsersAdminSettings, RHUserSuggestionsRemove)
from fossir.web.flask.wrappers import fossirBlueprint


_bp = fossirBlueprint('users', __name__, template_folder='templates', virtual_template_folder='users',
                      url_prefix='/user')

# Admins
_bp.add_url_rule('!/admin/admins', 'admins', RHAdmins, methods=('GET', 'POST'))

# User management
_bp.add_url_rule('!/admin/users/', 'users_admin', RHUsersAdmin, methods=('GET', 'POST'))
_bp.add_url_rule('!/admin/users/settings', 'users_admin_settings', RHUsersAdminSettings, methods=('GET', 'POST'))
_bp.add_url_rule('!/admin/users/create/', 'users_create', RHUsersAdminCreate, methods=('GET', 'POST'))
_bp.add_url_rule('!/admin/users/merge/', 'users_merge', RHUsersAdminMerge, methods=('GET', 'POST'))
_bp.add_url_rule('!/admin/users/merge/check/', 'users_merge_check', RHUsersAdminMergeCheck)
_bp.add_url_rule('!/admin/users/registration-requests/', 'registration_request_list', RHRegistrationRequestList)
_bp.add_url_rule('!/admin/users/registration-requests/<int:request_id>/accept', 'accept_registration_request',
                 RHAcceptRegistrationRequest, methods=('POST',))
_bp.add_url_rule('!/admin/users/registration-requests/<int:request_id>/reject', 'reject_registration_request',
                 RHRejectRegistrationRequest, methods=('POST',))
import re

from flask import current_app, request, send_from_directory, session
from itsdangerous import BadData
from sqlalchemy.exc import DatabaseError
from werkzeug.exceptions import BadRequest, BadRequestKeyError, Forbidden, HTTPException, NotFound

from fossir.core.errors import fossirError, get_error_description
from fossir.core.logger import Logger, sentry_log_exception
from fossir.modules.auth.util import redirect_to_login
from fossir.util.i18n import _
from fossir.util.string import to_unicode
from fossir.web.errors import render_error
from fossir.web.flask.wrappers import fossirBlueprint

errors_bp = fossirBlueprint('errors', __name__)


@errors_bp.app_errorhandler(NotFound)
def handle_notfound(exc):
    try:
        if re.search(r'\.py(?:/\S+)?$', request.path):
            # While not dangerous per se, we never serve *.py files as static
            raise NotFound
        htdocs = os.path.join(current_app.root_path, 'htdocs')
        try:
            return send_from_directory(htdocs,
                                       request.path[1:],
                                       conditional=True)
        except (UnicodeEncodeError, BadRequest):
            raise NotFound
Exemple #28
0
from __future__ import unicode_literals

from fossir.modules.events.controllers.admin import (RHCreateReferenceType,
                                                     RHDeleteReferenceType,
                                                     RHEditReferenceType,
                                                     RHReferenceTypes)
from fossir.modules.events.controllers.creation import RHCreateEvent
from fossir.modules.events.controllers.display import RHEventAccessKey, RHEventMarcXML, RHExportEventICAL
from fossir.modules.events.controllers.entry import event_or_shorturl
from fossir.web.flask.util import make_compat_redirect_func, redirect_view
from fossir.web.flask.wrappers import fossirBlueprint

_bp = fossirBlueprint('events',
                      __name__,
                      template_folder='templates',
                      virtual_template_folder='events')

# Admin
_bp.add_url_rule('/admin/external-id-types/',
                 'reference_types',
                 RHReferenceTypes,
                 methods=('GET', 'POST'))
_bp.add_url_rule('/admin/external-id-types/create',
                 'create_reference_type',
                 RHCreateReferenceType,
                 methods=('GET', 'POST'))

# Single reference type
_bp.add_url_rule('/admin/external-id-types/<int:reference_type_id>/edit',
                 'update_reference_type',
                 RHEditReferenceType,
from fossir.modules.events.sessions.controllers.compat import compat_session
from fossir.modules.events.sessions.controllers.display import (RHDisplaySession, RHDisplaySessionList,
                                                                RHExportSessionTimetableToPDF, RHExportSessionToICAL)
from fossir.modules.events.sessions.controllers.management.sessions import (RHCreateSession, RHDeleteSessions,
                                                                            RHExportSessionsCSV, RHExportSessionsExcel,
                                                                            RHExportSessionsPDF, RHManageSessionBlock,
                                                                            RHModifySession, RHSessionACL,
                                                                            RHSessionACLMessage, RHSessionBlocks,
                                                                            RHSessionPersonList, RHSessionProtection,
                                                                            RHSessionREST, RHSessionsList)
from fossir.web.flask.util import make_compat_redirect_func
from fossir.web.flask.wrappers import fossirBlueprint


_bp = fossirBlueprint('sessions', __name__, template_folder='templates', virtual_template_folder='events/sessions',
                      url_prefix='/event/<confId>')

_bp.add_url_rule('/manage/sessions/', 'session_list', RHSessionsList)
_bp.add_url_rule('/manage/sessions/create', 'create_session', RHCreateSession, methods=('GET', 'POST'))
_bp.add_url_rule('/manage/sessions/delete', 'delete_sessions', RHDeleteSessions, methods=('POST',))
_bp.add_url_rule('/manage/sessions/sessions.csv', 'export_csv', RHExportSessionsCSV, methods=('POST',))
_bp.add_url_rule('/manage/sessions/sessions.xlsx', 'export_excel', RHExportSessionsExcel, methods=('POST',))
_bp.add_url_rule('/manage/sessions/sessions.pdf', 'export_pdf', RHExportSessionsPDF, methods=('POST',))
_bp.add_url_rule('/manage/sessions/<int:session_id>', 'session_rest', RHSessionREST, methods=('PATCH', 'DELETE'))
_bp.add_url_rule('/manage/sessions/<int:session_id>/blocks', 'session_blocks', RHSessionBlocks)
_bp.add_url_rule('/manage/sessions/<int:session_id>/modify', 'modify_session', RHModifySession, methods=('GET', 'POST'))
_bp.add_url_rule('/manage/sessions/person-list/', 'person_list', RHSessionPersonList, methods=('POST',))
_bp.add_url_rule('/manage/sessions/<int:session_id>/protection', 'session_protection', RHSessionProtection,
                 methods=('GET', 'POST'))
_bp.add_url_rule('/manage/sessions/<int:session_id>/blocks/<int:block_id>', 'manage_session_block',
                 RHManageSessionBlock, methods=('GET', 'POST'))
Exemple #30
0
from __future__ import unicode_literals

from fossir.modules.events.registration import api
from fossir.modules.events.registration.controllers import display
from fossir.modules.events.registration.controllers.compat import compat_registration
from fossir.modules.events.registration.controllers.management import (
    fields, invitations, regforms, reglists, sections, tickets)
from fossir.web.flask.util import make_compat_redirect_func
from fossir.web.flask.wrappers import fossirBlueprint

_bp = fossirBlueprint('event_registration',
                      __name__,
                      url_prefix='/event/<confId>',
                      template_folder='templates',
                      virtual_template_folder='events/registration',
                      event_feature='registration')

# Management
_bp.add_url_rule('/manage/registration/', 'manage_regform_list',
                 regforms.RHManageRegistrationForms)
_bp.add_url_rule('/manage/registration/create',
                 'create_regform',
                 regforms.RHRegistrationFormCreate,
                 methods=('GET', 'POST'))
_bp.add_url_rule('/manage/registration/display',
                 'manage_regforms_display',
                 regforms.RHManageRegistrationFormsDisplay,
                 methods=('GET', 'POST'))
_bp.add_url_rule('/manage/registration/managers',
                 'manage_registration_managers',
                 regforms.RHManageRegistrationManagers,