1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
|
---
layout: page
title: Customising checklist
---
# Customising checklist
<p class="lead">
Every time we help set up a new, custom FixMyStreet site, we follow the same
basic process to make sure all the key things get done. We've listed the
steps here so you can follow them too.
</p>
## Checklist: 13 things to do
To create a custom FixMyStreet installation, these are the key things you need
to do. You don't have to do them *exactly* in this order -- some can be done
at the same time as others -- but if you're not sure then just work through the list.
<dl class="reveal-on-click" data-reveal-noun="steps">
<dt>
<h3>Pick a name</h3>
</dt>
<dd>
You need a name for your
<a href="{{ "/glossary/#cobrand" | relative_url }}" class="glossary__link">cobrand</a>
right at the start because that's the name you'll use for the directories
where your own resources and templates go.
<p>
Your name needs to be unique (that is, no other FixMyStreet cobrands are
already using it), suitable as a directory name (so no punctuation), and
ideally related to the domain name you're going to use for it (although
this isn't 100% obligatory).
</p>
<p>
For example, if your project is called FixMyPark, the cobrand name will
be <code>fixmypark</code>.
</p>
</dd>
<dt>
<h3>Set up the domain name
</h3>
</dt>
<dd>
If you already own the domain name,
you're good to go. But if this is a new project and you don't have the
domain set up already, don't leave it too late to register the domain
and point it at your server.
</dd>
<dt>
<h3>Translate into language(s) you need</h3>
</dt>
<dd>
If FixMyStreet doesn't already have translations for the language(s) you
need, you can start work on that right away — see
<a href="{{ "/customising/language/" | relative_url }}">more about languages</a>.
</dd>
<dt>
<h3>Install the software on the server</h3>
</dt>
<dd>
There are several different ways of doing this — see
<a href="{{ "/install/" | relative_url }}">installation instructions</a>.
<p>
Even if you're not hosting the site yourself, you might want to install
the software in order to see how your customisation looks before putting
it live.
</p>
</dd>
<dt>
<h3>Secure access to the admin</h3>
</dt>
<dd>
Make sure you're being challenged to provide a username and password when
accessing the admin at <code>/admin</code>.
<p>
Typically this means using creating a superuser. If you've
not already done so, run the `bin/createsuperuser` script to create a user
that has access to the admin.
</p>
</dd>
<dt>
<h3>Change the colour scheme</h3>
</dt>
<dd>
See <a href="{{ "/customising/css/" | relative_url }}">changing colour and CSS</a>
for detailed instructions.
<p>
You can just change the colour variables without needing to touch any other
CSS.
</p>
</dd>
<dt>
<h3>Change the logo</h3>
</dt>
<dd>
You'll need an understanding of CSS in order to change the logo —
it's optimised in the FixMyStreet design for good perfomance on old or
narrow clients, which makes it a little bit more difficult than just
dropping in a graphics file.
<p>
We'll be adding instructions later, but meanwhile see the page
<a href="{{ "/customising/css/" | relative_url }}">about changing the CSS</a>.
</p>
</dd>
<dt>
<h3>Write your own FAQ</h3>
</dt>
<dd>
You almost certainly need to re-write the FAQ and other information pages
to match your project.
<p>
To do this, copy the template files into your own cobrand's directory and
rewrite them. The generic base FAQ can be found at
<code>templates/web/base/about/faq-en-gb.html</code>
</p>
<p>
See <a href="{{ "/customising/templates/" | relative_url }}">more about templates</a>.
</p>
</dd>
<dt>
<h3>Limit geocoder lookups to your area <!-- NEW --></h3>
</dt>
<dd>
When someone enters a place name, you only want your FixMyStreet to look
for it in the place your site covers. This is controlled by the
<code><a href="{{ "/customising/config/#geocoding_disambiguation" | relative_url }}">GEOCODING_DISAMBIGUATION</a></code>
setting.
See <a href="{{ "/customising/geocoder/" | relative_url }}">more about the geocoder</a>.
<p>
We've listed this separately from the other config settings because it
may take a little bit of testing to see what options work best —
this depends on which geocoder you are using.
</p>
</dd>
<dt>
<h3>Configure your admin boundaries (MapIt)</h3>
</dt>
<dd>
You need to decide what kind of boundary data you'll be using — see
<a href="{{ "/customising/boundaries/" | relative_url }}">more about boundaries</a>.
<p>
As part of that work, you'll need to set
<code><a href="{{ "/customising/config/#mapit_url" | relative_url }}">MAPIT_URL</a></code>
and the other MapIt config settings to match the service you're using.
</p>
</dd>
<dt>
<h3>Set non-default config settings</h3>
</dt>
<dd>
Many of the
<a href="{{ "/customising/config/" | relative_url }}">configuration settings</a>
can be left with their defaults, but some you <em>must</em> change.
<p>
As well as system settings (for example,
<code><a href="{{ "/customising/config/#fms_db_name" | relative_url }}">FMS_DB_NAME</a></code>),
every new site needs custom
<code><a href="{{ "/customising/config/#email_domain" | relative_url }}">EMAIL_DOMAIN</a></code>
and
<code><a href="{{ "/customising/config/#example_places" | relative_url }}">EXAMPLE_PLACES</a></code>
settings. Make sure the example places you choose really do work if you enter them
as the location on the front page.
</p>
<p>
Even though your site might work with other settings left as defaults, you should go
through the <em>whole</em> <code>cong/general.yml</code> file to check everything is how
you want it.
</p>
</dd>
<dt>
<h3>Create the bodies (authorities, councils)</h3>
</dt>
<dd>
Once your site is running log into the admin and
<a href="{{ "/running/bodies_and_contacts/" | relative_url }}">add the bodies</a>.
<p>
You should have set up the
<a href="{{ "/customising/boundaries/" | relative_url }}">admin boundaries</a>
by this stage, because you need to associate each body with the area it covers.
For more information, see
<a href="{{ "/customising/fms_and_mapit/" | relative_url }}">how FixMyStreet uses MapIt</a>.
</p>
</dd>
<dt>
<h3>Add category names & contact emails</h3>
</dt>
<dd>
Once you've created the bodies to whom reports will be sent, you can add
their problem categories (for example, "Potholes", "Streetlights"). At the
same time, add the contact email addresses for each one — see <a
href="{{ "/running/bodies_and_contacts/" | relative_url }}">more about
contacts and categories</a>.
</dd>
</dl>
## Further customisation
Remember that this just covers the key parts of a custom installation. There's
a lot more you can change — for example, you can write custom Perl code
for the <a href="{{ "/customising/cobrand-module/" | relative_url }}">Cobrand
module</a> if you want to override specific behaviour not covered by config
variables.
|