django-assignment-desk
is a simple Django app to store and manage weekly editorial staff assignments.
It depends on a staff list (such as the one provided by django-editorial-staff
), and returns a rich API that can be queried by any number of consumers (we're using it to feed both a read-only web interface and a chatbot).
This app uses django.contrib.postgres
; therefore _it requires a PostgreSQL database and a Python-to-Postgres adapter like psycopg2
or psycopg2-binary
to run.
More detailed documentation will be added at a later date.
-
Install this app:
pip install django-assignment-desk
-
Add six entries (four helper apps, "editorial_staff" and "assignment_desk") to your INSTALLED_APPS setting (in
settings.py
) like this:INSTALLED_APPS = [ ... 'django.contrib.humanize', ... 'bootstrap3', 'colorfield', 'rest_framework', ... 'editorial_staff', 'assignment_desk', ]
NOTE: If you already installed
django-editorial-staff
, you may have a number of these in yourINSTALLED_APPS
setting already. They only need to be listed once. -
Add (or update) the following lines to your
settings.py
file (to configure form rendering):BOOTSTRAP3 = { 'field_renderers': { 'default': 'bootstrap3.renderers.FieldRenderer', 'inline': 'bootstrap3.renderers.InlineFieldRenderer', 'immaterial': 'assignment_desk.field_renderers.ImmaterialFieldRenderer', }, }
NOTE: Again, these lines only need to be listed once. If you already had similar lines, replace them with the version written here.
-
Include the editorial_staff and assignment_desk URLconfs in your project's urls.py like this:
url(r'^staff/', include('editorial_staff.urls')), url(r'^assignments/', include('assignment_desk.urls')),
-
Run
python manage.py migrate
to install the data models into your database.NOTE: As mentioned above, this command will fail if you're not using a PostgreSQL database.
-
Start the development server and visit http://127.0.0.1:8000/assignments/ to start editing assignments.
You can specify the following configuration options in your project's settings.py
file. All are optional:
Setting name | Intended value(s) | Purpose |
---|---|---|
ASSIGNMENT_DESK_LOGOUT_URL |
Any reversible URL pattern | If set, includes a "log out" link in the navigation on each django-assignment-desk page. |
ASSIGNMENT_DESK_DAY_INTERVAL |
Integer (default is 7) | How many days should be included in an assignment list. |
django-assignment-desk
front-end pages are built using ES6 and SCSS, and this app includes a Gulp installation that converts files written in these dialects to plain JavaScript and CSS, respectively.
When developing on the front-end, you'll need to run this Gulp installation yourself. Follow these steps to get started.
-
Open a terminal window and navigate to the root of this app.
-
Within the app, navigate to
./assignment_desk/staticapp
. -
If this is your first time running Gulp on this project, run
npm install
to install JS dependencies. This may take several minutes. -
Once your dependencies are installed, run
gulp
to begin local development. -
When your Gulp server says it's up and running, visit http://127.0.0.1:3000/assignments/ for a live preview of your front-end files.
-
Proceed to modify your front-end interface by changing files in
./assignment_desk/staticapp/scss/
and./assignment_desk/staticapp/js/
. Your changes will be applied to the Gulp server URL without the need for to reload the page manually.