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(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

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

Handles GET requests. It should be redefined by subclasses.

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

Handles POST requests. It should be redefined by subclasses.

property client: Client

Returns the INGInious client

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

Interfaces INGInious pages with Flask views for GET requests.

property is_lti_page

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

property logger: Logger

Logger

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(*args, **kwargs)[source]

Interfaces INGInious pages with Flask views for POST requests.

property submission_manager: WebAppSubmissionManager

Returns the submission manager singleton

property user_manager: UserManager

Returns the user manager singleton

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

Bases: INGIniousPage

GET(pageid)[source]

Handles GET requests. It should be redefined by subclasses.

POST(pageid)[source]

Handles POST requests. It should be redefined by subclasses.

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.