Sphene Community Tools

Community

Copyright © 2007-2018 by Herbert Poul

You are not logged in.
Login
Register

Change Language:



AddThis Social Bookmark Button

A Django site.

Powered by Sphene Community Tools

Tutorial/New

Tutorial / New

Back to Snip <-- Previous Change

Diff Summary
Title
Date 2012-03-17 18:36:22 2012-03-17 18:37:02
Editor Herbert Poul Herbert Poul
Tags

2012-03-17 18:36:22 by Herbert Poul
2012-03-17 18:37:02 by Herbert Poul
n1updated tutorial. n
21
t3This is a simple tutorial what it needs to configut
>re a simple Forum and Wiki for your website. It wa 
>lks you through creating a new project and than ad 
>ding the necessary confugration changes to integra 
>te Forum and Wiki. These should be quite the same  
>steps required to add it to your own website or an 
> existing project.  
4
5
6# Creating a new simple Django project
7
8You should already know how to do this, it's just 
>a standard django setup, but i'll still walk throu 
>gh all steps. I am using Django 1.4 here. (Django  
>1.4 has a significantly different default project  
>setup)  
9
10## Create a new project
11
12    $ django-admin.py startproject simpleproject
13
14
15## Configuring project to get it up and running
16
17First of all, since i don't want to commit my data
>base settings into subversion i'll create a simple 
>project/settings_local.py and include it at the en 
>d of my simpleproject/settings.py:  
18    
19    # settings_local overwrites a few settings fro
>m here, and has to define SECRET_KEY  
20    from simpleproject.settings_local import *
21
22my simpleproject/settings_local.py contains:
23
24
25    DATABASES = {
26        'default': {
27            'ENGINE': 'django.db.backends.sqlite3'
>, # Add 'postgresql_psycopg2', 'mysql', 'sqlite3'  
>or 'oracle'.  
28            'NAME': 'test.sqlite',                
>      # Or path to database file if using sqlite3. 
>  
29            'USER': '',                      # Not
> used with sqlite3.  
30            'PASSWORD': '',                  # Not
> used with sqlite3.  
31            'HOST': '',                      # Set
> to empty string for localhost. Not used with sqli 
>te3.  
32            'PORT': '',                      # Set
> to empty string for default. Not used with sqlite 
>3.  
33        }
34    }
35
36now you can run syncdb:
37
38    Herbys-i7:simpleproject herbert$ ./manage.py s
>yncdb  
39    Creating tables ...
40    Creating table auth_permission
41    Creating table auth_group_permissions
42    Creating table auth_group
43    Creating table auth_user_user_permissions
44    Creating table auth_user_groups
45    Creating table auth_user
46    Creating table django_content_type
47    Creating table django_session
48    Creating table django_site
49
50    You just installed Django's auth system, which
> means you don't have any superusers defined.  
51    Would you like to create one now? (yes/no): ye
>s  
52    Username (leave blank to use 'herbert'):
53    E-mail address: a@b.com
54    Password:
55    Password (again):
56    Superuser created successfully.
57    Installing custom SQL ...
58    Installing indexes ...
59    Installed 0 object(s) from 0 fixture(s)
60
61Because i am on Mac OSX i got the "ValueError: unk
>nown locale: UTF-8" error, so i actually ran:  
62
63    LC_CTYPE="en_US.UTF-8" ./manage.py syncdb
64
65but i don't think this should be necessary often..
>  
66
67Ok, now after our syncdb the default django projec
>t should be stable and we can run it:  
68
69
70    Herbys-i7:simpleproject herbert$ ./manage.py r
>unserver  
71    Validating models...
72
73    0 errors found
74    Django version 1.4b1, using settings 'simplepr
>oject.settings'  
75    Development server is running at http://127.0.
>0.1:8000/  
76    Quit the server with CONTROL-C.
77
78I guess this was not too exciting for anyone, sinc
>e you already use django, so let's go ahead!  
79
80# Sphene Community Tools
81
82## Installation
83
84First of all you have to install SCT (the communit
>ytools project) - you can either download it and r 
>un setup.py or use the GIT version from https://gi 
>thub.com/hpoul/sct-communitytools  
85
86I usually prefer to have the GIT version, so i che
>cked it out into the same directory and added the  
>'sct-communitytools/sphenecoll' path to the PYTHON 
>_PATH.  
87
88## Project Configuration
89
90Add the following applications to your INSTALLED_A
>PPS:  
91
92        'sphene.community',
93        'sphene.sphboard',
94        'sphene.sphwiki',
95
96## Adding MIDDLEWARE_CLASSES and TEMPLATE_CONTEXT_
>PROCESSORS  
97
98
99SCT (currently) needs at least two middleware clas
>ses and one template context processor. Add the fo 
>llowing to middlewares to the TOP of your MIDDLEWA 
>RE_CLASSES:  
100
101        'sphene.community.middleware.ThreadLocals'
>,  
102        'sphene.community.middleware.GroupMiddlewa
>re',  
103
104To add the template context processor you need to 
>modify TEMPLATE_CONTEXT_PROCESSOR - this variable  
>is by default not set in the generated settings.py 
> - so if you don't have it yet in your settings.py 
> you have to add it:  
105
106
107    TEMPLATE_CONTEXT_PROCESSORS = (
108        "django.contrib.auth.context_processors.au
>th",  
109        "django.core.context_processors.debug",
110        "django.core.context_processors.i18n",
111        "django.core.context_processors.media",
112        "django.core.context_processors.static",
113        "django.contrib.messages.context_processor
>s.messages",  
114        'sphene.community.context_processors.navig
>ation',  
115    )
116
117## Synchronizing tables
118
119After adding the community projects, run syncdb ag
>ain which will create all necessary tables.  
120
121    ./manage.py syncb
122
123## Create base template
124
125SCT requires a template called base.html which has
> at least a block called "content" and one called  
>"head". To make this easier we will create a small 
> community app which hosts only your template. If  
>you are integrating  SCT into your own project, yo 
>u probably already have a base template.  
126
127    ./manage.py startapp mysitecommunity
128
129and add 'mysitecommunity' to INSTALLED_APPS in set
>tings.py  
130
131Now create a template directory and edit base.html
>  
132
133    Herbys-i7:simpleproject herbert$ mkdir mysitec
>ommunity/templates  
134    Herbys-i7:simpleproject herbert$ vi mysitecomm
>unity/templates/base.html  
135
136which looks like:
137
138
139
140    <html>
141    <head>
142      <title>Example Project</title>
143      {% block head %}
144      {% endblock %}
145    </head>
146    <body>
147    {% block content %}
148    {% endblock %}
149    </body>
150    </html>
151
152For a more complete example you can look into the 
>[simpleproject example in the subversion repositor 
>y](https://github.com/hpoul/sct-communitytools/blo 
>b/master/examples/simpleproject/sitetemplates/base 
>.html).  
153
154## And we are done
155
156Now start your project with ./manage.py runserver 
>and head over to http://127.0.0.1/board/ - You sho 
>uld see a very *simple* forum application.  
157
158# Community Groups
159
160In SCT everything is based on 'Community Groups' -
> every forum or wiki snip is part of a 'Group' - T 
>his Group has nothing to do with the user groups w 
>hich is basically only for assigning permissions - 
> a community group is more similar to the concept  
>of the [Sites Application](http://www.djangoprojec 
>t.com/documentation/sites/) since every community  
>Group has one URL assigned. The main difference is 
> tough, that Community Groups are ment to be hoste 
>d on the same django instance with the same config 
>uration, while Sites have a different configuratio 
>n for each 'Site'.  
161
162When running syncdb SCT will by default create a '
>example' Community Groups which we have configured 
> in our urls.py to use. You can configure or creat 
>e more Community Groups in the Django Admin interf 
>ace:  
163
164Anyway .. first of all ... we need to get into the
> admin web interface.. so we need to assign an URL 
>: open urls.py and uncomment the following line:  
165
166     (r'^admin/', include('django.contrib.admin.ur
>ls')),  
167
168Now run the project using: "./manage.py runserver"
> and head over to your admin page, propably: http: 
>//127.0.0.1:8000/admin/  
169
170There you need to login with your superuser - user
> you created with the first 'syncdb' call and head 
> over to 'Community' -> 'Groups' (__NOT__ Auth ->  
>Groups) and click 'Add group'. Enter something lik 
>e:  
171
172- Name: example
173- Longname: Example Community Group
174- Baseurl: www.example.com
175
176The only important for now is the 'name' .. i assu
>me below that we have a group called 'example' whi 
>ch .. will be the only one we want (for now) ...  
177


Powered by Sphene Community Tools