inginious.frontend.pages package

Frontend pages (controllers)

Subpackages

Submodules

inginious.frontend.pages.group module

Index page

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

Bases: INGIniousAuthPage

Group page

GET_AUTH(courseid)[source]

GET request

methods: t.ClassVar[t.Collection[str] | None] = {'GET', 'POST'}

The methods this view is registered for. Uses the same default (["GET", "HEAD", "OPTIONS"]) as route and add_url_rule by default.

inginious.frontend.pages.course module

Course page

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

Bases: INGIniousAuthPage

Course page

GET_AUTH(courseid)[source]

GET request

POST_AUTH(courseid)[source]

POST request

get_course(courseid)[source]

Return the course

methods: t.ClassVar[t.Collection[str] | None] = {'GET', 'POST'}

The methods this view is registered for. Uses the same default (["GET", "HEAD", "OPTIONS"]) as route and add_url_rule by default.

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: INGIniousStaticPage

Index page

GET()[source]

Display main course list page

POST()[source]

Display main course list page

methods: t.ClassVar[t.Collection[str] | None] = {'GET', 'POST'}

The methods this view is registered for. Uses the same default (["GET", "HEAD", "OPTIONS"]) as route and add_url_rule by default.

inginious.frontend.pages.maintenance module

Maintenance page

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

Bases: MethodView

Maintenance page

get(path=None)[source]

GET request

methods: t.ClassVar[t.Collection[str] | None] = {'GET', 'POST'}

The methods this view is registered for. Uses the same default (["GET", "HEAD", "OPTIONS"]) as route and add_url_rule by default.

post(path=None)[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: INGIniousAuthPage

GET_AUTH(courseid, taskid)[source]
POST_AUTH(courseid, taskid)[source]
methods: t.ClassVar[t.Collection[str] | None] = {'GET', 'POST'}

The methods this view is registered for. Uses the same default (["GET", "HEAD", "OPTIONS"]) as route and add_url_rule by default.

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: 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: t.ClassVar[t.Collection[str] | None] = {'GET', 'POST'}

The methods this view is registered for. Uses the same default (["GET", "HEAD", "OPTIONS"]) as route and add_url_rule by default.

inginious.frontend.pages.utils module

Some utils for all the pages

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

Bases: INGIniousAuthPage

Augmented version of INGIniousAuthPage that checks if user is administrator (superadmin).

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

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

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

Checks if user is superadmin and calls POST_AUTH. Otherwise, returns the forbidden template.

methods: t.ClassVar[t.Collection[str] | None] = {'GET', 'POST'}

The methods this view is registered for. Uses the same default (["GET", "HEAD", "OPTIONS"]) as route and add_url_rule by default.

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

Bases: 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: t.ClassVar[t.Collection[str] | None] = {'GET', 'POST'}

The methods this view is registered for. Uses the same default (["GET", "HEAD", "OPTIONS"]) as route and add_url_rule by default.

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: 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: str

Backup directory

property client: Client

Returns the INGInious client

property course_factory: TaskFactory

Returns the task factory singleton

property database: Database

Returns the database singleton

property default_allowed_file_extensions: List[str]

List of allowed file extensions

property default_max_file_size: int

Default maximum file size for upload

property environment_types: Dict[str, FrontendEnvType]

Available environment types

property environments: Dict[str, List[str]]

Available environments

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

Returns the GridFS singleton

property is_lti_page

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

property logger: Logger

Logger

property lti_outcome_manager: LTIOutcomeManager

Returns the LTIOutcomeManager singleton

methods: t.ClassVar[t.Collection[str] | None] = {'GET', 'POST'}

The methods this view is registered for. Uses the same default (["GET", "HEAD", "OPTIONS"]) as route and add_url_rule by default.

property plugin_manager: PluginManager

Returns the plugin manager singleton

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

Returns the submission manager singleton

property task_factory: TaskFactory

Returns the task factory singleton

property taskset_factory: TasksetFactory

Returns the course factory singleton

property template_helper: TemplateHelper

Returns the Template Helper singleton

property user_manager: UserManager

Returns the user manager singleton

property webdav_host: str

True if webdav is available

Returns the link to the web terminal

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

Bases: INGIniousPage

GET(pageid)[source]
POST(pageid)[source]
cache = {}
methods: t.ClassVar[t.Collection[str] | None] = {'GET', 'POST'}

The methods this view is registered for. Uses the same default (["GET", "HEAD", "OPTIONS"]) as route and add_url_rule by default.

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

Bases: INGIniousAuthPage

GET_AUTH(*args, **kwargs)[source]
POST_AUTH(*args, **kwargs)[source]
methods: t.ClassVar[t.Collection[str] | None] = {'GET', 'POST'}

The methods this view is registered for. Uses the same default (["GET", "HEAD", "OPTIONS"]) as route and add_url_rule by default.

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

Bases: 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: t.ClassVar[t.Collection[str] | None] = {'GET', 'POST'}

The methods this view is registered for. Uses the same default (["GET", "HEAD", "OPTIONS"]) as route and add_url_rule by default.

inginious.frontend.pages.utils.generate_user_selection_box(user_manager, render_func, current_users, name, id, placeholder=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, name, id)”. You must ignore the first argument (template_helper) in the templates.

Parameters:
  • user_manager (UserManager) – UserManager instance

  • render_func – template generator

  • current_users (List[str]) – a list of usernames currently selected

  • course_id – the course id

  • name (str) – HTML name given to the box

  • id (str) – 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)[source]

Registers utils in the template helper