README.md 1.98 KB
Newer Older
1
2
Debian NM Front Desk web application
====================================
Enrico Zini's avatar
Enrico Zini committed
3

Enrico Zini's avatar
Enrico Zini committed
4
5
WARNING: project moved to https://salsa.debian.org/nm-team/nm.debian.org

6
7
## Running this code on your own machine
### Dependencies
8

9
See `.gitlab-ci.yml` for an up to date list of dependencies.
Gianfranco Costamagna's avatar
Gianfranco Costamagna committed
10

11
### Configuration
Enrico Zini's avatar
Enrico Zini committed
12

13
    mkdir data # required by default settings
14
    cd nm2
Enrico Zini's avatar
Enrico Zini committed
15
16
    ln -s local_settings.py.devel local_settings.py
    edit local_settings.py as needed
Enrico Zini's avatar
Enrico Zini committed
17

18
19
### First setup
    
Gianfranco Costamagna's avatar
Gianfranco Costamagna committed
20
    ./manage.py migrate
Enrico Zini's avatar
Enrico Zini committed
21

22
### Fill in data
23
Visit https://nm.debian.org/am/db-export to download nm-mock.json; for privacy,
Enrico Zini's avatar
Enrico Zini committed
24
25
26
27
28
sensitive information are replaced with mock strings.

If you cannot login to the site, you can ask any DD to download it for you.
There is nothing secret in the file, but I am afraid of giving out convenient
email databases to anyone.
Enrico Zini's avatar
Enrico Zini committed
29

30
    ./manage.py import nm-mock.json
Enrico Zini's avatar
Enrico Zini committed
31

32
33
If you are a Front Desk member or a DAM, you can use
https://nm.debian.org/am/db-export?full for a full database export.
Enrico Zini's avatar
Enrico Zini committed
34

35
36
### Run database maintenance
    
37
    ./manage.py housekeeping
Enrico Zini's avatar
Enrico Zini committed
38

39
40
41
### Run the web server
    
    ./manage.py runserver
Enrico Zini's avatar
Enrico Zini committed
42
43


44
## Periodic updates
Enrico Zini's avatar
Enrico Zini committed
45
46
47
You need to run periodic maintenance to check/regenerate the denormalised
fields:

48
    ./manage.py housekeeping
Enrico Zini's avatar
Enrico Zini committed
49
50


51
## Development
Enrico Zini's avatar
Enrico Zini committed
52
Development targets Django 1.8, although the codebase has been created with
Enrico Zini's avatar
Enrico Zini committed
53
Django 1.2 and it still shows in some places. Feel free to cleanup.
Enrico Zini's avatar
Enrico Zini committed
54
55
56
57
58
59
60
61
62
63
64
65

Unusual things in the design:

* `backend/` has the core models. Note that `backend.models.Process` is the
  old-style workflow, and `process.model.Process` is the new style workflow.
* there is a custom permission system with a class hierarchy that starts at
  `backend.models.VisitorPermissions`, and that generates a set of permission
  strings that get tested in views and templates with things like `if
  "edit_bio" in visit_perms: …`.
* `backend.mixins.VisitorMixin` is the root of a class hierarchy of mixins used
  by most views in the site; those mixins implement the basis of resource
  instantiation and permission checking.