The Django side¶
It is the app where all user accounts are managed (subscription, edit, etc..).
The most notable fact is that a plateform have multiple kind of user :
- Structure: This is the main entity for a plateform because this the structures that creates workbook and fill them with datas;
- Accompanist: This kind of user exists to assist Structures when filling their datas and audit their workbooks to give them comments on their financial viability. There are at least two different types of accompanist each of them for an audit level type. Only an accompanist level 2 can validate a workbook;
- Admin: That can manage objects through apps. The common superuser admin can manage all objects. And there is other admins that can only manage objects from which they have permissions. Note that we are talking about permission app level and not permission object level.
A plateform is restricted to authenticated users only and so anonymous users can only have access to homepage and some public documents.
A structure has specific accompanist that are assigned to them during their registration process.
The real usable workbooks are only from the Django app where matrix manager is extended to retrieve Cell datas from their data models in a database. A structure can edit their workbook’s cell datas stored in the database that will be retrieved when displaying a workbook sheet.
The API manager is extend on multiple steps, firstly to access to data cells from their Django data models then another one that extend it to automatically find the matrix from workbook parameters in their Django model using a memory cache (to avoid queries for cell that have allready been retrieved from database) and lastly a final extend to have a form interface when editing data cells from user inputs.
A structure create a workbook choosing its main financial year and its kind (for 3years, 5years or Multi-activities) then it is created with an automatical name from the structure name concatenated with the main financial year. From the start, the workbook is filled with default value from the data cells matrix.
The working process is cutted in two levels, during the first level the structure fill its data and a first level accompanist audit the datas then it can stop the process from where the workbook will be closed to any progress and changes. Or can validate it to go for the second level.
On second level, another accompanist audit the data but the structure can not fill or change data. Like on first level, this accompanist can do a definitive close or a definitive validation.
During this process structure cannot create another workbook, all its workbook must have a definitive close or validation to create a new one.
Accompanist can emit an invoice for their level if it has been validated.
At any time, users can export Workbook to an Excel file, even for the closed ones. The export is done with creating an XML file containing value and giving it to a Java app that fill these data into the Workbook Excel file sources (XSL). The Java app is named xml2xsl and contained in the plateform, it is only maintained by Alain Perry from France active. The technical details of this app is out of scope of this document.
A simple Forum app that have categories that contains threads that contains message. Message can contain an uploaded file and they are formated from a simple wiki syntax.
This app does not have any link with the Workbooks and some few usage of the accounts app. The forum is restricted to admin and accompanists, structure don’t have access to the forum.