1. joskid
  2. cciw-website


cciw-website / README

Luke Plant d05f693 

Luke Plant 049645b 

luke 4f7deea 
Luke Plant 049645b 

Luke Plant 20aab62 
Luke Plant 049645b 
luke 2cd769d 
Luke Plant 049645b 

Luke Plant 20aab62 
Luke Plant 049645b 

Luke Plant 20aab62 

Luke Plant 049645b 

Luke Plant d0b9d04 

Luke Plant 26bb657 
CCIW source code

In case I get hit by a bus, or for the freak possibility that someone wants to
help me with this site, here are some tips for developers.

Installation hints

- The fabfile contains info about how to develop and deploy

- You need to create a settings_priv.py with the various settings that I cannot
  release publicly (database, passwords, secret key)

- For creating the database, there is a complete set of South migration
  scripts. However, some of the data migration scripts may depend on certain
  data being present in the database. It is therefore better to get
  a dump of live DB and use that. Use the anonymize_data command to
  clear the DB of sensitive live data.

Project organisation

The first evolution of the project had a large models.py (cciw.cciwmain.models)
that was split into sub modules. This has now been re-organised into
cciw.cciwmain (camp and camp site information, and other core website
functionality), cciw.forums and cciw.sitecontent. cciw.officers and
cciw.bookings are newer and were written as separate apps from the start.

Although the apps have been mainly separated, there are dependencies between
them, and places where they have not been separated.

- almost all apps use cciw.cciwmain.models.Camp, and other common functionality
  found in cciwmain
- tests for forums and sitecontent remain in cciwmain. This is partly because
  cciwmain.views uses forums.views.
- test fixtures are re-used by different apps.

Other notes

A lot of this code is quite old. It has been continuously updated to work with
latest Django, and fix deprecation warnings, but might be quite different if
written from scratch. A lot of code in cciwmain, sitecontent and forums ought to
be updated to use the {% url %} tag which was added after I wrote it.

Views are done using a mixture of classic functions and Class Based Views,
depending on whether the move to CBVs was worth the effort. This means that
there is sometimes some duplication between the function based way of doing
something and the equivalent CBV way, and you need to be comfortable with both

The system was initially migrated from a PHP system. The migration scripts can
be found in the VCS history, but have been removed from the current tree
as they are clutter that is no longer needed.


./manage.py test --settings=cciw.settings_tests cciwmain officers bookings