inginious.frontend.pages package

Frontend pages (controllers)

Submodules

inginious.frontend.pages.group module

Index page

class inginious.frontend.pages.group.GroupPage[source]

Bases: inginious.frontend.pages.utils.INGIniousAuthPage

Group page

GET_AUTH(courseid)[source]

GET request

methods: Optional[List[str]] = {'GET', 'POST'}

A list of methods this view can handle.

inginious.frontend.pages.course module

Course page

class inginious.frontend.pages.course.CoursePage[source]

Bases: inginious.frontend.pages.utils.INGIniousAuthPage

Course page

GET_AUTH(courseid)[source]

GET request

POST_AUTH(courseid)[source]

POST request

get_course(courseid)[source]

Return the course

methods: Optional[List[str]] = {'GET', 'POST'}

A list of methods this view can handle.

preview_allowed(courseid)[source]

If this function returns True, the auth check is disabled. Override this function with a custom check if needed.

show_page(course)[source]

Prepares and shows the course page

inginious.frontend.pages.course.handle_course_unavailable(app_homepath, template_helper, user_manager, course)[source]

Displays the course_unavailable page or the course registration page

inginious.frontend.pages.index module

Index page

class inginious.frontend.pages.index.IndexPage[source]

Bases: inginious.frontend.pages.utils.INGIniousStaticPage

Index page

GET()[source]

Display main course list page

POST()[source]

Display main course list page

methods: Optional[List[str]] = {'GET', 'POST'}

A list of methods this view can handle.

inginious.frontend.pages.maintenance module

Maintenance page

class inginious.frontend.pages.maintenance.MaintenancePage[source]

Bases: flask.views.MethodView

Maintenance page

get(path)[source]

GET request

methods: Optional[List[str]] = {'GET', 'POST'}

A list of methods this view can handle.

post(path)[source]

POST request

inginious.frontend.pages.tasks module

Task page

class inginious.frontend.pages.tasks.BaseTaskPage(calling_page)[source]

Bases: object

Display a task (and allow to reload old submission/file uploaded during a submission)

GET(courseid, taskid, is_LTI)[source]

GET request

POST(courseid, taskid, isLTI)[source]

POST a new submission

preview_allowed(courseid, taskid)[source]
submission_to_json(task, data, debug, reloading=False, replace=False, tags=None)[source]

Converts a submission to json (keeps only needed fields)

class inginious.frontend.pages.tasks.TaskPage[source]

Bases: inginious.frontend.pages.utils.INGIniousAuthPage

GET_AUTH(courseid, taskid)[source]
POST_AUTH(courseid, taskid)[source]
methods: Optional[List[str]] = {'GET', 'POST'}

A list of methods this view can handle.

preview_allowed(courseid, taskid)[source]

If this function returns True, the auth check is disabled. Override this function with a custom check if needed.

class inginious.frontend.pages.tasks.TaskPageStaticDownload[source]

Bases: inginious.frontend.pages.utils.INGIniousPage

Allow to download files stored in the task folder

GET(courseid, taskid, path)[source]

GET request

is_lti_page()[source]

True if the current page allows LTI sessions. False else.

methods: Optional[List[str]] = {'GET', 'POST'}

A list of methods this view can handle.

inginious.frontend.pages.utils module

Some utils for all the pages

class inginious.frontend.pages.utils.INGIniousAuthPage[source]

Bases: inginious.frontend.pages.utils.INGIniousPage

Augmented version of INGIniousPage that checks if user is authenticated.

GET(*args, **kwargs)[source]

Checks if user is authenticated and calls GET_AUTH or performs logout. Otherwise, returns the login template.

GET_AUTH(*args, **kwargs)[source]
POST(*args, **kwargs)[source]

Checks if user is authenticated and calls POST_AUTH or performs login and calls GET_AUTH. Otherwise, returns the login template.

POST_AUTH(*args, **kwargs)[source]
methods: Optional[List[str]] = {'GET', 'POST'}

A list of methods this view can handle.

preview_allowed(*args, **kwargs)[source]

If this function returns True, the auth check is disabled. Override this function with a custom check if needed.

class inginious.frontend.pages.utils.INGIniousPage[source]

Bases: flask.views.MethodView

A base for all the pages of the INGInious webapp. Contains references to the PluginManager, the CourseFactory, and the SubmissionManager

property app

Returns the web application singleton

property backup_dir

Backup directory

property client

Returns the INGInious client

property course_factory

Returns the course factory singleton

property database

Returns the database singleton

property default_allowed_file_extensions

List of allowed file extensions

property default_max_file_size

Default maximum file size for upload

property environment_types

Available environment types

property environments

Available environments

get(sessionid, *args, **kwargs)[source]
property gridfs

Returns the GridFS singleton

property is_lti_page

True if the current page allows LTI sessions. False else.

property logger

Logger

property lti_outcome_manager

Returns the LTIOutcomeManager singleton

methods: Optional[List[str]] = {'GET', 'POST'}

A list of methods this view can handle.

property plugin_manager

Returns the plugin manager singleton

post(sessionid, *args, **kwargs)[source]
property submission_manager

Returns the submission manager singleton

property task_factory

Returns the task factory singleton

property template_helper

Returns the Template Helper singleton

property user_manager

Returns the user manager singleton

property webdav_host

True if webdav is available

Returns the link to the web terminal

class inginious.frontend.pages.utils.INGIniousStaticPage[source]

Bases: inginious.frontend.pages.utils.INGIniousPage

GET(pageid)[source]
POST(pageid)[source]
cache = {}
methods: Optional[List[str]] = {'GET', 'POST'}

A list of methods this view can handle.

show_page(page)[source]
class inginious.frontend.pages.utils.LogOutPage[source]

Bases: inginious.frontend.pages.utils.INGIniousAuthPage

GET_AUTH(*args, **kwargs)[source]
POST_AUTH(*args, **kwargs)[source]
methods: Optional[List[str]] = {'GET', 'POST'}

A list of methods this view can handle.

class inginious.frontend.pages.utils.SignInPage[source]

Bases: inginious.frontend.pages.utils.INGIniousAuthPage

GET()[source]

Checks if user is authenticated and calls GET_AUTH or performs logout. Otherwise, returns the login template.

GET_AUTH(*args, **kwargs)[source]
POST_AUTH(*args, **kwargs)[source]
methods: Optional[List[str]] = {'GET', 'POST'}

A list of methods this view can handle.

inginious.frontend.pages.utils.generate_user_selection_box(user_manager: inginious.frontend.user_manager.UserManager, render_func, current_users: List[str], course_id: str, name: str, id: str, placeholder: Optional[str] = None, single=False)[source]

Returns the HTML for a user selection box. The user using the box must have admin/tutors rights on the course with id course_id.

The box will return, when submitted using a form, a list of usernames separated by commas, under the given name.

NB: this function is available in the templates directly as “$user_selection_box(current_users, course_id, name, id)”. You must ignore the first argument (template_helper) in the templates.

Parameters
  • user_manager – UserManager instance

  • render_func – template generator

  • current_users – a list of usernames currently selected

  • course_id – the course id

  • name – HTML name given to the box

  • id – HTML id given to the box

  • single – False for multiple user selection, True for single user selection

Returns

HTML code for the box

inginious.frontend.pages.utils.register_utils(database, user_manager, template_helper: inginious.frontend.template_helper.TemplateHelper)[source]

Registers utils in the template helper