This repository contains sources of Django application that powers DjangoGirls.org.
It's a simple CMS that contains 4 models:
- Event - a list of events
- EventPage - configuration of website
- EventPageContent - blocks of content that are visible on the website
- EventPageMenu - items of menu of every website
Simply go to command line and run this command:
python ./manage.py new_event
And then follow the instructions.
http://djangogirls.org/admin/core/eventpage/
Here you can change:
- Meta tags - title and description of the website
- Main color - main color on the website in HEX (default is FF9400)
- Custom CSS - customize CSS on the website
- URL - url that goes after the domain (http://djangogirls.org/__url__)
- Is live? - live website is available on the homepage and can be accessed by anyone
http://djangogirls.org/admin/core/eventpagecontent/
Each website comes with some default content that you can adjust to your needs. Each object is a "block" on the website that you can modify in following ways:
- Name - it's also a permalink that you can link to like this: #name
- Content - HTML is allowed
- Background - there are two available types of blocks: without background and with background. By uploading image you're choosing the type with background.
- Is public - check this if you want this block to be visible
http://djangogirls.org/admin/core/eventpagemenu/add/
To manage menu available on the website, you can add objects to EventPageMenu. Available options:
- Title
- URL
The website is hosted on PythonAnywhere and is available here: http://djangogirls.org/
We have an auto-deploy thing going on, so everything commited to master is automatically deployed to our Heroku.
First, clone the repository:
git clone [email protected]:DjangoGirls/djangogirls.git
Step into newly created djangogirls
directory:
cd djangogirls
Create a new virtual environment if needed. Then, install all the required dependencies:
pip install -r requirements.txt
Start the PostgreSQL database server and enter the psql
shell (you need to have PostgreSQL installed):
psql
In the psql
shell, create a database and a role with the nessesary permissions:
CREATE DATABASE djangogirls;
CREATE ROLE postgres;
GRANT ALL privileges ON DATABASE djangogirls TO postgres;
ALTER ROLE postgres WITH LOGIN;
Exit the psql
shell:
\q
Run the migration to create database schema:
./manage.py migrate
Load sample data to the database
./manage.py loaddata sample_db.json
Create a user so you can login to the admin:
./manage.py createsuperuser
Install dependencies for static files:
npm install
Compile CSS and JS files:
gulp watch
Run your local server:
./manage.py runserver
🎉 You're done.
You can run the tests like this:
py.test
Or if you want coverage reports:
py.test --cov
For a coverage report with information about missing lines, run this:
py.test --cov-report term-missing --cov
We're using a Stylus as our CSS pre-processor. Get styling with Stylus.
This means you shouldn't change any css files, but .styl
files. They're in /static/source/css/ directory.
Autocompiling of .styl
files to .css
:
gulp watch
We're also using gulp for our static files builds. To build static files for production, run this:
gulp build
For local development:
gulp local
Key bits of config and secrets are stored in environment variables in two places:
- in the WSGI file (linked from the Web Tab)
- in the virtualenv postactivate at ~/.virtualenvs/djangogirls.com/bin/postactivate