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'))
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', ))
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)
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>',
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'))
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)
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=(
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
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', ))
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'))
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
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'))
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',))
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', ))
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
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'))
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,