Skip to content
Dutcher edited this page Mar 3, 2023 · 3 revisions

Welcome to the Squire wiki

This wiki will some day contain all necessary documentation for maintaining and expending the Squire code. But we are not yet there. Give us time please. We spend a lot of time in writing all the code.

Squire fundamentals

Squire uses Django as the framework. Please check out the Django documentation to understand the fundamentals on how html pages are created from data on the database.

Squire modules

Squire consists of a stack of modules that have been developed over time.

Utils

Utils contains functionality that continues on the django project without being specefied to this project. This includes additional testing tools, several view mixins and the root code for ViewCollectives.

Core

Core contains core functionality for Squire. This includes setting up the dynanmic registry, some login logic, error handling, Martor Markdown logic and the root page design of the website.

Membership File

Contains all Member related logic. It contains the necessary Member model as well as MemberYear and MemberLog (all Member related database changes are logged). It also contains the Middleware that allows request.member to be called in code to retrieve the member. The RequiresMembership mixin can also be found here.

Committees

Contains AssociationGroup related logic, including implementing a CommitteeCollective. AssociationGroups are applicable for Committees, Orders, Boards and Roleplaying Campaigns.

NextcloudIntegration

Acts as an interface for files stored on the Nextcloud, limiting who can download what files.

ActivityCalendar

Contains all handling for activities and calendar logic within the association. Also links activities to NextcloudFolder instances

Inventory

Contains logic for an inventory system within the Knights where items can be added and marked by owned by a member or associationgroup (i.e. the association). Uses CommitteeCollective logic to allow AssociationGroups to control their own items.

Boardgames

Extends Inventory logic with a Boardgame catalogue viewable by members.

Roleplaying

Extends the Inventory logic with Roleplaying Item catalogue connected to trpg systems viewable by members. Will also contain logic for roleplaying campaigns in the future

Achievements

An old module that needs a full revision. Allows users (not members) to obtain achievements for feats in the association.

User Interaction

Contains some final front-end logic that encapsulates multiple to all of aforementioned modules. Also initiates AccountCollective for account related settings by the user.