Templates¶
AMY uses Django templating system and Django templating engine.
Templates in AMY are kept in amy/templates/
directory, conveniently grouped by
application in subdirectories (comments
- from extcomments
, communityroles
,
consents
, dashboard
, forms
- from extforms
, fiscal
, recruitment
, reports
,
requests
- from extrequests
, trainings
, workshops
). There are also directories
not related to internal AMY applications:
account
- contains templates related to login/logout/password reset pages,bootstrap4
- contains templates and/or includes for widgets used by Django Crispy Forms,includes
- contains a bunch of reusable "components" - Django HTML templates,mailing
- contains templates used to generate emails automatically sent when users submit external forms,markdownx
- contains some overridden templates for django-markdown package.
Usually, unsless the template is an includable, one template corresponds to one view, that's why they are grouped in per-application directories.
The rest of the files stored directly in amy/templates/
directory are base templates.
Here's a description of them, which almost all the other templates inherit from.
Base templates¶
All templates use fluid container from Bootstrap 4.
There are multiple types of views in AMY:
- wide (e.g. 'Dashboard') --
base_nav.html
, - wide with sidebar (e.g. 'All Events') --
base_nav_sidebar.html
, - wide with two content columns (e.g.
WorkshopRequest
accept view) --base_nav_twocolumn.html
.
These templates all inherit from base.html
, which holds the HTML structure,
includes CSS styles and JS code, displays messages, footer, etc.
The base_nav.html
is nothing more but base.html
extended with a navigation.
Navigation changes depending on user - one navigation bar
(navigation.html
) exists for admin users, a different one
(navigation_instructor_dashboard.html
) exists for instructors/trainees.
A correct navigation bar is being included in base_nav.html
and every
instructor-enabled template (e.g. Auto Update Profile form, Upcoming Teaching
Opportunities page, etc.).
There are also these templates available at the top-level template directory:
base_forms.html
- base template for external forms (workshop request, workshop inquiry request, self-organised submission and training request),generic_form.html
- a default form used byAMYCreateView
andAMYUpdateView
(base views for creating and updating entities),generic_form_with_comments.html
- the same asgeneric_form.html
, but additionally contains a section with comments provided by extcomments application,pagination.html
- displays a neat button groups split with "..." to not show too much pages at once.
Blocks available in base template¶
Django template blocks used in base.html
template:
extrastyle
in<head>
, when you need to load some additional CSS files or embed styles right into the page,extrajs
on bottom of<body>
, for loading additional JavaScript files / codes,navbar
used in templates that include a navigation bar,main
with all the main content in case someone really needs to change it,leftcolumn
for adding a sidebar or a column (used inbase_nav_sidebar.html
),maincolumn
for changing main content column grid,logo
used in views that display AMY logo (login page, log out page, password reset, etc.) - seeaccount
in Templates,title
to display<h1>
tag with page title,content
for displaying page content.
Widgets¶
There are multiple reusable components available in amy/templates/includes
directory:
assigned_to.html
- displays whom has the entity (event, workshop request, workshop inquiry request, self-organised submission) been assigned to; displays a form to change the assignee,assignment_modal.html
- displays a modal "window" on the page; this window is used to select person assigned to specified entity (event, workshop request, workshop inquiry request, self-organised submission),assignment.html
- displays a dropdown to change filtering events assigned to specific person (user, unassigned, or no filtering),attendance_email_href.html
- renders amailto:
link with provided list of emails as recipients and predefined text in email body; used in event details view and in workshop issues report,comments.html
- displays comments and form for adding comments for a given entity,country_flag.html
- renders county name with this country's flag,curriculum.html
- displays curriculum as a Boostrap badge,event_details_table.html
- displays a table with event details,event_import_update_from_url.html
- modal for importing event details from a given URL address,instructor_profile_snapshot.html
- as name suggests, this is a snapshot of person's instructor profile used in Instructor Selection project, on instructor dashboard,instructor_role_badge.html
- small component displaying information about active or inactive instructor badge on for a person,instructor_selection_summary.html
- a summary of instructor selection for a given event; this is displayed in event's jumbo header,instructorrecruitment.html
- a representation of singleInstructorRecruitment
model instance,last_modified.html
- used bylast_modified
template tag to display audit log information (when entity was created, when it was last modified),logo.html
- AMY logo, used by user-facing external forms,merge_radio.html
- used to display HTMLradio
element in Person/Event merge views,request_host_person.html
- used to display person from the database matching the person requesting a workshop,request_institution.html
- used to display organisation from the database matching the institution of person requesting a workshop,requests_bottom_action_btns.html
- displays a group of buttons for accepting, discarding, etc. workshop requests, workshop inquiry requests, and self-organised submissions,selforganisedsubmission_details.html
- displays a table with self-organised submission details,tag.html
- displays a Boostrap badge of a tag,teaching_opportunity.html
- displays details of instructor recruitment instance used in Instructor Selection project, on instructor dashboard,template_response.html
- provides a dropdown with templates used for automatic reply to a workshop request,tracker.html
- contains Matomo tracker JavaScript code,training_progresses_inline.html
- displays person's progress in training with various training requirements,trainingrequest_details.html
- displays a table with training request details,workshopinquiry_details.html
- displays a table with workshop inquiry request details,workshoprequest_details.html
- displays a table with workshop request details.