Merge lp:~timo-wingender/widelands-website/ggz-support into lp:widelands-website
- ggz-support
- Merge into trunk
Status: | Merged | ||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Merged at revision: | 218 | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Proposed branch: | lp:~timo-wingender/widelands-website/ggz-support | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Merge into: | lp:widelands-website | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Diff against target: |
5503 lines (+2736/-1294) 89 files modified
diff_match_patch.py (+2/-2) media/css/base.css (+225/-101) media/css/comments.css (+8/-8) media/css/forum.css (+30/-90) media/css/ggz.css (+12/-0) media/css/messages.css (+3/-76) media/css/news.css (+68/-83) media/css/notice.css (+12/-0) media/css/profile.css (+7/-79) news/templatetags/news.py (+31/-0) news/urls.py (+12/-12) news/views.py (+0/-1) pybb/feeds.py (+22/-5) pybb/forms.py (+14/-3) pybb/management/__init__.py (+1/-0) pybb/management/pybb_notifications.py (+20/-0) pybb/models.py (+14/-2) pybb/templatetags/pybb_extras.py (+132/-1) pybb/urls.py (+4/-0) pybb/util.py (+3/-5) pybb/views.py (+7/-0) settings.py (+1/-0) templates/django_messages/compose.html (+16/-21) templates/django_messages/inbox.html (+9/-6) templates/django_messages/inlines/navigation.html (+14/-14) templates/django_messages/outbox.html (+9/-5) templates/django_messages/trash.html (+25/-14) templates/mainpage.html (+40/-44) templates/mainpage/online_users.html (+8/-5) templates/navigation.html (+16/-2) templates/news/inlines/post_detail.html (+49/-47) templates/news/post_archive_day.html (+20/-14) templates/news/post_archive_month.html (+21/-10) templates/news/post_archive_year.html (+26/-11) templates/news/post_list.html (+24/-30) templates/notification/forum_new_post/full.txt (+7/-0) templates/notification/forum_new_post/notice.html (+2/-0) templates/notification/forum_new_topic/full.txt (+7/-0) templates/notification/forum_new_topic/notice.html (+2/-0) templates/notification/notices.html (+46/-28) templates/notification/single.html (+50/-0) templates/notification/wiki_article_edited/notice.html (+1/-1) templates/pybb/add_post.html (+5/-4) templates/pybb/delete_post.html (+15/-6) templates/pybb/edit_post.html (+5/-4) templates/pybb/forum.html (+62/-39) templates/pybb/index.html (+7/-3) templates/pybb/inlines/add_post_form.html (+27/-35) templates/pybb/inlines/display_category.html (+9/-15) templates/pybb/inlines/forum_row.html (+0/-2) templates/pybb/inlines/post.html (+43/-71) templates/pybb/inlines/topic_row.html (+11/-3) templates/pybb/last_posts.html (+21/-0) templates/pybb/pagination.html (+35/-14) templates/pybb/topic.html (+73/-59) templates/registration/base.html (+8/-0) templates/registration/login.html (+49/-20) templates/registration/password_change_done.html (+23/-8) templates/registration/password_change_form.html (+65/-20) templates/registration/password_reset_complete.html (+23/-8) templates/registration/password_reset_confirm.html (+35/-21) templates/registration/password_reset_done.html (+23/-8) templates/registration/password_reset_form.html (+35/-14) templates/registration/registration_complete.html (+19/-8) templates/registration/registration_form.html (+82/-54) templates/right_boxes.html (+27/-26) templates/threadedcomments/inlines/comments.html (+33/-27) templates/threadedcomments/preview_comment.html (+16/-18) templates/wlggz/base.html (+12/-0) templates/wlggz/edit_ggz.html (+43/-0) templates/wlggz/view_ggz_highscore.html (+43/-0) templates/wlggz/view_ggz_matches.html (+45/-0) templates/wlggz/view_ggz_overview.html (+27/-0) templates/wlggz/view_ggz_playerstats.html (+106/-0) templates/wlprofile/edit_profile.html (+36/-11) templates/wlprofile/view_profile.html (+21/-9) templates/wlwebchat/index.html (+1/-1) urls.py (+2/-0) wiki/feeds.py (+29/-56) wlggz/admin.py (+27/-0) wlggz/fields.py (+85/-0) wlggz/forms.py (+43/-0) wlggz/ggz_models.py (+189/-0) wlggz/models.py (+27/-0) wlggz/urls.py (+25/-0) wlggz/views.py (+117/-0) wlprofile/models.py (+23/-0) wlprofile/templatetags/custom_date.py (+58/-10) wlprofile/templatetags/wlprofile.py (+6/-0) |
||||||||||||||||||||||||||||||||||||||||||||||||||||
To merge this branch: | bzr merge lp:~timo-wingender/widelands-website/ggz-support | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Related bugs: |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
Related blueprints: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Widelands Developers | Pending | ||
Review via email: mp+27543@code.launchpad.net |
Commit message
Description of the change
Changes:
* ggz support: set ggz password in the profile, show ggz statistics in the profile and two overview pages: latest ten matches and top ten rating
* show ggz statistics in the forum
* improved navigation through profiles, messaging, notifications
* implementing forum ranking #340926
* add notifications for the forum: new topics and subscribing to topics #336016
* improved pagination in the forum #336699
* show signatures in the forum #357960
* add a form to change the password #591880
* make the feeds valid #454450
* lot of style fixes on the website
* improvement of the news archive
- 259. By Timowi
-
add feature to pybb: show last five posts
- 260. By Timowi
-
pass user through last_post tag
- 261. By janus
-
add string filter
modify output template - 262. By janus
-
add pybb_cut_string function to cut a string ;)
modify last_post output - 263. By janus
-
add local timezone support
-> https://bugs.launchpad .net/widelands- website/ +bug/345981 - 264. By janus
-
add some new forum icons, thx to genesis for this work
modify and implement the new graphics - 265. By janus
-
add the new forum icons, thx to genesis for this work
- 266. By janus
-
:d
- 267. By janus
-
;)
- 268. By Timowi
-
merge trunk
- 269. By janus
-
modify the background of user menu
next time the menu will move to the account div in the right menu panel - 270. By janus
-
add some new icons, big thx to genesis
- 271. By janus
-
add the new icons in the forum
- 272. By janus
-
add new open_topic icon, thx to genesis
- 273. By janus
-
modify the webchat guest nickname
- 274. By janus
-
sum sum sum ;)
- 275. By Timowi
-
merge trunk
- 276. By Timowi
-
remove wrong raise Exception
- 277. By Timowi
-
add field to choose between markdown and bbcode as markup
- 278. By Timowi
-
add new forum rank images by genesis
- 279. By janus
-
modify output of forum topic ;), for the forum better handling
- 280. By Timowi
-
fix displaying of ggz users which do not exist in django
- 281. By Timowi
-
add new columns to ggz matchplayers database schema
- 282. By Timowi
-
rename wgllz template
- 283. By Timowi
-
display result and points on last matches page
- 284. By Timowi
-
style fix by janus
- 285. By janus
-
change ranks post count
- 286. By janus
-
disable online users if it's none
- 287. By janus
-
fix previews commit -.-
- 288. By janus
-
many style fixes, remove ggz menu becouse it's not done
- 289. By janus
-
fix wiki edit history style, fix new style
- 290. By janus
-
remove <li>
- 291. By janus
-
remove online menu complitly
Preview Diff
1 | === modified file 'diff_match_patch.py' |
2 | --- diff_match_patch.py 2010-01-03 21:51:19 +0000 |
3 | +++ diff_match_patch.py 2010-10-30 22:51:06 +0000 |
4 | @@ -1006,10 +1006,10 @@ |
5 | text = (data.replace("&", "&").replace("<", "<") |
6 | .replace(">", ">").replace("\n", "¶<BR>")) |
7 | if op == self.DIFF_INSERT: |
8 | - html.append("<INS STYLE=\"color: #00FF00;\" TITLE=\"i=%i\">%s</INS>" |
9 | + html.append("<SPAN STYLE=\"color: #00FF00;\" TITLE=\"i=%i\">%s</SPAN>" |
10 | % (i, text)) |
11 | elif op == self.DIFF_DELETE: |
12 | - html.append("<DEL STYLE=\"color: #FF0000;\" TITLE=\"i=%i\">%s</DEL>" |
13 | + html.append("<SPAN STYLE=\"color: #FF0000;\" TITLE=\"i=%i\">%s</SPAN>" |
14 | % (i, text)) |
15 | elif op == self.DIFF_EQUAL: |
16 | html.append("<SPAN TITLE=\"i=%i\">%s</SPAN>" % (i, text)) |
17 | |
18 | === modified file 'media/css/base.css' |
19 | --- media/css/base.css 2010-09-26 13:30:30 +0000 |
20 | +++ media/css/base.css 2010-10-30 22:51:06 +0000 |
21 | @@ -1,24 +1,24 @@ |
22 | /* HEADER */ |
23 | div#headerbanner { |
24 | -background: url(../img/headback.jpg); |
25 | -background-repeat: repeat-x; |
26 | -color: #FFFFFF; |
27 | -text-align: center; |
28 | -height:110px; |
29 | -border-bottom:2px solid #090909; |
30 | + background: url(../img/headback.jpg); |
31 | + background-repeat: repeat-x; |
32 | + color: #FFFFFF; |
33 | + text-align: center; |
34 | + height:110px; |
35 | + order-bottom:2px solid #090909; |
36 | } |
37 | |
38 | /***************************************************************/ |
39 | /* SIDECOLUMNS */ |
40 | /***************************************************************/ |
41 | #leftcolumn, #rightcolumn { |
42 | - background-color: #555555; |
43 | - background-image: url('../img/Menubackground.png'); |
44 | - border-left: 1px solid #151515; |
45 | - border-right: 1px solid #090909; |
46 | - border-bottom: 1px solid #090909; |
47 | - padding-top: 4px; /* A small space */ |
48 | - vertical-align: top; |
49 | + background-color: #555555; |
50 | + background-image: url('../img/Menubackground.png'); |
51 | + border-left: 1px solid #151515; |
52 | + border-right: 1px solid #090909; |
53 | + border-bottom: 1px solid #090909; |
54 | + padding-top: 4px; /* A small space */ |
55 | + vertical-align: top; |
56 | |
57 | } |
58 | /* The content is capsuled in divs, because |
59 | @@ -26,10 +26,10 @@ |
60 | * for tables |
61 | */ |
62 | #leftcontent { |
63 | - min-width: 175px; |
64 | + min-width: 175px; |
65 | } |
66 | -#rightcontent { |
67 | - min-width: 170px; |
68 | +#rightcontent { |
69 | + min-width: 170px; |
70 | } |
71 | |
72 | |
73 | @@ -37,19 +37,19 @@ |
74 | * Mainmenu |
75 | */ |
76 | #mainmenu { |
77 | -margin: 0px; |
78 | -padding: 0px; |
79 | + margin: 0px; |
80 | + padding: 0px; |
81 | } |
82 | #mainmenu li { |
83 | - list-style-image: url('../img/1.gif'); |
84 | - list-style-position: inside; |
85 | - font-weight: bold; |
86 | - padding: 4px; |
87 | + list-style-image: url('../img/1.gif'); |
88 | + list-style-position: inside; |
89 | + font-weight: bold; |
90 | + padding: 4px; |
91 | } |
92 | #mainmenu .sub { |
93 | -padding-left: 20px; |
94 | -color: red; |
95 | -font-weight: normal; |
96 | + padding-left: 20px; |
97 | + color: red; |
98 | + font-weight: normal; |
99 | } |
100 | |
101 | |
102 | @@ -57,52 +57,55 @@ |
103 | /* CONTENT COLUMN */ |
104 | /******************/ |
105 | #content { |
106 | - text-align: left; |
107 | - vertical-align: top; |
108 | - padding: 8px; |
109 | - padding-top: 0px; |
110 | - background-color: #333333; |
111 | - background: url(../img/background.png); |
112 | + text-align: left; |
113 | + vertical-align: top; |
114 | + padding: 8px; |
115 | + padding-top: 0px; |
116 | + background-color: #000000; |
117 | + background: url(../img/background.png); |
118 | |
119 | - font-size: 12px; |
120 | - color: #D0DFFF; |
121 | - width: 100%; |
122 | + font-size: 12px; |
123 | + color: #D0DFFF; |
124 | + width: 100%; |
125 | } |
126 | |
127 | /****************/ |
128 | /* BOTTOM TABLE */ |
129 | /****************/ |
130 | table#table_bottom { |
131 | - background-color: #333333; |
132 | - background: url(../img/background.png); |
133 | + background-color: #333333; |
134 | + background: url(../img/background.png); |
135 | |
136 | - width: 100%; |
137 | + width: 100%; |
138 | } |
139 | td#table_bottomleft { |
140 | - background: url(../img/table_bottomleft.png); |
141 | - background-repeat: no-repeat; |
142 | - background-position: left; |
143 | - height:8px; |
144 | - width:8px; |
145 | + background: url(../img/table_bottomleft.png); |
146 | + background-repeat: no-repeat; |
147 | + background-position: left; |
148 | + height:8px; |
149 | + width:8px; |
150 | } |
151 | |
152 | td#table_bottomright { |
153 | - background: url(../img/table_bottomright.png); |
154 | - background-repeat: no-repeat; |
155 | - background-position: right; |
156 | - height:8px; |
157 | - width:8px; |
158 | + background: url(../img/table_bottomright.png); |
159 | + background-repeat: no-repeat; |
160 | + background-position: right; |
161 | + height:8px; |
162 | + width:8px; |
163 | } |
164 | |
165 | /**********/ |
166 | /* FOOTER */ |
167 | /**********/ |
168 | #footer { |
169 | - width: 100%; |
170 | - height: 8px; |
171 | - background: url(../img/background.png); |
172 | + width: 100%; |
173 | + height: 8px; |
174 | + background: url(../img/background.png); |
175 | } |
176 | -/* Menu Blocks */ |
177 | + |
178 | +/* |
179 | + * Menu Blocks |
180 | + */ |
181 | h3.box_title { |
182 | color: #D0DFFF; |
183 | font-weight: bold; |
184 | @@ -117,96 +120,100 @@ |
185 | padding-bottom: 6px; |
186 | margin: 0px; |
187 | } |
188 | + |
189 | div.box_content { |
190 | - font-size:12px; |
191 | - line-height: 120%; |
192 | - border-left: 0px solid #999999; |
193 | - border-right: 0px solid #999999; |
194 | - padding: 6px; |
195 | - padding-top: 0px; |
196 | - padding-bottom: 20px; |
197 | - background-color: #555555; |
198 | - background-image: url('../img/Menubackground.png'); |
199 | + font-size:12px; |
200 | + line-height: 120%; |
201 | + border-left: 0px solid #999999; |
202 | + border-right: 0px solid #999999; |
203 | + padding: 6px; |
204 | + padding-top: 0px; |
205 | + padding-bottom: 20px; |
206 | + background-color: #555555; |
207 | + background-image: url('../img/Menubackground.png'); |
208 | } |
209 | + |
210 | .box_content p { |
211 | - margin: 0px; |
212 | - padding: 0px; |
213 | - padding-bottom: 4px; |
214 | + margin: 0px; |
215 | + padding: 0px; |
216 | + padding-bottom: 4px; |
217 | } |
218 | |
219 | +.block_center { |
220 | + text-align: center; |
221 | +} |
222 | |
223 | /***************************************************************/ |
224 | /* GENERAL STYLE ELEMENTS */ |
225 | /***************************************************************/ |
226 | body { |
227 | - color: #D0DFFF; |
228 | - font-family: Verdana, Arial, Helvetica, sans-serif; |
229 | - font-size: 12px; |
230 | - background-color: #000000; |
231 | - margin: 0; |
232 | - padding: 0; |
233 | + color: #D0DFFF; |
234 | + font-family: Verdana, Arial, Helvetica, sans-serif; |
235 | + font-size: 12px; |
236 | + background-color: #000000; |
237 | + margin: 0; |
238 | + padding: 0; |
239 | } |
240 | |
241 | img { |
242 | - border: 0px; |
243 | + border: 0px; |
244 | } |
245 | |
246 | a { |
247 | - color: #D0DFFF; |
248 | - text-decoration: none; |
249 | - font-weight: bold; |
250 | - background-color: transparent; |
251 | + color: #D0DFFF; |
252 | + text-decoration: none; |
253 | + font-weight: bold; |
254 | + background-color: transparent; |
255 | } |
256 | a.external:before { |
257 | padding-right: 2px; |
258 | - /* Must be an absolute reference, otherwise some browsers give errors */ |
259 | - content: url(/wlmedia/img/external_link.gif); |
260 | + /* Must be an absolute reference, otherwise some browsers give errors */ |
261 | + content: url(/wlmedia/img/external_link.gif); |
262 | } |
263 | a.missing { |
264 | - color: rgb(255, 85, 0); |
265 | + color: rgb(255, 85, 0); |
266 | } |
267 | |
268 | |
269 | a:hover { |
270 | - color: #A0AAFF; |
271 | - text-decoration: underline; |
272 | + color: #A0AAFF; |
273 | + text-decoration: underline; |
274 | } |
275 | - |
276 | - |
277 | + |
278 | /* |
279 | * Default table layout |
280 | */ |
281 | th { |
282 | - font-weight: bold; |
283 | - background-position: left; |
284 | - text-align: left; |
285 | - padding-left: 4px; |
286 | - background-image: url('../img/Navbar.png'); |
287 | - background-repeat: repeat-x; |
288 | - height: 20px; |
289 | + font-weight: bold; |
290 | + background-position: left; |
291 | + text-align: left; |
292 | + padding-left: 4px; |
293 | + background-image: url('../img/Navbar.png'); |
294 | + background-repeat: repeat-x; |
295 | + height: 20px; |
296 | } |
297 | |
298 | /* |
299 | * Odd Even Tags (mainly for tables) |
300 | */ |
301 | .even { |
302 | - background-color: #444444; |
303 | - background: url(../img/background-444.png); |
304 | - padding: 5px; |
305 | + background-color: #444444; |
306 | + background: url(../img/background-444.png); |
307 | + padding: 5px; |
308 | } |
309 | |
310 | .odd { |
311 | - background-color: #4f4f4f; |
312 | - background: url(../img/background-4F4F4F.png); |
313 | - padding: 5px; |
314 | -} |
315 | - |
316 | -.legend { |
317 | -} |
318 | - |
319 | + background-color: #4f4f4f; |
320 | + background: url(../img/background-4F4F4F.png); |
321 | + padding: 5px; |
322 | +} |
323 | + |
324 | +/* |
325 | + * Error Handling |
326 | + */ |
327 | .errormessage { |
328 | - color: #ff0000; |
329 | - font-size: 13px; |
330 | + color: #ff0000; |
331 | + font-size: 13px; |
332 | } |
333 | |
334 | /* |
335 | @@ -230,3 +237,120 @@ |
336 | } |
337 | |
338 | |
339 | +/* |
340 | + * Box Item Model |
341 | + */ |
342 | +.box_item_model { |
343 | + |
344 | +} |
345 | + |
346 | +.border { |
347 | + border: 1px solid rgb(9, 9, 9); |
348 | +} |
349 | + |
350 | +.full_site { |
351 | + width: 100%; |
352 | +} |
353 | + |
354 | +.fixed_site { |
355 | + width: 540px; |
356 | +} |
357 | + |
358 | +.box_item_model img.news { |
359 | + float: right; |
360 | + padding: 0px; |
361 | + width: 20px; |
362 | +} |
363 | + |
364 | +.box_item_model .border_top { |
365 | + border-top: 1px solid rgb(9, 9, ); |
366 | +} |
367 | + |
368 | +.box_item_model h3.title { |
369 | + font-weight: bold; |
370 | + font-size: 12px; |
371 | + padding-left: 12px; |
372 | + background-image: url('../img/Navbar.png'); |
373 | + background-repeat: repeat-x; |
374 | + border-left: 0px solid #999999; |
375 | + bolder-right: 0px solid #999999; |
376 | + border-top: 0px solid #999999; |
377 | + padding-top: 2px; |
378 | + padding-bottom: 0px; |
379 | + margin: 0px; |
380 | +} |
381 | + |
382 | +.box_item_model .content { |
383 | + line-height: 120%; |
384 | + border: 0px; |
385 | + padding: 2px; |
386 | + padding-top: 5px; |
387 | + padding-left: 15px; |
388 | + background-color: #3F3F3F; |
389 | + background: url('../img/background-3F3F3F.png'); |
390 | +} |
391 | + |
392 | +.box_item_model .info_line { |
393 | + text-align: right; |
394 | + padding: 3px; |
395 | + margin: 0px; |
396 | + background-color: #222222; |
397 | + background: url('../img/background-222.png'); |
398 | +} |
399 | + |
400 | +.box_item_model .text { |
401 | + vertical-align: baseline; |
402 | + margin-top: 5px; |
403 | + margin-bottom: 5px; |
404 | + margin: 0px; |
405 | + line-height: 130%; |
406 | +} |
407 | + |
408 | +.box_item_model .text:first-letter { |
409 | + color: #7070FF; |
410 | + font-size: 180%; |
411 | + font-family: Cretino, "Bitstream Vera Serif", serif; |
412 | + font-weight: bold; |
413 | +} |
414 | + |
415 | +.box_item_model .show_right { |
416 | + text-align: right; |
417 | + vertical-align: top; |
418 | +} |
419 | + |
420 | +.box_item_model .show_left { |
421 | + text-align: left; |
422 | + vertical-align: top; |
423 | +} |
424 | + |
425 | +.box_item_model .show_center { |
426 | + text-align: center; |
427 | + vertical-align: top; |
428 | +} |
429 | + |
430 | +.show_center { |
431 | + text-align: center; |
432 | + vertical-align: top; |
433 | +} |
434 | +.button_send { |
435 | + padding:0; |
436 | + margin:0; |
437 | + border:none; |
438 | + color: #222222; |
439 | + background: url(../forum/img/en/send.png) no-repeat center; |
440 | + background-repeat: no-repeat; |
441 | + font-size:12px; |
442 | + width:100px; |
443 | + height: 25px; |
444 | +} |
445 | +.button_preview { |
446 | + padding:0; |
447 | + margin:0; |
448 | + border:none; |
449 | + color: #222222; |
450 | + background: url(../forum/img/en/preview.png) no-repeat center; |
451 | + background-repeat: no-repeat; |
452 | + font-size:12px; |
453 | + width:100px; |
454 | + height: 25px; |
455 | +} |
456 | |
457 | === modified file 'media/css/comments.css' |
458 | --- media/css/comments.css 2010-01-03 18:38:36 +0000 |
459 | +++ media/css/comments.css 2010-10-30 22:51:06 +0000 |
460 | @@ -1,14 +1,14 @@ |
461 | - |
462 | - |
463 | /* |
464 | * Comment |
465 | */ |
466 | .comment { |
467 | - margin: 0px; |
468 | - padding-bottom: 2px; |
469 | -/* border: 1px solid rgb(20%,20%,20%); */ |
470 | - border-top: 0px; |
471 | - width: 100%; |
472 | + margin: 0px; |
473 | + padding-bottom: 2px; |
474 | + /* |
475 | + * border: 1px solid rgb(20%,20%,20%); |
476 | + */ |
477 | + border-top: 0px; |
478 | + width: 100%; |
479 | } |
480 | .comment p { |
481 | margin: 0px; |
482 | @@ -26,4 +26,4 @@ |
483 | } |
484 | .text textarea { |
485 | width: 100%; |
486 | -} |
487 | \ No newline at end of file |
488 | +} |
489 | |
490 | === modified file 'media/css/forum.css' |
491 | --- media/css/forum.css 2010-01-03 00:07:10 +0000 |
492 | +++ media/css/forum.css 2010-10-30 22:51:06 +0000 |
493 | @@ -1,6 +1,17 @@ |
494 | |
495 | .index_category, .index_forum { |
496 | margin-bottom: 20px; |
497 | + border-left: 0px; |
498 | + border-right: 0px; |
499 | +} |
500 | + |
501 | +.list_overview { |
502 | + display: block; |
503 | + font-weight: bold; |
504 | + padding: 0px; |
505 | + margin-top: 0px; |
506 | + margin-bottom: 0px; |
507 | + background: url('../img/background-444.png'); |
508 | } |
509 | |
510 | .title { |
511 | @@ -16,7 +27,6 @@ |
512 | text-align: center; |
513 | } |
514 | |
515 | - |
516 | /* |
517 | * POSTS |
518 | */ |
519 | @@ -30,6 +40,14 @@ |
520 | height: auto; |
521 | } |
522 | |
523 | +.post .top { |
524 | + vertical-align: top; |
525 | +} |
526 | +.post .top .signature .line { |
527 | + color: #D0DFFF; |
528 | + font-weight: bolder; |
529 | +} |
530 | + |
531 | /* |
532 | * Post |
533 | */ |
534 | @@ -87,93 +105,15 @@ |
535 | width: 40%; |
536 | } |
537 | .post-form #id_body { |
538 | - width: 100%; |
539 | - height: 400px; |
540 | -} |
541 | - |
542 | -/* |
543 | - * Post and Edit field |
544 | - */ |
545 | - |
546 | -.forum_poster { font-size: 90%;} |
547 | -.forum_post_date { font-size: 90%;} |
548 | - |
549 | - |
550 | -.forum_item .forum_image img { |
551 | - float: right; |
552 | - padding: 0px; |
553 | - margin-left: 20px; |
554 | -} |
555 | - |
556 | -.forum_item { |
557 | - border: 1px solid rgb(9, 9, 9); |
558 | - width: 100%; |
559 | -} |
560 | - |
561 | -.forum_item p { |
562 | - margin-bottom: 5px; |
563 | -} |
564 | - |
565 | -.forum_item h3.title { |
566 | + width: 98%; |
567 | + height: 150px; |
568 | +} |
569 | +.post .bold { |
570 | font-weight: bold; |
571 | - font-size: 12px; |
572 | - padding-left: 12px; |
573 | - background-image: url('../img/Navbar.png'); |
574 | - background-repeat: repeat-x; |
575 | - border-left: 0px solid #999999; |
576 | - border-right: 0px solid #999999; |
577 | - border-bottom: 0px solid #999999; |
578 | - padding-top: 2px; |
579 | - padding-bottom: 0px; |
580 | - margin: 0px; |
581 | -} |
582 | -.forum_item .content { |
583 | - line-height: 120%; |
584 | - border: 0px; |
585 | - padding: 2px; |
586 | - padding-top: 5px; |
587 | - padding-left: 15px; |
588 | - background-color: #3F3F3F; |
589 | - background: url(../img/background-3F3F3F.png); |
590 | -} |
591 | - |
592 | -.forum_item .info_line { |
593 | - text-align: right; |
594 | - padding: 3px; |
595 | - margin: 0px; |
596 | - background-color: #222222; |
597 | - background: url(../img/background-222.png); |
598 | -} |
599 | - |
600 | -.forum_item .text { |
601 | - vertical-align: baseline;; |
602 | - margin-top: 5px; |
603 | - margin-bottom: 5px; |
604 | - margin: 0px; |
605 | - line-height: 130%; |
606 | -} |
607 | - |
608 | -.forum_item .text:first-letter { |
609 | - vertical-align: baseline; |
610 | - color: #7070FF; |
611 | - font-size: 180%; |
612 | - font-family: Cretino, "Bitstream Vera Serif", serif; |
613 | - font-weight: bold; |
614 | - } |
615 | - |
616 | -.forum_item .bottom_line { |
617 | - background-color: #222222; |
618 | - background: url(../img/background-222.png); |
619 | - table-layout: fixed; |
620 | -} |
621 | -.forum_item .tags { |
622 | - text-align: right; |
623 | -} |
624 | -.forum_item .comments { |
625 | - text-align: left; |
626 | -} |
627 | -.forum_item .admin { |
628 | - text-align: center; |
629 | -} |
630 | - |
631 | - |
632 | +} |
633 | +.post .underline { |
634 | + text-decoration: underline; |
635 | +} |
636 | +.post .italic { |
637 | + font-style: italic; |
638 | +} |
639 | |
640 | === added file 'media/css/ggz.css' |
641 | --- media/css/ggz.css 1970-01-01 00:00:00 +0000 |
642 | +++ media/css/ggz.css 2010-10-30 22:51:06 +0000 |
643 | @@ -0,0 +1,12 @@ |
644 | +.ggz_stats { |
645 | + width: 120px; |
646 | +} |
647 | +.ggz_date { |
648 | + width: 150px; |
649 | +} |
650 | +.ggz_winner { |
651 | + width: 100px; |
652 | +} |
653 | +.ggz_vs { |
654 | + width: 290px; |
655 | +} |
656 | |
657 | === modified file 'media/css/messages.css' |
658 | --- media/css/messages.css 2010-01-03 15:47:15 +0000 |
659 | +++ media/css/messages.css 2010-10-30 22:51:06 +0000 |
660 | @@ -60,89 +60,16 @@ |
661 | width: 40%; |
662 | } |
663 | #id_body { |
664 | - width: 100%; |
665 | - height: 400px; |
666 | + width: 98%; |
667 | + height: 200px; |
668 | } |
669 | |
670 | /* |
671 | * MessageBox style |
672 | */ |
673 | |
674 | -.message_item .message_image img { |
675 | +.message_image img { |
676 | float: right; |
677 | padding: 0px; |
678 | margin-left: 20px; |
679 | } |
680 | - |
681 | -.message_item { |
682 | - border: 1px solid rgb(9, 9, 9); |
683 | - width: 100%; |
684 | -} |
685 | - |
686 | -.message_item p { |
687 | - margin-bottom: 5px; |
688 | -} |
689 | - |
690 | -.message_item h3.title { |
691 | - font-weight: bold; |
692 | - font-size: 12px; |
693 | - padding-left: 12px; |
694 | - background-image: url('../img/Navbar.png'); |
695 | - background-repeat: repeat-x; |
696 | - border-left: 0px solid #999999; |
697 | - border-right: 0px solid #999999; |
698 | - border-bottom: 0px solid #999999; |
699 | - padding-top: 2px; |
700 | - padding-bottom: 0px; |
701 | - margin: 0px; |
702 | -} |
703 | -.message_item .content { |
704 | - line-height: 120%; |
705 | - border: 0px; |
706 | - padding: 2px; |
707 | - padding-top: 5px; |
708 | - padding-left: 15px; |
709 | - background-color: #3F3F3F; |
710 | - background: url(../img/background-3F3F3F.png); |
711 | -} |
712 | - |
713 | -.message_item .info_line { |
714 | - text-align: right; |
715 | - padding: 3px; |
716 | - margin: 0px; |
717 | - background-color: #222222; |
718 | - background: url(../img/background-222.png); |
719 | -} |
720 | - |
721 | -.message_item .text { |
722 | - vertical-align: baseline;; |
723 | - margin-top: 5px; |
724 | - margin-bottom: 5px; |
725 | - margin: 0px; |
726 | - line-height: 130%; |
727 | -} |
728 | - |
729 | -.message_item .text:first-letter { |
730 | - vertical-align: baseline; |
731 | - color: #7070FF; |
732 | - font-size: 180%; |
733 | - font-family: Cretino, "Bitstream Vera Serif", serif; |
734 | - font-weight: bold; |
735 | - } |
736 | - |
737 | -.message_item .bottom_line { |
738 | - background-color: #222222; |
739 | - background: url(../img/background-222.png); |
740 | - table-layout: fixed; |
741 | -} |
742 | -.message_item .tags { |
743 | - text-align: right; |
744 | -} |
745 | -.message_item .comments { |
746 | - text-align: left; |
747 | -} |
748 | -.message_item .admin { |
749 | - text-align: center; |
750 | -} |
751 | - |
752 | - |
753 | |
754 | === modified file 'media/css/news.css' |
755 | --- media/css/news.css 2009-02-27 15:36:38 +0000 |
756 | +++ media/css/news.css 2010-10-30 22:51:06 +0000 |
757 | @@ -1,83 +1,68 @@ |
758 | - |
759 | -.news_poster { font-size: 90%;} |
760 | -.news_post_date { font-size: 90%;} |
761 | - |
762 | - |
763 | -.news_item .news_image img { |
764 | - float: right; |
765 | - padding: 0px; |
766 | - margin-left: 20px; |
767 | -} |
768 | - |
769 | -.news_item { |
770 | - border: 1px solid rgb(9, 9, 9); |
771 | - width: 100%; |
772 | -} |
773 | - |
774 | -.news_item p { |
775 | - margin-bottom: 5px; |
776 | -} |
777 | - |
778 | -.news_item h3.title { |
779 | - font-weight: bold; |
780 | - font-size: 12px; |
781 | - padding-left: 12px; |
782 | - background-image: url('../img/Navbar.png'); |
783 | - background-repeat: repeat-x; |
784 | - border-left: 0px solid #999999; |
785 | - border-right: 0px solid #999999; |
786 | - border-bottom: 0px solid #999999; |
787 | - padding-top: 2px; |
788 | - padding-bottom: 0px; |
789 | - margin: 0px; |
790 | -} |
791 | -.news_item .content { |
792 | - line-height: 120%; |
793 | - border: 0px; |
794 | - padding: 2px; |
795 | - padding-top: 5px; |
796 | - padding-left: 15px; |
797 | - background-color: #3F3F3F; |
798 | - background: url(../img/background-3F3F3F.png); |
799 | -} |
800 | - |
801 | -.news_item .info_line { |
802 | - text-align: right; |
803 | - padding: 3px; |
804 | - margin: 0px; |
805 | - background-color: #222222; |
806 | - background: url(../img/background-222.png); |
807 | -} |
808 | - |
809 | -.news_item .text { |
810 | - vertical-align: baseline;; |
811 | - margin-top: 5px; |
812 | - margin-bottom: 5px; |
813 | - margin: 0px; |
814 | - line-height: 130%; |
815 | -} |
816 | - |
817 | -.news_item .text:first-letter { |
818 | - vertical-align: baseline; |
819 | - color: #7070FF; |
820 | - font-size: 180%; |
821 | - font-family: Cretino, "Bitstream Vera Serif", serif; |
822 | - font-weight: bold; |
823 | - } |
824 | - |
825 | -.news_item .bottom_line { |
826 | - background-color: #222222; |
827 | - background: url(../img/background-222.png); |
828 | - table-layout: fixed; |
829 | -} |
830 | -.news_item .tags { |
831 | - text-align: right; |
832 | -} |
833 | -.news_item .comments { |
834 | - text-align: left; |
835 | -} |
836 | -.news_item .admin { |
837 | - text-align: center; |
838 | -} |
839 | - |
840 | - |
841 | +/**************************/ |
842 | +/* General Style elements */ |
843 | +/**************************/ |
844 | +.text h1 { |
845 | + font-size: 2.5em; |
846 | + margin: 10px 0px; |
847 | +} |
848 | +.text h2 { |
849 | + font-size: 2em; |
850 | + margin: 25px 0px 10px; |
851 | + line-height: 70%; |
852 | +} |
853 | +.text h3 { |
854 | + font-size: 1.4em; |
855 | + margin: 5px 0px; |
856 | +} |
857 | +.text h4 { |
858 | + font-size: 1.30em; |
859 | + margin: 5px 0px; |
860 | + /* |
861 | + * text-decoration: underline; |
862 | + * */ |
863 | +} |
864 | +.text h5 { |
865 | + font-size: 1.2em; |
866 | + margin: 5px 0px; |
867 | + /* |
868 | + * text-decoration: underline; |
869 | + * font-style: italic; |
870 | + * */ |
871 | +} |
872 | +.text h6 { |
873 | + font-size: 1.1em; |
874 | + margin: 5px 0px; |
875 | + /* |
876 | + * font-style: italic; |
877 | + * */ |
878 | +} |
879 | + |
880 | +.text h1:first-letter,.text h2:first-letter,.text h3:first-letter,.text h4:first-letter,.text h5:first-letter { |
881 | + vertical-align: baseline; |
882 | + color: #7070FF; |
883 | + font-size: 180%; |
884 | + font-family: Cretino, "Bitstream Vera Serif", serif; |
885 | + font-weight: bold; |
886 | +} |
887 | +.text h3:first-letter { |
888 | + color: rgb(156,156,86); |
889 | +} |
890 | +.text h4:first-letter { |
891 | + color: rgb(156,86,156); |
892 | + font-size: 150%; |
893 | +} |
894 | +.text h5:first-letter { |
895 | + color: rgb(86,156,156); |
896 | + font-size: 120%; |
897 | +} |
898 | +.news_poster { |
899 | + font-size: 90%; |
900 | +} |
901 | +.news_post_date { |
902 | + font-size: 90%; |
903 | +} |
904 | +.news_image img { |
905 | + float:right; |
906 | + margin-left:20px; |
907 | + padding:0; |
908 | +} |
909 | |
910 | === added file 'media/css/notice.css' |
911 | --- media/css/notice.css 1970-01-01 00:00:00 +0000 |
912 | +++ media/css/notice.css 2010-10-30 22:51:06 +0000 |
913 | @@ -0,0 +1,12 @@ |
914 | +.notice_poster { |
915 | + font-size: 90%; |
916 | +} |
917 | +.notice_post_date { |
918 | + font-size: 90%; |
919 | +} |
920 | +.notice_unseen_notice { |
921 | + font-style: italic; |
922 | +} |
923 | +.notice_type { |
924 | + font-weight: bold; |
925 | +} |
926 | |
927 | === modified file 'media/css/profile.css' |
928 | --- media/css/profile.css 2010-01-02 19:08:16 +0000 |
929 | +++ media/css/profile.css 2010-10-30 22:51:06 +0000 |
930 | @@ -1,83 +1,11 @@ |
931 | - |
932 | -.profile_poster { font-size: 90%;} |
933 | -.profile_post_date { font-size: 90%;} |
934 | - |
935 | - |
936 | -.profile_item .profile_image img { |
937 | +.profile_poster { |
938 | + font-size: 90%; |
939 | +} |
940 | +.profile_post_date { |
941 | + font-size: 90%; |
942 | +} |
943 | +.profile_image img { |
944 | float: right; |
945 | padding: 0px; |
946 | margin-left: 20px; |
947 | } |
948 | - |
949 | -.profile_item { |
950 | - border: 1px solid rgb(9, 9, 9); |
951 | - width: 540px; |
952 | -} |
953 | - |
954 | -.profile_item p { |
955 | - margin-bottom: 5px; |
956 | -} |
957 | - |
958 | -.profile_item h3.title { |
959 | - font-weight: bold; |
960 | - font-size: 12px; |
961 | - padding-left: 12px; |
962 | - background-image: url('../img/Navbar.png'); |
963 | - background-repeat: repeat-x; |
964 | - border-left: 0px solid #999999; |
965 | - border-right: 0px solid #999999; |
966 | - border-bottom: 0px solid #999999; |
967 | - padding-top: 2px; |
968 | - padding-bottom: 0px; |
969 | - margin: 0px; |
970 | -} |
971 | -.profile_item .content { |
972 | - line-height: 120%; |
973 | - border: 0px; |
974 | - padding: 2px; |
975 | - padding-top: 5px; |
976 | - padding-left: 15px; |
977 | - background-color: #3F3F3F; |
978 | - background: url(../img/background-3F3F3F.png); |
979 | -} |
980 | - |
981 | -.profile_item .info_line { |
982 | - text-align: right; |
983 | - padding: 3px; |
984 | - margin: 0px; |
985 | - background-color: #222222; |
986 | - background: url(../img/background-222.png); |
987 | -} |
988 | - |
989 | -.profile_item .text { |
990 | - vertical-align: baseline;; |
991 | - margin-top: 5px; |
992 | - margin-bottom: 5px; |
993 | - margin: 0px; |
994 | - line-height: 130%; |
995 | -} |
996 | - |
997 | -.profile_item .text:first-letter { |
998 | - vertical-align: baseline; |
999 | - color: #7070FF; |
1000 | - font-size: 180%; |
1001 | - font-family: Cretino, "Bitstream Vera Serif", serif; |
1002 | - font-weight: bold; |
1003 | - } |
1004 | - |
1005 | -.profile_item .bottom_line { |
1006 | - background-color: #222222; |
1007 | - background: url(../img/background-222.png); |
1008 | - table-layout: fixed; |
1009 | -} |
1010 | -.profile_item .tags { |
1011 | - text-align: right; |
1012 | -} |
1013 | -.profile_item .comments { |
1014 | - text-align: left; |
1015 | -} |
1016 | -.profile_item .admin { |
1017 | - text-align: center; |
1018 | -} |
1019 | - |
1020 | - |
1021 | |
1022 | === added file 'media/css/register.css' |
1023 | === added file 'media/forum/img/en/close_small.png' |
1024 | Binary files media/forum/img/en/close_small.png 1970-01-01 00:00:00 +0000 and media/forum/img/en/close_small.png 2010-10-30 22:51:06 +0000 differ |
1025 | === added file 'media/forum/img/en/close_topic.png' |
1026 | Binary files media/forum/img/en/close_topic.png 1970-01-01 00:00:00 +0000 and media/forum/img/en/close_topic.png 2010-10-30 22:51:06 +0000 differ |
1027 | === added file 'media/forum/img/en/closed.png' |
1028 | Binary files media/forum/img/en/closed.png 1970-01-01 00:00:00 +0000 and media/forum/img/en/closed.png 2010-10-30 22:51:06 +0000 differ |
1029 | === added file 'media/forum/img/en/delete.png' |
1030 | Binary files media/forum/img/en/delete.png 1970-01-01 00:00:00 +0000 and media/forum/img/en/delete.png 2010-10-30 22:51:06 +0000 differ |
1031 | === added file 'media/forum/img/en/edit.png' |
1032 | Binary files media/forum/img/en/edit.png 1970-01-01 00:00:00 +0000 and media/forum/img/en/edit.png 2010-10-30 22:51:06 +0000 differ |
1033 | === added file 'media/forum/img/en/new_topic.png' |
1034 | Binary files media/forum/img/en/new_topic.png 1970-01-01 00:00:00 +0000 and media/forum/img/en/new_topic.png 2010-10-30 22:51:06 +0000 differ |
1035 | === added file 'media/forum/img/en/newtopic.png' |
1036 | Binary files media/forum/img/en/newtopic.png 1970-01-01 00:00:00 +0000 and media/forum/img/en/newtopic.png 2010-10-30 22:51:06 +0000 differ |
1037 | === added file 'media/forum/img/en/open_topic.png' |
1038 | Binary files media/forum/img/en/open_topic.png 1970-01-01 00:00:00 +0000 and media/forum/img/en/open_topic.png 2010-10-30 22:51:06 +0000 differ |
1039 | === added file 'media/forum/img/en/permalink.png' |
1040 | Binary files media/forum/img/en/permalink.png 1970-01-01 00:00:00 +0000 and media/forum/img/en/permalink.png 2010-10-30 22:51:06 +0000 differ |
1041 | === added file 'media/forum/img/en/preview.png' |
1042 | Binary files media/forum/img/en/preview.png 1970-01-01 00:00:00 +0000 and media/forum/img/en/preview.png 2010-10-30 22:51:06 +0000 differ |
1043 | === added file 'media/forum/img/en/quote.png' |
1044 | Binary files media/forum/img/en/quote.png 1970-01-01 00:00:00 +0000 and media/forum/img/en/quote.png 2010-10-30 22:51:06 +0000 differ |
1045 | === added file 'media/forum/img/en/search.png' |
1046 | Binary files media/forum/img/en/search.png 1970-01-01 00:00:00 +0000 and media/forum/img/en/search.png 2010-10-30 22:51:06 +0000 differ |
1047 | === added file 'media/forum/img/en/send.png' |
1048 | Binary files media/forum/img/en/send.png 1970-01-01 00:00:00 +0000 and media/forum/img/en/send.png 2010-10-30 22:51:06 +0000 differ |
1049 | === added file 'media/forum/img/en/send_pm.png' |
1050 | Binary files media/forum/img/en/send_pm.png 1970-01-01 00:00:00 +0000 and media/forum/img/en/send_pm.png 2010-10-30 22:51:06 +0000 differ |
1051 | === added file 'media/forum/img/en/sendpm.png' |
1052 | Binary files media/forum/img/en/sendpm.png 1970-01-01 00:00:00 +0000 and media/forum/img/en/sendpm.png 2010-10-30 22:51:06 +0000 differ |
1053 | === added file 'media/forum/img/en/stick_topic.png' |
1054 | Binary files media/forum/img/en/stick_topic.png 1970-01-01 00:00:00 +0000 and media/forum/img/en/stick_topic.png 2010-10-30 22:51:06 +0000 differ |
1055 | === added file 'media/forum/img/en/stick_topic_small.png' |
1056 | Binary files media/forum/img/en/stick_topic_small.png 1970-01-01 00:00:00 +0000 and media/forum/img/en/stick_topic_small.png 2010-10-30 22:51:06 +0000 differ |
1057 | === added file 'media/forum/img/en/sticky.png' |
1058 | Binary files media/forum/img/en/sticky.png 1970-01-01 00:00:00 +0000 and media/forum/img/en/sticky.png 2010-10-30 22:51:06 +0000 differ |
1059 | === added file 'media/forum/img/en/subscribe.png' |
1060 | Binary files media/forum/img/en/subscribe.png 1970-01-01 00:00:00 +0000 and media/forum/img/en/subscribe.png 2010-10-30 22:51:06 +0000 differ |
1061 | === added file 'media/forum/img/en/subscribe_small.png' |
1062 | Binary files media/forum/img/en/subscribe_small.png 1970-01-01 00:00:00 +0000 and media/forum/img/en/subscribe_small.png 2010-10-30 22:51:06 +0000 differ |
1063 | === added file 'media/forum/img/en/top.png' |
1064 | Binary files media/forum/img/en/top.png 1970-01-01 00:00:00 +0000 and media/forum/img/en/top.png 2010-10-30 22:51:06 +0000 differ |
1065 | === added file 'media/forum/img/en/unstick_topic.png' |
1066 | Binary files media/forum/img/en/unstick_topic.png 1970-01-01 00:00:00 +0000 and media/forum/img/en/unstick_topic.png 2010-10-30 22:51:06 +0000 differ |
1067 | === added file 'media/forum/img/en/unsubscribe.png' |
1068 | Binary files media/forum/img/en/unsubscribe.png 1970-01-01 00:00:00 +0000 and media/forum/img/en/unsubscribe.png 2010-10-30 22:51:06 +0000 differ |
1069 | === added file 'media/img/rang_1.png' |
1070 | Binary files media/img/rang_1.png 1970-01-01 00:00:00 +0000 and media/img/rang_1.png 2010-10-30 22:51:06 +0000 differ |
1071 | === added file 'media/img/rang_2.png' |
1072 | Binary files media/img/rang_2.png 1970-01-01 00:00:00 +0000 and media/img/rang_2.png 2010-10-30 22:51:06 +0000 differ |
1073 | === added file 'media/img/rang_3.png' |
1074 | Binary files media/img/rang_3.png 1970-01-01 00:00:00 +0000 and media/img/rang_3.png 2010-10-30 22:51:06 +0000 differ |
1075 | === added file 'media/img/rang_4.png' |
1076 | Binary files media/img/rang_4.png 1970-01-01 00:00:00 +0000 and media/img/rang_4.png 2010-10-30 22:51:06 +0000 differ |
1077 | === added file 'media/img/rang_5.png' |
1078 | Binary files media/img/rang_5.png 1970-01-01 00:00:00 +0000 and media/img/rang_5.png 2010-10-30 22:51:06 +0000 differ |
1079 | === added file 'media/img/rang_6.png' |
1080 | Binary files media/img/rang_6.png 1970-01-01 00:00:00 +0000 and media/img/rang_6.png 2010-10-30 22:51:06 +0000 differ |
1081 | === added file 'media/img/rang_7.png' |
1082 | Binary files media/img/rang_7.png 1970-01-01 00:00:00 +0000 and media/img/rang_7.png 2010-10-30 22:51:06 +0000 differ |
1083 | === added file 'media/img/sterne_0.png' |
1084 | Binary files media/img/sterne_0.png 1970-01-01 00:00:00 +0000 and media/img/sterne_0.png 2010-10-30 22:51:06 +0000 differ |
1085 | === added file 'media/img/sterne_1.png' |
1086 | Binary files media/img/sterne_1.png 1970-01-01 00:00:00 +0000 and media/img/sterne_1.png 2010-10-30 22:51:06 +0000 differ |
1087 | === added file 'media/img/sterne_2.png' |
1088 | Binary files media/img/sterne_2.png 1970-01-01 00:00:00 +0000 and media/img/sterne_2.png 2010-10-30 22:51:06 +0000 differ |
1089 | === added file 'media/img/sterne_3.png' |
1090 | Binary files media/img/sterne_3.png 1970-01-01 00:00:00 +0000 and media/img/sterne_3.png 2010-10-30 22:51:06 +0000 differ |
1091 | === added file 'media/img/sterne_4.png' |
1092 | Binary files media/img/sterne_4.png 1970-01-01 00:00:00 +0000 and media/img/sterne_4.png 2010-10-30 22:51:06 +0000 differ |
1093 | === added file 'media/img/sterne_5.png' |
1094 | Binary files media/img/sterne_5.png 1970-01-01 00:00:00 +0000 and media/img/sterne_5.png 2010-10-30 22:51:06 +0000 differ |
1095 | === added file 'media/img/sterne_6.png' |
1096 | Binary files media/img/sterne_6.png 1970-01-01 00:00:00 +0000 and media/img/sterne_6.png 2010-10-30 22:51:06 +0000 differ |
1097 | === modified file 'news/templatetags/news.py' |
1098 | --- news/templatetags/news.py 2009-02-24 12:53:54 +0000 |
1099 | +++ news/templatetags/news.py 2010-10-30 22:51:06 +0000 |
1100 | @@ -47,6 +47,37 @@ |
1101 | format_string, var_name = m.groups() |
1102 | return LatestPosts(format_string, var_name) |
1103 | |
1104 | +class NewsYears(template.Node): |
1105 | + def __init__(self, var_name): |
1106 | + self.var_name = var_name |
1107 | + |
1108 | + def render(self, context): |
1109 | + years = Post.objects.all().dates('publish', 'year') |
1110 | + context[self.var_name] = years |
1111 | + return '' |
1112 | + |
1113 | +@register.tag |
1114 | +def get_news_years(parser, token): |
1115 | + """ |
1116 | + Gets any number of latest posts and stores them in a varable. |
1117 | + |
1118 | + Syntax:: |
1119 | + |
1120 | + {% get_latest_posts [limit] as [var_name] %} |
1121 | + |
1122 | + Example usage:: |
1123 | + |
1124 | + {% get_latest_posts 10 as latest_post_list %} |
1125 | + """ |
1126 | + try: |
1127 | + tag_name, arg = token.contents.split(None, 1) |
1128 | + except ValueError: |
1129 | + raise template.TemplateSyntaxError, "%s tag requires arguments" % token.contents.split()[0] |
1130 | + m = re.search(r'as (\w+)', arg) |
1131 | + if not m: |
1132 | + raise template.TemplateSyntaxError, "%s tag had invalid arguments" % tag_name |
1133 | + (var_name, ) = m.groups() |
1134 | + return NewsYears(var_name) |
1135 | |
1136 | class NewsCategories(template.Node): |
1137 | def __init__(self, var_name): |
1138 | |
1139 | === modified file 'news/urls.py' |
1140 | --- news/urls.py 2009-03-23 20:34:20 +0000 |
1141 | +++ news/urls.py 2010-10-30 22:51:06 +0000 |
1142 | @@ -6,18 +6,18 @@ |
1143 | url(r'^(?P<year>\d{4})/(?P<month>\d{1,2})/(?P<day>\d{1,2})/(?P<slug>[-\w]+)/$', |
1144 | view=news_views.post_detail, |
1145 | name='news_detail'), |
1146 | - # |
1147 | - # url(r'^(?P<year>\d{4})/(?P<month>\d{1,2})/(?P<day>\d{1,2})/$', |
1148 | - # view=news_views.post_archive_day, |
1149 | - # name='news_archive_day'), |
1150 | - # |
1151 | - # url(r'^(?P<year>\d{4})/(?P<month>\d{1,2})/$', |
1152 | - # view=news_views.post_archive_month, |
1153 | - # name='news_archive_month'), |
1154 | - # |
1155 | - # url(r'^(?P<year>\d{4})/$', |
1156 | - # view=news_views.post_archive_year, |
1157 | - # name='news_archive_year'), |
1158 | + |
1159 | + url(r'^(?P<year>\d{4})/(?P<month>\d{1,2})/(?P<day>\d{1,2})/$', |
1160 | + view=news_views.post_archive_day, |
1161 | + name='news_archive_day'), |
1162 | + |
1163 | + url(r'^(?P<year>\d{4})/(?P<month>\d{1,2})/$', |
1164 | + view=news_views.post_archive_month, |
1165 | + name='news_archive_month'), |
1166 | + |
1167 | + url(r'^(?P<year>\d{4})/$', |
1168 | + view=news_views.post_archive_year, |
1169 | + name='news_archive_year'), |
1170 | |
1171 | # url(r'^categories/(?P<slug>[-\w]+)/$', |
1172 | # view=news_views.category_detail, |
1173 | |
1174 | === modified file 'news/views.py' |
1175 | --- news/views.py 2009-03-23 20:34:20 +0000 |
1176 | +++ news/views.py 2010-10-30 22:51:06 +0000 |
1177 | @@ -13,7 +13,6 @@ |
1178 | return list_detail.object_list( |
1179 | request, |
1180 | queryset = Post.objects.published(), |
1181 | - paginate_by = 20, |
1182 | page = page, |
1183 | **kwargs |
1184 | ) |
1185 | |
1186 | === modified file 'pybb/feeds.py' |
1187 | --- pybb/feeds.py 2009-04-08 18:21:36 +0000 |
1188 | +++ pybb/feeds.py 2010-10-30 22:51:06 +0000 |
1189 | @@ -1,8 +1,8 @@ |
1190 | from django.contrib.syndication.feeds import Feed |
1191 | -from django.utils.feedgenerator import Atom1Feed |
1192 | from django.core.urlresolvers import reverse |
1193 | from django.utils.translation import ugettext_lazy as _ |
1194 | from django.core.exceptions import ObjectDoesNotExist |
1195 | +from django.utils.feedgenerator import Atom1Feed, Rss201rev2Feed |
1196 | |
1197 | from pybb.models import Post, Topic, Forum |
1198 | |
1199 | @@ -27,10 +27,10 @@ |
1200 | else: |
1201 | return self.items_for_object(obj) |
1202 | |
1203 | - def link(self,obj): |
1204 | + def link(self, obj): |
1205 | if obj == self.all_objects: |
1206 | return reverse('pybb_index') |
1207 | - return reverse('pybb_forum', args=(obj.pk,)) |
1208 | + return "/ewfwevw%s" % reverse('pybb_forum', args=(obj.pk,)) |
1209 | |
1210 | def get_object(self,bits): |
1211 | """ |
1212 | @@ -46,12 +46,15 @@ |
1213 | ########################## |
1214 | # Individual items below # |
1215 | ########################## |
1216 | - def item_guid(self, obj): |
1217 | + def item_id(self, obj): |
1218 | return str(obj.id) |
1219 | |
1220 | def item_pubdate(self, obj): |
1221 | return obj.created |
1222 | - |
1223 | + |
1224 | + def item_links(self, item): |
1225 | + return [{'href': item.get_absolute_url()}, ] |
1226 | + |
1227 | |
1228 | class LastPosts(PybbFeed): |
1229 | all_title = _('Latest posts on all forums') |
1230 | @@ -66,6 +69,13 @@ |
1231 | def items_for_object(self,obj): |
1232 | return Post.objects.filter( topic__forum = obj ).order_by('-created')[:15] |
1233 | |
1234 | + def item_author_name(self, item): |
1235 | + """ |
1236 | + Takes the object returned by get_object and returns the feeds's |
1237 | + auhor's name as a Python string |
1238 | + """ |
1239 | + return item.user.username |
1240 | + |
1241 | |
1242 | class LastTopics(PybbFeed): |
1243 | all_title = _('Latest topics on all forums') |
1244 | @@ -80,3 +90,10 @@ |
1245 | def items_for_object(self,obj): |
1246 | return Topic.objects.filter( forum = obj ).order_by('-created')[:15] |
1247 | |
1248 | + def item_author_name(self, item): |
1249 | + """ |
1250 | + Takes the object returned by get_object and returns the feeds's |
1251 | + auhor's name as a Python string |
1252 | + """ |
1253 | + return item.user.username |
1254 | + |
1255 | |
1256 | === modified file 'pybb/forms.py' |
1257 | --- pybb/forms.py 2009-04-10 11:35:06 +0000 |
1258 | +++ pybb/forms.py 2010-10-30 22:51:06 +0000 |
1259 | @@ -10,13 +10,15 @@ |
1260 | from pybb.models import Topic, Post, PrivateMessage, Attachment |
1261 | from pybb import settings as pybb_settings |
1262 | |
1263 | +from notification import models as notification |
1264 | + |
1265 | class AddPostForm(forms.ModelForm): |
1266 | name = forms.CharField(label=_('Subject')) |
1267 | attachment = forms.FileField(label=_('Attachment'), required=False) |
1268 | |
1269 | class Meta: |
1270 | model = Post |
1271 | - fields = ['body'] |
1272 | + fields = ['body', 'markup',] |
1273 | |
1274 | def __init__(self, *args, **kwargs): |
1275 | self.user = kwargs.pop('user', None) |
1276 | @@ -25,7 +27,7 @@ |
1277 | self.ip = kwargs.pop('ip', None) |
1278 | super(AddPostForm, self).__init__(*args, **kwargs) |
1279 | |
1280 | - self.fields.keyOrder = ['name', 'body', 'attachment'] |
1281 | + self.fields.keyOrder = ['name', 'body', 'markup', 'attachment'] |
1282 | |
1283 | if self.topic: |
1284 | self.fields['name'].widget = forms.HiddenInput() |
1285 | @@ -47,20 +49,29 @@ |
1286 | |
1287 | def save(self): |
1288 | if self.forum: |
1289 | + topic_is_new = True |
1290 | topic = Topic(forum=self.forum, |
1291 | user=self.user, |
1292 | name=self.cleaned_data['name']) |
1293 | topic.save() |
1294 | else: |
1295 | + topic_is_new = False |
1296 | topic = self.topic |
1297 | |
1298 | post = Post(topic=topic, user=self.user, user_ip=self.ip, |
1299 | - markup="markdown", |
1300 | + markup=self.cleaned_data['markup'], |
1301 | body=self.cleaned_data['body']) |
1302 | post.save() |
1303 | |
1304 | if pybb_settings.ATTACHMENT_ENABLE: |
1305 | self.save_attachment(post, self.cleaned_data['attachment']) |
1306 | + |
1307 | + if topic_is_new: |
1308 | + notification.send(User.objects.all(), "forum_new_topic", |
1309 | + {'topic': topic, 'post':post, 'user':topic.user}) |
1310 | + else: |
1311 | + notification.send(self.topic.subscribers.all(), "forum_new_post", |
1312 | + {'post':post, 'topic':topic, 'user':post.user}) |
1313 | return post |
1314 | |
1315 | |
1316 | |
1317 | === modified file 'pybb/management/__init__.py' |
1318 | --- pybb/management/__init__.py 2009-02-25 16:55:36 +0000 |
1319 | +++ pybb/management/__init__.py 2010-10-30 22:51:06 +0000 |
1320 | @@ -0,0 +1,1 @@ |
1321 | +import pybb_notifications |
1322 | |
1323 | === added file 'pybb/management/pybb_notifications.py' |
1324 | --- pybb/management/pybb_notifications.py 1970-01-01 00:00:00 +0000 |
1325 | +++ pybb/management/pybb_notifications.py 2010-10-30 22:51:06 +0000 |
1326 | @@ -0,0 +1,20 @@ |
1327 | +from django.db.models import signals |
1328 | + |
1329 | +from django.utils.translation import ugettext_noop as _ |
1330 | + |
1331 | +try: |
1332 | + from notification import models as notification |
1333 | + |
1334 | + def create_notice_types(app, created_models, verbosity, **kwargs): |
1335 | + notification.create_notice_type("forum_new_topic", |
1336 | + _("Forum New Topic"), |
1337 | + _("a new topic has been added to the forum"), |
1338 | + default=1) |
1339 | + notification.create_notice_type("forum_new_post", |
1340 | + _("Forum New Post"), |
1341 | + _("a new comment has been posted to a topic you observe")) |
1342 | + |
1343 | + signals.post_syncdb.connect(create_notice_types, |
1344 | + sender=notification) |
1345 | +except ImportError: |
1346 | + print "Skipping creation of NoticeTypes as notification app not found" |
1347 | |
1348 | === modified file 'pybb/models.py' |
1349 | --- pybb/models.py 2010-01-02 23:11:47 +0000 |
1350 | +++ pybb/models.py 2010-10-30 22:51:06 +0000 |
1351 | @@ -18,9 +18,15 @@ |
1352 | if settings.USE_SPHINX: |
1353 | from djangosphinx import SphinxSearch |
1354 | |
1355 | +try: |
1356 | + from notification import models as notification |
1357 | + from django.db.models import signals |
1358 | +except ImportError: |
1359 | + notification = None |
1360 | + |
1361 | MARKUP_CHOICES = ( |
1362 | ('markdown', 'markdown'), |
1363 | - # ('bbcode', 'bbcode'), |
1364 | + ('bbcode', 'bbcode'), |
1365 | ) |
1366 | |
1367 | |
1368 | @@ -127,10 +133,12 @@ |
1369 | return reverse('pybb_topic', args=[self.id]) |
1370 | |
1371 | def save(self, *args, **kwargs): |
1372 | - if self.id is None: |
1373 | + new = self.id is None |
1374 | + if new: |
1375 | self.created = datetime.now() |
1376 | super(Topic, self).save(*args, **kwargs) |
1377 | |
1378 | + |
1379 | def update_read(self, user): |
1380 | read, new = Read.objects.get_or_create(user=user, topic=self) |
1381 | if not new: |
1382 | @@ -207,6 +215,7 @@ |
1383 | def save(self, *args, **kwargs): |
1384 | if self.created is None: |
1385 | self.created = datetime.now() |
1386 | + |
1387 | self.render() |
1388 | |
1389 | new = self.id is None |
1390 | @@ -339,5 +348,8 @@ |
1391 | self.path) |
1392 | |
1393 | |
1394 | +#if notification is not None: |
1395 | +# signals.post_save.connect(notification.handle_observations, sender=Post) |
1396 | + |
1397 | from pybb import signals |
1398 | signals.setup_signals() |
1399 | |
1400 | === modified file 'pybb/templatetags/pybb_extras.py' |
1401 | --- pybb/templatetags/pybb_extras.py 2009-12-06 09:53:08 +0000 |
1402 | +++ pybb/templatetags/pybb_extras.py 2010-10-30 22:51:06 +0000 |
1403 | @@ -1,16 +1,21 @@ |
1404 | +# coding=UTF-8 |
1405 | + |
1406 | from datetime import datetime, timedelta |
1407 | +import re |
1408 | +from pprint import pprint |
1409 | |
1410 | from django import template |
1411 | from django.core.urlresolvers import reverse |
1412 | from django.utils.safestring import mark_safe |
1413 | from django.template import RequestContext |
1414 | +from django.template.defaultfilters import stringfilter |
1415 | from django.utils.encoding import smart_unicode |
1416 | from django.db import settings |
1417 | from django.utils.html import escape |
1418 | from django.utils.translation import ugettext as _ |
1419 | from django.utils import dateformat |
1420 | |
1421 | -from pybb.models import Forum, Topic, Read, PrivateMessage |
1422 | +from pybb.models import Post, Forum, Topic, Read, PrivateMessage |
1423 | from pybb.unread import cache_unreads |
1424 | from pybb import settings as pybb_settings |
1425 | |
1426 | @@ -73,6 +78,13 @@ |
1427 | 'label': label, |
1428 | } |
1429 | |
1430 | +@register.inclusion_tag('pybb/last_posts.html', takes_context=True) |
1431 | +def pybb_last_posts(context, number = 5): |
1432 | + last_posts = Post.objects.order_by('-created').select_related()[:5] |
1433 | + return { |
1434 | + 'posts': last_posts, |
1435 | + 'user': context['user'], |
1436 | + } |
1437 | |
1438 | @register.simple_tag |
1439 | def pybb_link(object, anchor=u''): |
1440 | @@ -179,3 +191,122 @@ |
1441 | @register.filter |
1442 | def pybb_unreads(qs, user): |
1443 | return cache_unreads(qs, user) |
1444 | + |
1445 | +@register.filter |
1446 | +@stringfilter |
1447 | +def pybb_cut_string(value, arg): |
1448 | + if len(value) > arg: |
1449 | + return value[0:arg-3] + "..." |
1450 | + else: |
1451 | + return value |
1452 | + |
1453 | +@register.filter |
1454 | +@stringfilter |
1455 | +def pybb_output_bbcode(post): |
1456 | + """ |
1457 | + post = post.replace('[b]', '<span class="bold">') |
1458 | + post = post.replace('[i]', '<span class="italic">') |
1459 | + post = post.relpace('[u]', '<span class="underline">') |
1460 | + |
1461 | + post = post.replace('[/b]', '</span>') |
1462 | + post = post.replace('[/i]', '</span>') |
1463 | + post = post.replace('[/u]', '</span>') |
1464 | + """ |
1465 | + return pprint(post) |
1466 | + |
1467 | +@register.simple_tag |
1468 | +def pybb_render_post(post, mode='html'): |
1469 | + """ |
1470 | + Process post contents and replace special tags with human readeable messages. |
1471 | + |
1472 | + Arguments: |
1473 | + post - the ``Post`` instance |
1474 | + mode - "html" or "text". Control which field to use ``body_html`` or ``body_text`` |
1475 | + |
1476 | + Currently following tags are supported: |
1477 | + |
1478 | + @@@AUTOJOIN-(SECONDS)@@@ - autojoin message |
1479 | + |
1480 | + """ |
1481 | + |
1482 | + def render_autojoin_message(match): |
1483 | + time_diff = int(match.group(1)) / 60 |
1484 | + |
1485 | + join_message = ungettext(u"Added after %s minute", |
1486 | + u"Added after %s minutes", |
1487 | + time_diff) |
1488 | + join_message %= time_diff |
1489 | + |
1490 | + if mode == 'html': |
1491 | + return u'<div class="autojoin-message">%s</div>' % join_message |
1492 | + else: |
1493 | + return join_message |
1494 | + |
1495 | + |
1496 | + body = getattr(post, 'body_%s' % mode) |
1497 | + re_tag = re.compile(r'@@@AUTOJOIN-(\d+)@@@') |
1498 | + return re_tag.sub(render_autojoin_message, body) |
1499 | + |
1500 | +""" |
1501 | +Spielwiese, Playground, Cour de récréati ;) |
1502 | +""" |
1503 | + |
1504 | +@register.filter |
1505 | +@stringfilter |
1506 | +def pybb_trim_string(value, arg): |
1507 | + """ |
1508 | + Mit "arg" ist es moeglich 1 oder mehr Werte der Funtion zu Uebergeben. Wenn |
1509 | + mehr als 1 Wert genutzt werden soll wird es durch "-" getrennt. Jeder Wert |
1510 | + kann entweder die Beschraenkung fuer die Zeichen oder Woerter beinhalten. |
1511 | + Um das eindeutig zu identifizieren Wort "w" und Zeichen "z". |
1512 | + Beispiel: |
1513 | + 1. w:10 -> Auf 10 Worte beschraenken |
1514 | + 2. z:250 -> Auf 250 Zeichen beschraenken |
1515 | + 3. w:10-z:250 -> Auf 10 Worte und 250 Zeichen beschraenken |
1516 | + |
1517 | + Beim spaeteren drueber nachdenken ist das mit den Worten eig. egal und |
1518 | + koennte wieder entfernt werden, aber vllt findet ja einer noch einen nutzen |
1519 | + dafuer ;) |
1520 | + """ |
1521 | + _iWord = "" |
1522 | + _iSign = "" |
1523 | + _lArguments = arg.split("-") |
1524 | + _sOption = _lArguments[0].split(":")[0] |
1525 | + _iValue = _lArguments[0].split(":")[1] |
1526 | + if len(_lArguments) == 1: |
1527 | + if _sOption == "w": |
1528 | + _iWord = int(_iValue) |
1529 | + elif _sOption == "z": |
1530 | + _iSign = int(_iValue) |
1531 | + else: |
1532 | + pass |
1533 | + elif len(_lArguments) == 2: |
1534 | + if _sOption == "w": |
1535 | + _iWord = int(_iValue) |
1536 | + _iSign = int(_lArguments[1].split(":")[1]) |
1537 | + elif _sOption == "z": |
1538 | + _iSign = int(_iValue) |
1539 | + _iWord = int(_lArguments[1].split(":")[1]) |
1540 | + else: |
1541 | + pass |
1542 | + else: |
1543 | + pass |
1544 | + if _iWord != "" or _iSign != "": |
1545 | + _iWordCount = int(len(value.split(" "))) |
1546 | + _iSignCount = int(len(value)) |
1547 | + """ |
1548 | + Hier waere noch die Ueberlegung wenn 2 Werte gesetzt das man dann |
1549 | + wirklich nur ganze Woerter anzeigen laesst ohne sie zu beschneiden |
1550 | + """ |
1551 | + if _iWord != "" and _iSign != "" and _iSignCount >= _iSign: |
1552 | + return value[0:_iSign] + "..." |
1553 | + elif _iWord != "" and _iSign == "" and _iWordCount >= _iWord: |
1554 | + return ' '.join(value.split(" ")[0:_iWord]) + "..." |
1555 | + elif _iWord == "" and _iSign != "" and _iSignCount >= _iSign: |
1556 | + return value[0:_iSign] + "..." |
1557 | + else: |
1558 | + return value |
1559 | + # return " " + str(len(value)) + " " + str(len(value.split(" "))) + " " + str(arg) + " " + str(_iWord) + ":" + str(_iWordCount) + " " + str(_iSign) + ":" + str(_iSignCount) |
1560 | + else: |
1561 | + return value |
1562 | + |
1563 | |
1564 | === modified file 'pybb/urls.py' |
1565 | --- pybb/urls.py 2009-03-17 15:02:13 +0000 |
1566 | +++ pybb/urls.py 2010-10-30 22:51:06 +0000 |
1567 | @@ -37,4 +37,8 @@ |
1568 | |
1569 | # API |
1570 | url('^api/post_ajax_preview/$', views.post_ajax_preview, name='pybb_post_ajax_preview'), |
1571 | + |
1572 | + # Subsciption |
1573 | + url('^topic/(?P<topic_id>\d+)/subscribe/$', views.add_subscription, name='pybb_add_subscription'), |
1574 | + url('^topic/(?P<topic_id>\d+)/unsubscribe/$', views.delete_subscription, name='pybb_delete_subscription'), |
1575 | ) |
1576 | |
1577 | === modified file 'pybb/util.py' |
1578 | --- pybb/util.py 2009-02-28 12:03:41 +0000 |
1579 | +++ pybb/util.py 2010-10-30 22:51:06 +0000 |
1580 | @@ -173,14 +173,12 @@ |
1581 | text = user.username + " wrote:\n" + text |
1582 | |
1583 | # if markup == 'markdown': |
1584 | - if markup: |
1585 | + if markup == 'markdown': |
1586 | return '>'+text.replace('\n','\n>').replace('\r','\n>') + '\n' |
1587 | + elif markup == 'bbcode': |
1588 | + return '[quote]\n%s\n[/quote]\n' % text |
1589 | else: |
1590 | return text |
1591 | - # elif markup == 'bbcode': |
1592 | - # return '[quote]\n%s\n[/quote]\n' % text |
1593 | - # else: |
1594 | - # return text |
1595 | |
1596 | |
1597 | def absolute_url(path): |
1598 | |
1599 | === modified file 'pybb/views.py' |
1600 | --- pybb/views.py 2009-06-08 13:26:43 +0000 |
1601 | +++ pybb/views.py 2010-10-30 22:51:06 +0000 |
1602 | @@ -18,6 +18,11 @@ |
1603 | from pybb import settings as pybb_settings |
1604 | from pybb.orm import load_related |
1605 | |
1606 | +try: |
1607 | + from notification import models as notification |
1608 | +except ImportError: |
1609 | + notification = None |
1610 | + |
1611 | def index_ctx(request): |
1612 | quick = {'posts': Post.objects.count(), |
1613 | 'topics': Topic.objects.count(), |
1614 | @@ -165,6 +170,8 @@ |
1615 | |
1616 | if form.is_valid(): |
1617 | post = form.save(); |
1618 | + if not topic: |
1619 | + post.topic.subscribers.add(request.user) |
1620 | return HttpResponseRedirect(post.get_absolute_url()) |
1621 | |
1622 | if topic: |
1623 | |
1624 | === modified file 'settings.py' |
1625 | --- settings.py 2010-09-26 13:30:30 +0000 |
1626 | +++ settings.py 2010-10-30 22:51:06 +0000 |
1627 | @@ -199,6 +199,7 @@ |
1628 | 'widelands.wlevents', |
1629 | 'widelands.wlmaps', |
1630 | 'widelands.wlscreens', |
1631 | + 'widelands.wlggz', |
1632 | |
1633 | # Modified 3rd party apps |
1634 | 'widelands.wiki', # This is based on wikiapp, but has some local modifications |
1635 | |
1636 | === modified file 'templates/django_messages/compose.html' |
1637 | --- templates/django_messages/compose.html 2010-03-14 14:13:24 +0000 |
1638 | +++ templates/django_messages/compose.html 2010-10-30 22:51:06 +0000 |
1639 | @@ -10,28 +10,23 @@ |
1640 | {% include "django_messages/inlines/navigation.html" %} |
1641 | <br /> |
1642 | <br /> |
1643 | -<div class="message_item"> |
1644 | +<div class="box_item_model fixed_site border"> |
1645 | <h3 class="title">{% trans "Compose Message"%}</h3> |
1646 | - <div class="content"> |
1647 | - <form action="" method="post"> |
1648 | - <table class="text" width="100%" cellspacing="1"> |
1649 | - {% for field in form %} |
1650 | - <tr> |
1651 | - <td {% ifequal field.name "body" %}valign="top" {% endifequal %}width="80" class="{% cycle "odd" "even" %}">{{ field.label_tag }}:</td> |
1652 | - <td class="{% cycle "odd" "even" %}">{{ field }}</td> |
1653 | - <td width="1%" class="{% cycle "odd" "even" %}"></td> |
1654 | - </tr> |
1655 | - {% endfor %} |
1656 | - </table> |
1657 | - </div> |
1658 | - <table class="bottom_line" width="100%"> |
1659 | - <tr> |
1660 | - <td class="admin"> |
1661 | - <input type="submit" value="{% trans "Send" %} »"/> |
1662 | - </td> |
1663 | - <tr> |
1664 | - </table> |
1665 | - </form> |
1666 | + <form action="" method="post"> |
1667 | + <div class="content"> |
1668 | + <table class="text full_site" cellspacing="1"> |
1669 | + {% for field in form %} |
1670 | + <tr> |
1671 | + <td width="80" class="{% cycle "odd" "even" %}{% ifequal field.name "body" %} show_left{% endifequal %}">{{ field.label_tag }}:</td> |
1672 | + <td class="{% cycle "odd" "even" %}">{{ field }}</td> |
1673 | + </tr> |
1674 | + {% endfor %} |
1675 | + </table> |
1676 | + </div> |
1677 | + <div class="info_line show_center"> |
1678 | + <input type="submit" value="{% trans "Send" %} »"/> |
1679 | + </div> |
1680 | + </form> |
1681 | </div> |
1682 | |
1683 | {% endblock %} |
1684 | |
1685 | === modified file 'templates/django_messages/inbox.html' |
1686 | --- templates/django_messages/inbox.html 2010-03-14 14:13:24 +0000 |
1687 | +++ templates/django_messages/inbox.html 2010-10-30 22:51:06 +0000 |
1688 | @@ -7,15 +7,17 @@ |
1689 | |
1690 | {% block content %} |
1691 | {% include "django_messages/inlines/navigation.html" %} |
1692 | - |
1693 | - <h1>{% trans "Inbox" %}</h1> |
1694 | + <br /> |
1695 | + <br /> |
1696 | + <div class="box_item_model border"> |
1697 | + <h3 class="title">{% trans "Inbox" %}</h3> |
1698 | <table class="messages" cellspacing="1"> |
1699 | <thead> |
1700 | <tr> |
1701 | - <th>{% trans "Sender" %}</th> |
1702 | - <th>{% trans "Subject" %}</th> |
1703 | - <th>{% trans "Received" %}</th> |
1704 | - <th>{% trans "Action" %}</th> |
1705 | + <td>{% trans "Sender" %}</td> |
1706 | + <td>{% trans "Subject" %}</td> |
1707 | + <td>{% trans "Received" %}</td> |
1708 | + <td>{% trans "Action" %}</td> |
1709 | </tr> |
1710 | </thead> |
1711 | <tbody> |
1712 | @@ -24,4 +26,5 @@ |
1713 | {% endfor %} |
1714 | </tbody> |
1715 | </table> |
1716 | + </div> |
1717 | {% endblock %} |
1718 | |
1719 | === modified file 'templates/django_messages/inlines/navigation.html' |
1720 | --- templates/django_messages/inlines/navigation.html 2009-03-15 20:26:08 +0000 |
1721 | +++ templates/django_messages/inlines/navigation.html 2010-10-30 22:51:06 +0000 |
1722 | @@ -1,19 +1,19 @@ |
1723 | {% load i18n %} |
1724 | |
1725 | +{% if user.is_authenticated %} |
1726 | <div> |
1727 | - <table width="100%"> |
1728 | - <tr> |
1729 | - <td align="left"> |
1730 | - <a href="{% url profile_view %} ">{% trans "Profile" %}</a> |
1731 | - | <a href="{% url notification_notices %} ">{% trans "Notifications" %}</a> |
1732 | - </td> |
1733 | - <td align="right" style="table-layout: fixed;"> |
1734 | - <a href="{% url messages_inbox %} ">{% trans "Inbox" %}</a> |
1735 | - | <a href="{% url messages_outbox %} ">{% trans "Sent Messages" %}</a> |
1736 | - | <a href="{% url messages_compose %} ">{% trans "New Message" %}</a> |
1737 | - | <a href="{% url messages_trash %} ">{% trans "Message Trash" %}</a> |
1738 | - </td> |
1739 | - </tr> |
1740 | - </table> |
1741 | + <table width="100%"> |
1742 | + <tr> |
1743 | + <td width=""> |
1744 | + </td> |
1745 | + <td width="370" align="right" style="table-layout: fixed; background-image: url(http://wl-testbed.dyndns.org/wlmedia/img/background-4F4F4F.png);"> |
1746 | + <a href="{% url messages_inbox %} ">{% trans "Inbox" %}</a> |
1747 | + | <a href="{% url messages_outbox %} ">{% trans "Sent Messages" %}</a> |
1748 | + | <a href="{% url messages_compose %} ">{% trans "New Message" %}</a> |
1749 | + | <a href="{% url messages_trash %} ">{% trans "Message Trash" %}</a> |
1750 | + </td> |
1751 | + </tr> |
1752 | + </table> |
1753 | </div> |
1754 | +{% endif %} |
1755 | |
1756 | |
1757 | === modified file 'templates/django_messages/outbox.html' |
1758 | --- templates/django_messages/outbox.html 2010-03-14 14:13:24 +0000 |
1759 | +++ templates/django_messages/outbox.html 2010-10-30 22:51:06 +0000 |
1760 | @@ -7,14 +7,17 @@ |
1761 | |
1762 | {% block content %} |
1763 | {% include "django_messages/inlines/navigation.html" %} |
1764 | -<h1>{% trans "Sent Messages" %}</h1> |
1765 | +<br /> |
1766 | +<br /> |
1767 | +<div class="box_item_model border"> |
1768 | +<h3 class="title">{% trans "Sent Messages" %}</h3> |
1769 | <table class="messages" cellspacing="1"> |
1770 | <thead> |
1771 | <tr> |
1772 | - <th>{% trans "Recipient" %}</th> |
1773 | - <th>{% trans "Subject" %}</th> |
1774 | - <th>{% trans "Sent" %}</th> |
1775 | - <th>{% trans "Action" %}</th> |
1776 | + <td>{% trans "Recipient" %}</td> |
1777 | + <td>{% trans "Subject" %}</td> |
1778 | + <td>{% trans "Sent" %}</td> |
1779 | + <td>{% trans "Action" %}</td> |
1780 | </tr> |
1781 | </thead> |
1782 | <tbody> |
1783 | @@ -23,4 +26,5 @@ |
1784 | {% endfor %} |
1785 | </tbody> |
1786 | </table> |
1787 | +</div> |
1788 | {% endblock %} |
1789 | |
1790 | === modified file 'templates/django_messages/trash.html' |
1791 | --- templates/django_messages/trash.html 2010-03-14 14:13:24 +0000 |
1792 | +++ templates/django_messages/trash.html 2010-10-30 22:51:06 +0000 |
1793 | @@ -7,22 +7,33 @@ |
1794 | |
1795 | {% block content %} |
1796 | {% include "django_messages/inlines/navigation.html" %} |
1797 | -<h1>{% trans "Deleted Messages" %}</h1> |
1798 | -<table class="messages" cellspacing="1"> |
1799 | - <thead> |
1800 | - <tr> |
1801 | - <th>{% trans "Sender" %}</th> |
1802 | - <th>{% trans "Subject" %}</th> |
1803 | - <th>{% trans "Date" %}</th> |
1804 | - <th>{% trans "Action" %}</th> |
1805 | - </tr> |
1806 | - </thead> |
1807 | - <tbody> |
1808 | +<br /> |
1809 | +<br /> |
1810 | +<div class="box_item_model border"> |
1811 | + <h3 class="title">{% trans "Deleted Messages" %}</h3> |
1812 | + <table class="messages" cellspacing="1"> |
1813 | + <thead> |
1814 | + <tr> |
1815 | + <td>{% trans "Sender" %}</td> |
1816 | + <td>{% trans "Subject" %}</td> |
1817 | + <td>{% trans "Date" %}</td> |
1818 | + <td>{% trans "Action" %}</td> |
1819 | + </tr> |
1820 | + </thead> |
1821 | + <tbody> |
1822 | {% for message in message_list %} |
1823 | {% include "django_messages/inlines/message_row.html" %} |
1824 | {% endfor %} |
1825 | - </tbody> |
1826 | -</table> |
1827 | + </tbody> |
1828 | + </table> |
1829 | +</div> |
1830 | <br /> |
1831 | -<p>{% trans "Deleted Messages are removed from the trash at unregular intervals, don't rely on this feature for long-time storage." %}</p> |
1832 | +<div class="box_item_model border"> |
1833 | + <div class="info_line show_center errormessage"> |
1834 | + <br /> |
1835 | + {% trans "Deleted Messages are removed from the trash at unregular intervals, don't rely on this feature for long-time storage." %} |
1836 | + <br /> |
1837 | + <br /> |
1838 | + </div> |
1839 | +</div> |
1840 | {% endblock %} |
1841 | |
1842 | === modified file 'templates/mainpage.html' |
1843 | --- templates/mainpage.html 2009-05-25 10:47:04 +0000 |
1844 | +++ templates/mainpage.html 2010-10-30 22:51:06 +0000 |
1845 | @@ -16,58 +16,54 @@ |
1846 | {{ block.super}}{% endblock %} |
1847 | {% block content %} |
1848 | |
1849 | - |
1850 | -<div class="blockContent"> |
1851 | - <center> |
1852 | - <h1>Welcome to Widelands.org</h1> |
1853 | - <h3>Home of the free realtime strategy game and its community</h3> |
1854 | - <p> |
1855 | - <br/> |
1856 | - <img src='{{ MEDIA_URL }}/img/HomepageSplash.jpg' title='Widelands' alt='Widelands-Screenshot' /> |
1857 | - <br/><br/> |
1858 | - </p> |
1859 | - </center> |
1860 | +<div class="block_center"> |
1861 | + <h1>Welcome to Widelands.org</h1> |
1862 | + <h3>Home of the free realtime strategy game and its community</h3> |
1863 | + <br/> |
1864 | + <img src='{{ MEDIA_URL }}/img/HomepageSplash.jpg' title='Widelands' alt='Widelands-Screenshot' /> |
1865 | + <br/> |
1866 | + <br/> |
1867 | </div> |
1868 | |
1869 | <!-- Begin of text --> |
1870 | <div class="itemText"> |
1871 | - <p> |
1872 | - Widelands is an open source (GPLed) real-time strategy |
1873 | - game. It is built upon the <a |
1874 | - href='http://www.libsdl.org'>SDL</a> and other open |
1875 | - source libraries and is (and will always be) under heavy development. If |
1876 | - you knew Settlers I & II™ (© Bluebyte), then you |
1877 | - already have a rough idea what Widelands is all about because |
1878 | - widelands is heavily inspired by those two games. |
1879 | - </p> |
1880 | - <p> |
1881 | - You can find detailed information on the game in our <a |
1882 | - href="/wiki">Wiki</a>. I you want to get a quick Overview, go to |
1883 | - the <a title="General Info" href="{% url wiki_article "GeneralInfo" %}">General Info</a> page. |
1884 | - </p> |
1885 | - |
1886 | - <p> |
1887 | - You can download the game on the <a href="{% url wiki_article "DownloadPage" %}">DownloadPage</a>. You can also find |
1888 | - installation instructions and various troubleshooting hints |
1889 | - there. |
1890 | - </p> |
1891 | - |
1892 | - <p> |
1893 | - You are also invited to visit the <a |
1894 | - href="{% url pybb_index %}">Forums</a>: |
1895 | - chat with the community about the game, find playing mates for multiplayer, |
1896 | - help translating, discuss graphics, music and much more. |
1897 | - </p> |
1898 | + <p> |
1899 | + Widelands is an open source (GPLed) real-time strategy game. |
1900 | + It is built upon the <a href='http://www.libsdl.org'>SDL</a> and other |
1901 | + open source libraries and is (and will always be) under heavy |
1902 | + development. If you knew Settlers I & II™ (© Bluebyte), then |
1903 | + you already have a rough idea what Widelands is all about because |
1904 | + widelands is heavily inspired by those two games. |
1905 | + </p> |
1906 | + <p> |
1907 | + You can find detailed information on the game in our |
1908 | + <a href="/wiki">Wiki</a>. I you want to get a quick Overview, go to the |
1909 | + <a title="General Info" href="{% url wiki_article "GeneralInfo" %}">General Info</a> |
1910 | + page. |
1911 | + </p> |
1912 | + <p> |
1913 | + You can download the game on the |
1914 | + <a href="{% url wiki_article "DownloadPage" %}">DownloadPage</a>. You |
1915 | + can also find installation instructions and various troubleshooting |
1916 | + hints there. |
1917 | + </p> |
1918 | + <p> |
1919 | + You are also invited to visit the <a href="{% url pybb_index %}">Forums</a>: |
1920 | + chat with the community about the game, find playing mates for |
1921 | + multiplayer, help translating, discuss graphics, music and much more. |
1922 | + </p> |
1923 | </div> |
1924 | |
1925 | {% get_latest_posts 3 as latest_posts_list %} |
1926 | {% if latest_posts_list %} |
1927 | - <h2><a href="{% url news_index %}">Latest news:</a></h2> |
1928 | - {% for object in latest_posts_list %} |
1929 | - {% include "news/inlines/post_detail.html" %} |
1930 | - <br /> |
1931 | - {% endfor %} |
1932 | - <a href="{% url news_index %}">News archive</a> |
1933 | +<h2> |
1934 | + <a href="{% url news_index %}">Latest news:</a> |
1935 | +</h2> |
1936 | + {% for object in latest_posts_list %} |
1937 | + {% include "news/inlines/post_detail.html" %} |
1938 | + <br /> |
1939 | + {% endfor %} |
1940 | + <a href="{% url news_index %}">News archive</a> |
1941 | {% endif %} |
1942 | |
1943 | {% endblock %} |
1944 | |
1945 | === modified file 'templates/mainpage/online_users.html' |
1946 | --- templates/mainpage/online_users.html 2009-03-15 17:19:34 +0000 |
1947 | +++ templates/mainpage/online_users.html 2010-10-30 22:51:06 +0000 |
1948 | @@ -1,9 +1,12 @@ |
1949 | {% load wlprofile %} |
1950 | |
1951 | {% if users %} |
1952 | - <ul> |
1953 | - {% for user in users %} |
1954 | - <li><a href="{% url profile_view user %}">{{user.username}}</a></li> |
1955 | - {% endfor %} |
1956 | - </ul> |
1957 | + <h3 class="box_title">Currently online</h3> |
1958 | + <div class="box_content"> |
1959 | + <ul> |
1960 | + {% for user in users %} |
1961 | + <li><a href="{% url profile_view user %}">{{user.username}}</a></li> |
1962 | + {% endfor %} |
1963 | + </ul> |
1964 | + </div> |
1965 | {% endif %} |
1966 | |
1967 | === modified file 'templates/navigation.html' |
1968 | --- templates/navigation.html 2010-05-13 09:45:42 +0000 |
1969 | +++ templates/navigation.html 2010-10-30 22:51:06 +0000 |
1970 | @@ -38,7 +38,9 @@ |
1971 | <li><a href="{% url pybb_forum 12 %}">Translations & Internationalization</a></li> |
1972 | </ul> |
1973 | </li> |
1974 | -<li><a href="{% url webchat_index %}">IRC Chat</a></li> |
1975 | +<li> |
1976 | + <a href="{% url webchat_index %}">IRC Chat</a> |
1977 | +</li> |
1978 | <li> |
1979 | <a href="{% url wiki_article "DevelopmentPage" %}">Development</a> |
1980 | <ul> |
1981 | @@ -50,4 +52,16 @@ |
1982 | <li><a href="https://bugs.launchpad.net/widelands-website">Website Bugtracker</a></li> |
1983 | </ul> |
1984 | </li> |
1985 | - |
1986 | + <!-- |
1987 | +<li> |
1988 | + <a href="{% url wlggz_main %}">Online Gaming</a> |
1989 | + <ul> |
1990 | + <li><a href="{% url wlggz_ranking %}">GGZ Ranking</a></li> |
1991 | + <li><a href="{% url wlggz_matches %}">GGZ Matches</a></li> |
1992 | + {% if user.is_authenticated %} |
1993 | + <li><a href="{% url wlggz_userstats %}">GGZ Status</a></li> |
1994 | + {% endif %} |
1995 | + <li><a href="{% url wiki_article "InternetGaming" %}">HowTo</a></li> |
1996 | + </ul> |
1997 | +</li> |
1998 | + --> |
1999 | |
2000 | === modified file 'templates/news/inlines/post_detail.html' |
2001 | --- templates/news/inlines/post_detail.html 2010-01-02 15:32:46 +0000 |
2002 | +++ templates/news/inlines/post_detail.html 2010-10-30 22:51:06 +0000 |
2003 | @@ -6,50 +6,52 @@ |
2004 | {% endcomment %} |
2005 | {% load threadedcommentstags %} |
2006 | {% load news wl_markdown tagging_tags wlprofile custom_date %} |
2007 | - |
2008 | - |
2009 | - <div class="news_item"> |
2010 | - <h3 class="title">{# TODO: categories! #} {{ object.title }}</h3> |
2011 | - <div class="info_line"> |
2012 | - <span class="news_poster">Posted by {{object.author|user_link}}</span> |
2013 | - <span class="news_post_date">on {{ object.publish|custom_date:user }}</span> |
2014 | - </div> |
2015 | - <div class="content"> |
2016 | - {% if object.has_image %} |
2017 | - <span class="news_image"><img src='{{MEDIA_URL}}{{ object.image }}' alt='{{ object.image_alt }}' /></span> |
2018 | - <div class="text" style='min-height: {{ object.image.height }}px;'> |
2019 | - {% else %} |
2020 | - <div class="text"> |
2021 | - {% endif %} |
2022 | - {{ object.body|wl_markdown:"safe" }} |
2023 | - </div> |
2024 | - </div> |
2025 | - |
2026 | - <table class="bottom_line" width="100%"> |
2027 | - <tr> |
2028 | - {% get_comment_count for object as ccount %} |
2029 | - <td class="comments"> |
2030 | - <a href="{{ object.get_absolute_url }}">{{ ccount }} comments</a> |
2031 | - </td> |
2032 | - |
2033 | - <td class="admin"> |
2034 | - {% if perms.news %} |
2035 | - {% if perms.news.post_can_add %}<a href="/admin/news/post/add/">Add New Post</a>{% endif %} |
2036 | - {% if perms.news.post_can_edit %}| <a href="/admin/news/post/{{object.id}}/">Edit</a>{% endif %} |
2037 | - {% if perms.news.post_can_delete %}| <a href="/admin/news/post/{{object.id}}/delete/">Delete</a>{% endif %} |
2038 | - {% endif %} |
2039 | - </td> |
2040 | - |
2041 | - {% tags_for_object object as tag_list %} |
2042 | - <td class="tags"> |
2043 | - {% if tag_list %} |
2044 | - <strong>Tags:</strong> |
2045 | - {% for tag in tag_list %} |
2046 | - {{ tag }}{% if not forloop.last %}, {% endif %} |
2047 | - {% endfor %} |
2048 | - {% endif %} |
2049 | - </td> |
2050 | - </tr> |
2051 | - |
2052 | - </table> |
2053 | - </div> |
2054 | + <div class="box_item_model border"> |
2055 | + <h3 class="title">{# TODO: categories! #} {{ object.title }}</h3> |
2056 | + <div class="info_line"> |
2057 | + <span class="news_poster">Posted by {{object.author|user_link}}</span> |
2058 | + <span class="news_post_date">on {{ object.publish|custom_date:user }}</span> |
2059 | + </div> |
2060 | + <div class="content"> |
2061 | +{% if object.has_image %} |
2062 | + <span class="news_image"><img src='{{MEDIA_URL}}{{ object.image }}' alt='{{ object.image_alt }}' /></span> |
2063 | + <div class="text" style='min-height: {{ object.image.height }}px;'> |
2064 | +{% else %} |
2065 | + <div class="text"> |
2066 | +{% endif %} |
2067 | +{{ object.body|wl_markdown:"safe" }} |
2068 | + </div> |
2069 | + </div> |
2070 | + |
2071 | + <table class="info_line full_site"> |
2072 | + <tr> |
2073 | +{% get_comment_count for object as ccount %} |
2074 | + <td class="comments show_left"> |
2075 | + <a href="{{ object.get_absolute_url }}">{{ ccount }} comments</a> |
2076 | + </td> |
2077 | + <td class="show_center"> |
2078 | +{% if perms.news %} |
2079 | + {% if perms.news.post_can_add %} |
2080 | + <a href="/admin/news/post/add/">Add New Post</a> |
2081 | + {% endif %} |
2082 | + {% if perms.news.post_can_edit %} |
2083 | + | <a href="/admin/news/post/{{object.id}}/">Edit</a> |
2084 | + {% endif %} |
2085 | + {% if perms.news.post_can_delete %} |
2086 | + | <a href="/admin/news/post/{{object.id}}/delete/">Delete</a> |
2087 | + {% endif %} |
2088 | +{% endif %} |
2089 | + </td> |
2090 | +{% tags_for_object object as tag_list %} |
2091 | + <td class="show_right"> |
2092 | +{% if tag_list %} |
2093 | + <strong>Tags:</strong> |
2094 | + {% for tag in tag_list %} |
2095 | + {{ tag }} |
2096 | + {% if not forloop.last %}, {% endif %} |
2097 | + {% endfor %} |
2098 | +{% endif %} |
2099 | + </td> |
2100 | + </tr> |
2101 | + </table> |
2102 | + </div> |
2103 | |
2104 | === modified file 'templates/news/post_archive_day.html' |
2105 | --- templates/news/post_archive_day.html 2009-03-19 06:46:41 +0000 |
2106 | +++ templates/news/post_archive_day.html 2010-10-30 22:51:06 +0000 |
2107 | @@ -1,23 +1,29 @@ |
2108 | {% extends "news/base_news.html" %} |
2109 | {% load custom_date %} |
2110 | - |
2111 | +{% load pagination_tags %} |
2112 | {% block title %}Post archive for {{ day|date:"d F Y" }}{% endblock %} |
2113 | {% block body_class %}{{ block.super }} post_archive_day{% endblock %} |
2114 | |
2115 | - |
2116 | -{% block content_title %} |
2117 | - <h2>Post archive for {{ day|date:"d F Y" }}</h2> |
2118 | -{% endblock %} |
2119 | - |
2120 | - |
2121 | {% block content %} |
2122 | - <div class="post_list"> |
2123 | - {% for post in object_list %} |
2124 | - <div> |
2125 | - <h3 class="title"><a href="{{ post.get_absolute_url }}">{{ post.title }}</a></h3> |
2126 | - <p class="date">{{ post.publish|custom_date:user }}</p> |
2127 | - <p class="tease">{{ post.tease }}</p> |
2128 | +{% include "django_messages/inlines/navigation.html" %} |
2129 | +<br /> |
2130 | +<br /> |
2131 | +<div class="muttis_liebling"> |
2132 | + <div class="box_item_model even show_center"> |
2133 | + <a href="{% url news_index %}{{ day|date:"Y" }}/{{ day|date:"m" }}">Archiv {{ day|date:"F" }}</a> |
2134 | + {% autopaginate object_list 10 %} |
2135 | + {% paginate %} |
2136 | </div> |
2137 | + <br /> |
2138 | + {% for object in object_list %} |
2139 | + {% include "news/inlines/post_detail.html" %} |
2140 | + <br /> |
2141 | {% endfor %} |
2142 | - </div> |
2143 | + <br /> |
2144 | + {% if page_obj.has_other_pages %} |
2145 | + <div class="box_item_model even show_center"> |
2146 | + {% paginate %} |
2147 | + </div> |
2148 | + {% endif %} |
2149 | +</div> |
2150 | {% endblock %} |
2151 | |
2152 | === modified file 'templates/news/post_archive_month.html' |
2153 | --- templates/news/post_archive_month.html 2009-03-23 17:44:44 +0000 |
2154 | +++ templates/news/post_archive_month.html 2010-10-30 22:51:06 +0000 |
2155 | @@ -1,22 +1,33 @@ |
2156 | {% extends "news/base_news.html" %} |
2157 | {% load custom_date %} |
2158 | - |
2159 | +{% load news %} |
2160 | +{% load pagination_tags %} |
2161 | |
2162 | {% block title %}Post archive for {{ month|date:"F Y" }}{% endblock %} |
2163 | {% block body_class %}{{ block.super }} post_archive_month{% endblock %} |
2164 | |
2165 | - |
2166 | -{% block content_title %} |
2167 | - <h2>Post archive for {{ month|date:"F Y" }}</h2> |
2168 | -{% endblock %} |
2169 | - |
2170 | - |
2171 | {% block content %} |
2172 | - <div class="post_list"> |
2173 | +{% load markup %} |
2174 | +{% include "django_messages/inlines/navigation.html" %} |
2175 | +<br /> |
2176 | +<br /> |
2177 | +<div class="muttis_liebling"> |
2178 | + <div class="box_item_model even show_center"> |
2179 | + <a href="{% url news_index %}{{ month|date:"Y" }}">Archiv {{ month|date:"Y" }}</a> |
2180 | + {% for day in object_list %} |
2181 | + {% endfor %} |
2182 | + {% autopaginate object_list 10 %} |
2183 | + {% paginate %} |
2184 | + </div> |
2185 | <br /> |
2186 | {% for object in object_list %} |
2187 | - {% include "news/inlines/post_detail.html" %} |
2188 | + {% include "news/inlines/post_detail.html" %} |
2189 | <br /> |
2190 | {% endfor %} |
2191 | - </div> |
2192 | + {% if page_obj.has_other_pages %} |
2193 | + <div class="box_item_model even show_center"> |
2194 | + {% paginate %} |
2195 | + </div> |
2196 | + {% endif %} |
2197 | +</div> |
2198 | {% endblock %} |
2199 | |
2200 | === modified file 'templates/news/post_archive_year.html' |
2201 | --- templates/news/post_archive_year.html 2009-03-23 17:44:44 +0000 |
2202 | +++ templates/news/post_archive_year.html 2010-10-30 22:51:06 +0000 |
2203 | @@ -1,22 +1,37 @@ |
2204 | {% extends "news/base_news.html" %} |
2205 | {% load custom_date %} |
2206 | +{% load news %} |
2207 | +{% load pagination_tags %} |
2208 | |
2209 | |
2210 | {% block title %}Post archive for {{ year }}{% endblock %} |
2211 | {% block body_class %}{{ block.super }} post_archive_year{% endblock %} |
2212 | |
2213 | - |
2214 | -{% block content_title %} |
2215 | - <h2>Post archive for {{ year }}</h2> |
2216 | -{% endblock %} |
2217 | - |
2218 | - |
2219 | {% block content %} |
2220 | {% load markup %} |
2221 | - |
2222 | - <ul class="link_list"> |
2223 | +{% include "django_messages/inlines/navigation.html" %} |
2224 | +<br /> |
2225 | +<br /> |
2226 | +<div class="muttis_liebling"> |
2227 | + <div class="box_item_model even show_center"> |
2228 | + <a href="/news/">News Archiv</a> |
2229 | {% for month in date_list %} |
2230 | - <li><a href="{% url news_index %}{{ year }}/{{ month|date:"m" }}/">{{ month|date:"F" }}</a></li> |
2231 | - {% endfor %} |
2232 | - </ul> |
2233 | + | <a href="{% url news_index %}{{ year }}/{{ month|date:"m" }}/">{{ month|date:"F" }}</a> |
2234 | + {% endfor %} |
2235 | + <br /> |
2236 | + {% autopaginate object_list 10 %} |
2237 | + {% paginate %} |
2238 | + </div> |
2239 | + <br /> |
2240 | + {% for object in object_list %} |
2241 | + {% include "news/inlines/post_detail.html" %} |
2242 | + <br /> |
2243 | + {% endfor %} |
2244 | + {% if page_obj.has_other_pages %} |
2245 | + <div class="box_item_model even show_center"> |
2246 | + {% paginate %} |
2247 | + </div> |
2248 | + {% endif %} |
2249 | + |
2250 | +</div> |
2251 | {% endblock %} |
2252 | |
2253 | === modified file 'templates/news/post_list.html' |
2254 | --- templates/news/post_list.html 2009-03-23 17:44:44 +0000 |
2255 | +++ templates/news/post_list.html 2010-10-30 22:51:06 +0000 |
2256 | @@ -1,40 +1,34 @@ |
2257 | {% extends "news/base_news.html" %} |
2258 | |
2259 | {% load news %} |
2260 | - |
2261 | +{% load custom_date %} |
2262 | +{% load pagination_tags %} |
2263 | {% block title %}Post archive - {{ block.super }}{% endblock %} |
2264 | {% block body_class %}{{ block.super }} post_list{% endblock %} |
2265 | |
2266 | -{% block content_title %} |
2267 | - <h2>Post archive</h2> |
2268 | -{% endblock %} |
2269 | - |
2270 | - |
2271 | {% block content %} |
2272 | - <div class="post_list"> |
2273 | - <br /> |
2274 | +{% include "django_messages/inlines/navigation.html" %} |
2275 | +<br /> |
2276 | +<br /> |
2277 | +<div class=""> |
2278 | + {% get_news_years as news_years %} |
2279 | + <div class="box_item_model even show_center"> |
2280 | + {% for muh in news_years %} |
2281 | + <a href="{% url news_index %}{{ muh.year }}" >{{ muh.year }}</a> |
2282 | + {% endfor %} |
2283 | + {% autopaginate object_list 10 %} |
2284 | + {% paginate %} |
2285 | + </div> |
2286 | + <br /> |
2287 | {% for object in object_list %} |
2288 | - {% include "news/inlines/post_detail.html" %} |
2289 | - <br /> |
2290 | - {% comment %} |
2291 | - <div> |
2292 | - <h3 class="title"><a href="{{ post.get_absolute_url }}">{{ post.title }}</a></h3> |
2293 | - <p class="date">{{ post.publish|date:"Y F d" }}</p> |
2294 | - <p class="tease">{{ post.tease }}</p> |
2295 | + {% include "news/inlines/post_detail.html" %} |
2296 | + <br /> |
2297 | + {% endfor %} |
2298 | + <br /> |
2299 | + {% if page_obj.has_other_pages %} |
2300 | + <div class="box_item_model even show_center"> |
2301 | + {% paginate %} |
2302 | </div> |
2303 | - {%endcomment%} |
2304 | - {% endfor %} |
2305 | - </div> |
2306 | - |
2307 | - {% if is_paginated %} |
2308 | - <p class="pagination"> |
2309 | - {% if has_next %} |
2310 | - <a class="older" href="?page={{ next }}">Older</a> |
2311 | - {% endif %} |
2312 | - {% if has_next and has_previous %} | {% endif %} |
2313 | - {% if has_previous %} |
2314 | - <a class="newer" href="?page={{ previous }}">Newer</a> |
2315 | - {% endif %} |
2316 | - </p> |
2317 | - {% endif %} |
2318 | + {% endif %} |
2319 | +</div> |
2320 | {% endblock %} |
2321 | |
2322 | === added directory 'templates/notification/forum_new_post' |
2323 | === added file 'templates/notification/forum_new_post/full.txt' |
2324 | --- templates/notification/forum_new_post/full.txt 1970-01-01 00:00:00 +0000 |
2325 | +++ templates/notification/forum_new_post/full.txt 2010-10-30 22:51:06 +0000 |
2326 | @@ -0,0 +1,7 @@ |
2327 | +{% load i18n %}{% blocktrans with topic.get_absolute_url as topic_url %} A new forum post was added under topic "{{ topic }}" by "{{ user }}". |
2328 | + |
2329 | +http://{{ current_site }}{{ topic_url }} |
2330 | +{% endblocktrans %} |
2331 | +{{ topic }}: |
2332 | + |
2333 | +{{ post.body_text }} |
2334 | |
2335 | === added file 'templates/notification/forum_new_post/notice.html' |
2336 | --- templates/notification/forum_new_post/notice.html 1970-01-01 00:00:00 +0000 |
2337 | +++ templates/notification/forum_new_post/notice.html 2010-10-30 22:51:06 +0000 |
2338 | @@ -0,0 +1,2 @@ |
2339 | +{% load i18n %}{% url profile_view user.username as user_url %} |
2340 | +{% blocktrans with topic.get_absolute_url as topic_url %}A new forum post has be created in forum under topic <a href="{{ topic_url }}">{{ topic }}</a> by <a href="{{ user_url }}">{{ user }}</a>.{% endblocktrans %} |
2341 | |
2342 | === added directory 'templates/notification/forum_new_topic' |
2343 | === added file 'templates/notification/forum_new_topic/full.txt' |
2344 | --- templates/notification/forum_new_topic/full.txt 1970-01-01 00:00:00 +0000 |
2345 | +++ templates/notification/forum_new_topic/full.txt 2010-10-30 22:51:06 +0000 |
2346 | @@ -0,0 +1,7 @@ |
2347 | +{% load i18n %}{% blocktrans with topic.get_absolute_url as topic_url %}The Forum topic {{ topic }} has been created by {{ user }}. |
2348 | + |
2349 | +http://{{ current_site }}{{ topic_url }} |
2350 | +{% endblocktrans %} |
2351 | +{{ topic }}: |
2352 | + |
2353 | +{{ post.body_text }} |
2354 | |
2355 | === added file 'templates/notification/forum_new_topic/notice.html' |
2356 | --- templates/notification/forum_new_topic/notice.html 1970-01-01 00:00:00 +0000 |
2357 | +++ templates/notification/forum_new_topic/notice.html 2010-10-30 22:51:06 +0000 |
2358 | @@ -0,0 +1,2 @@ |
2359 | +{% load i18n %}{% url profile_view user.username as user_url %} |
2360 | +{% blocktrans with topic.get_absolute_url as topic_url %}A new forum topic has be created under <a href="{{ topic_url }}">{{ topic }}</a> by <a href="{{ user_url }}">{{ user }}</a>.{% endblocktrans %} |
2361 | |
2362 | === modified file 'templates/notification/notices.html' |
2363 | --- templates/notification/notices.html 2010-01-02 19:55:10 +0000 |
2364 | +++ templates/notification/notices.html 2010-10-30 22:51:06 +0000 |
2365 | @@ -10,64 +10,82 @@ |
2366 | |
2367 | {% block extra_head %} |
2368 | <link rel="alternate" type="application/atom+xml" title="Notices Feed" href="{% url notification_feed_for_user %}" /> |
2369 | + <link rel="stylesheet" type="text/css" media="all" href="{{ MEDIA_URL }}/css/notice.css" />{{ block.super}} |
2370 | {% endblock %} |
2371 | |
2372 | {% block content %} |
2373 | - {% include "messages/inlines/navigation.html" %} |
2374 | - |
2375 | - <h1>{% trans "Notices" %}</h1> |
2376 | + {% include "django_messages/inlines/navigation.html" %} |
2377 | +<br /> |
2378 | +<br /> |
2379 | +<div class="box_item_model full_site border" width="100%"> |
2380 | + <h3 class="title">{% trans "Notices" %}</h3> |
2381 | |
2382 | {% autopaginate notices %} |
2383 | - |
2384 | + |
2385 | {% if notices %} |
2386 | - <a href="{% url notification_mark_all_seen %}">{% trans "Mark all unseen notices seen" %}</a> |
2387 | - |
2388 | + <div class="info_line show_center"> |
2389 | + <br /> |
2390 | + <a href="{% url notification_mark_all_seen %}">{% trans "Mark all unseen notices seen" %}</a> |
2391 | + <br /> |
2392 | + <br /> |
2393 | + </div> |
2394 | {# TODO: get timezone support working with regroup #} |
2395 | {% regroup notices by added.date as notices_by_date %} |
2396 | |
2397 | {% for date in notices_by_date %} |
2398 | - <h2 class="notice_date">{{ date.grouper|naturalday:_("MONTH_DAY_FORMAT")|capfirst }}</h2> |
2399 | - |
2400 | + <h3 class="title notice_date">{{ date.grouper|naturalday:_("MONTH_DAY_FORMAT")|capfirst }}</h3> |
2401 | {% for notice in date.list %} |
2402 | {% if notice.is_unseen %} |
2403 | - <div class="unseen_notice"> |
2404 | + <div class="{% cycle "odd" "even" %} notice_unseen_notice border_top"> |
2405 | {% else %} |
2406 | - <div class="notice"> |
2407 | + <div class="{% cycle "odd" "even" %} border_top"> |
2408 | {% endif %} |
2409 | - <span class="notice_type">[{% trans notice.notice_type.display %}]</span> |
2410 | + <span class="notice_type"><a href="{% url notification_notice notice.pk %} ">[{% trans notice.notice_type.display %}]</a></span> |
2411 | <span class="notice_message">{{ notice.message|safe }}</span> |
2412 | <span class="notice_time">{{ notice.added }}</span> |
2413 | </div> |
2414 | {% endfor %} |
2415 | {% endfor %} |
2416 | - |
2417 | - {% paginate %} |
2418 | - |
2419 | + <div class="info_line show_center"> |
2420 | + {% paginate %} |
2421 | + </div> |
2422 | {% else %} |
2423 | - <p>{% trans "No notices." %}</p> |
2424 | + <div class="info_line show_center"> |
2425 | + <br /> |
2426 | + {% trans "No notices." %} |
2427 | + <br /> |
2428 | + <br /> |
2429 | + </div> |
2430 | {% endif %} |
2431 | - |
2432 | - |
2433 | - <div class="notice_settings"> |
2434 | - <h2>{% trans "Settings" %}</h2> |
2435 | + </div> |
2436 | + <br /> |
2437 | + <br /> |
2438 | + <div class="box_item_model full_site border"> |
2439 | + <h3 class="title">{% trans "Settings" %}</h2> |
2440 | |
2441 | {% url acct_email as email_url %} |
2442 | {% if user.email %} |
2443 | - <p> |
2444 | + <div class="info_line show_center"> |
2445 | + <br /> |
2446 | {% trans "Primary email" %}:<br /> |
2447 | <b>{{ user.email }}</b><br /> |
2448 | - (change under <a href="{% url profile_view %}">Account</a>) |
2449 | - </p> |
2450 | + (change under <a href="{% url profile_view user %}">Account</a>) |
2451 | + <br /> |
2452 | + <br /> |
2453 | + </div> |
2454 | {% else %} |
2455 | - <p> |
2456 | + <div class="info_line show_center"> |
2457 | + <br /> |
2458 | <span class="warning">{% trans "Note" %}</span>: |
2459 | - {% blocktrans %}You do not have a verified email address to which notices can be sent. You can add one by going to <a href="{{ email_url }}">Account</a>.{% endblocktrans %} |
2460 | - </p> |
2461 | + You do not have a verified email address to which notices can be sent. You can add one by going to <a href="{% url profile_edit %}">Account</a>. |
2462 | + <br /> |
2463 | + <br /> |
2464 | + </div> |
2465 | {% endif %} |
2466 | |
2467 | <form method="POST" action=""> {# doubt this easy to do in uni-form #} |
2468 | - <table class="notice_settings" cellspacing="1"> |
2469 | - <tr> |
2470 | + <table width="100%" class="notice_settings" cellspacing="1"> |
2471 | + <tr> |
2472 | <th>{% trans "Notification Type" %}</th> |
2473 | {% for header in notice_settings.column_headers %} |
2474 | <th>{{ header }}</th> |
2475 | @@ -86,7 +104,7 @@ |
2476 | </tr> |
2477 | {% endfor %} |
2478 | <tr> |
2479 | - <td><input type="submit" value="{% trans "Change" %}" /></td> |
2480 | + <td class="info_line show_center" colspan="2"><input type="submit" value="{% trans "Change" %}" /></td> |
2481 | </tr> |
2482 | </table> |
2483 | </form> |
2484 | |
2485 | === added file 'templates/notification/single.html' |
2486 | --- templates/notification/single.html 1970-01-01 00:00:00 +0000 |
2487 | +++ templates/notification/single.html 2010-10-30 22:51:06 +0000 |
2488 | @@ -0,0 +1,50 @@ |
2489 | +{% extends "notification/base.html" %} |
2490 | + |
2491 | +{% load humanize i18n %} |
2492 | +{% load pagination_tags %} |
2493 | +{% load custom_date %} |
2494 | + |
2495 | +{% block title %} |
2496 | +{% trans "Notices "%} - Account - {{ block.super }} |
2497 | +{% endblock %} |
2498 | + |
2499 | +{% block extra_head %} |
2500 | + <link rel="alternate" type="application/atom+xml" title="Notices Feed" href="{% url notification_feed_for_user %}" /> |
2501 | + <link rel="stylesheet" type="text/css" media="all" href="{{ MEDIA_URL }}/css/notice.css" />{{ block.super}} |
2502 | +{% endblock %} |
2503 | + |
2504 | +{% block content %} |
2505 | + {% include "django_messages/inlines/navigation.html" %} |
2506 | + <br /> |
2507 | + <br /> |
2508 | + <div class="box_item_model fixed_site"> |
2509 | + <h3 class="title">{% trans "Notice" %}</h3> |
2510 | + <table width="100%"> |
2511 | + <tr> |
2512 | + <td class="odd">Notice:</td> |
2513 | + <td class="odd">{{ notice.message|safe }}</td> |
2514 | + </tr> |
2515 | + <tr> |
2516 | + <td class="even">Notice Type:</td> |
2517 | + <td class="even">{{ notice.notice_type }}</td> |
2518 | + </tr> |
2519 | + <tr> |
2520 | + <td class="odd">Date of Notice:</td> |
2521 | + <td class="odd">{{ notice.added }}</td> |
2522 | + </tr> |
2523 | + <tr> |
2524 | + <td class="even">Notice Unseen:</td> |
2525 | + <td class="even">{{ notice.unseen }}</td> |
2526 | + </tr> |
2527 | + <tr> |
2528 | + <td class="odd">Notice Archiv:</td> |
2529 | + <td class="odd">{{ notice.archived }}</td> |
2530 | + </tr> |
2531 | + <tr> |
2532 | + <td class="even">Notice Site:</td> |
2533 | + <td class="even">{{ notice.on_site }}</td> |
2534 | + </tr> |
2535 | + </table> |
2536 | + </div> |
2537 | +{% endblock %} |
2538 | + |
2539 | |
2540 | === modified file 'templates/notification/wiki_article_edited/notice.html' |
2541 | --- templates/notification/wiki_article_edited/notice.html 2009-02-20 10:11:49 +0000 |
2542 | +++ templates/notification/wiki_article_edited/notice.html 2010-10-30 22:51:06 +0000 |
2543 | @@ -1,2 +1,2 @@ |
2544 | -{% load i18n %}{% url profile_detail username=user.username as user_url %} |
2545 | +{% load i18n %}{% url profile_view user.username as user_url %} |
2546 | {% blocktrans with article.get_absolute_url as article_url %}The wiki article <a href="{{ article_url }}">{{ article }}</a> has been edited by <a href="{{ user_url }}">{{ user }}</a>.{% endblocktrans %} |
2547 | |
2548 | === modified file 'templates/pybb/add_post.html' |
2549 | --- templates/pybb/add_post.html 2010-01-03 00:07:10 +0000 |
2550 | +++ templates/pybb/add_post.html 2010-10-30 22:51:06 +0000 |
2551 | @@ -3,9 +3,10 @@ |
2552 | {% load i18n %} |
2553 | |
2554 | {% block content %} |
2555 | -<br /> |
2556 | -<br /> |
2557 | -<div class="forum_item"> |
2558 | -{% include "pybb/inlines/add_post_form.html" %} |
2559 | +{% include "django_messages/inlines/navigation.html" %} |
2560 | +<br /> |
2561 | +<br /> |
2562 | +<div class="box_item_model border"> |
2563 | + {% include "pybb/inlines/add_post_form.html" %} |
2564 | </div> |
2565 | {% endblock %} |
2566 | |
2567 | === modified file 'templates/pybb/delete_post.html' |
2568 | --- templates/pybb/delete_post.html 2009-03-17 15:02:13 +0000 |
2569 | +++ templates/pybb/delete_post.html 2010-10-30 22:51:06 +0000 |
2570 | @@ -6,11 +6,20 @@ |
2571 | {% endblock %} |
2572 | |
2573 | {% block content %} |
2574 | -<h1>{% trans "Are you sure you want to delete this message?" %}</h1> |
2575 | -<p class="post-preview"> |
2576 | +{% include "django_messages/inlines/navigation.html" %} |
2577 | +<br /> |
2578 | +<br /> |
2579 | +<div class="box_item_model fixed_site border"> |
2580 | + <h3 class="title">{% trans "Are you sure you want to delete this message?" %}</h3> |
2581 | + <div class="even"> |
2582 | + <p class="post-preview"> |
2583 | {{ post.body_html|safe }} |
2584 | -</p> |
2585 | -<form method="post"> |
2586 | - <p><input type="submit" value="{% trans "Yes, I am sure." %}" /></p> |
2587 | -</form> |
2588 | + </p> |
2589 | + </div> |
2590 | + <form method="post"> |
2591 | + <div class="info_line"> |
2592 | + <input type="submit" value="{% trans "Yes, I am sure." %}" /> |
2593 | + </div> |
2594 | + </form> |
2595 | +</div> |
2596 | {% endblock %} |
2597 | |
2598 | === modified file 'templates/pybb/edit_post.html' |
2599 | --- templates/pybb/edit_post.html 2010-01-03 00:07:10 +0000 |
2600 | +++ templates/pybb/edit_post.html 2010-10-30 22:51:06 +0000 |
2601 | @@ -7,9 +7,10 @@ |
2602 | {% endblock %} |
2603 | |
2604 | {% block content %} |
2605 | -<br /> |
2606 | -<br /> |
2607 | -<div class="forum_item"> |
2608 | -{% include "pybb/inlines/add_post_form.html" %} |
2609 | +{% include "django_messages/inlines/navigation.html" %} |
2610 | +<br /> |
2611 | +<br /> |
2612 | +<div class="box_item_model border"> |
2613 | + {% include "pybb/inlines/add_post_form.html" %} |
2614 | </div> |
2615 | {% endblock %} |
2616 | |
2617 | === modified file 'templates/pybb/forum.html' |
2618 | --- templates/pybb/forum.html 2010-01-02 18:28:31 +0000 |
2619 | +++ templates/pybb/forum.html 2010-10-30 22:51:06 +0000 |
2620 | @@ -13,52 +13,75 @@ |
2621 | {% endblock %} |
2622 | |
2623 | {% block content %} |
2624 | +{% include "django_messages/inlines/navigation.html" %} |
2625 | +<br /> |
2626 | +<br /> |
2627 | +<div class="box_item_model"> |
2628 | <div class="forum-list"> |
2629 | - <span class="title">{{ forum }}</span> |
2630 | - |
2631 | + <span class="title"><a href="/forum/">Forum</a> ⇒ {{ forum }}</span> |
2632 | + <br /> |
2633 | <div class="index_forum"> |
2634 | - {% pybb_pagination _('Topics') %} |
2635 | - <div class="controls"> |
2636 | - <a href="{% url pybb_add_topic forum.id %}">{% trans "New topic" %}</a> |
2637 | - </div> |
2638 | - |
2639 | - <table cellspacing="1" width="100%"> |
2640 | - <tr align="center"> |
2641 | - <th width="5%"> </th> |
2642 | - <th width="40%" nowrap="nowrap" align="left">Topic</th> |
2643 | - <th nowrap="nowrap">Creator</th> |
2644 | - <th nowrap="nowrap">At</th> |
2645 | - <th nowrap="nowrap">Posts</th> |
2646 | - <th nowrap="nowrap">Views</th> |
2647 | - <th width="20%" nowrap="nowrap">Last Post</th> |
2648 | - </tr> |
2649 | - |
2650 | - {# List all forums #} |
2651 | - {% for topic in topics %} |
2652 | - {% include "pybb/inlines/topic_row.html" %} |
2653 | - {% endfor %} |
2654 | - </table> |
2655 | - |
2656 | - {% pybb_pagination _('Topics') %} |
2657 | - <div class="controls"> |
2658 | - <a href="{% url pybb_add_topic forum.id %}">{% trans "New topic" %}</a> |
2659 | - </div> |
2660 | - |
2661 | + <table width="100%"> |
2662 | + <tr> |
2663 | + <td> |
2664 | + {% pybb_pagination _('Topics') %} |
2665 | + </td> |
2666 | + <td> |
2667 | + <div class="controls"> |
2668 | + <a href="{% url pybb_add_topic forum.id %}"> |
2669 | + <img src="{{MEDIA_URL}}/forum/img/en/new_topic.png" height="25" alt ="{% trans "New Topic" %}" style="float:right" /> |
2670 | + </a> |
2671 | + </div> |
2672 | + </td> |
2673 | + </tr> |
2674 | + </table> |
2675 | + <table cellspacing="1" width="100%"> |
2676 | + <tr align="center"> |
2677 | + <th width="5%"> </th> |
2678 | + <th width="40%" nowrap="nowrap" align="left">Topic</th> |
2679 | + <th nowrap="nowrap">Creator</th> |
2680 | + <th nowrap="nowrap">At</th> |
2681 | + <th nowrap="nowrap">Posts</th> |
2682 | + <th nowrap="nowrap">Views</th> |
2683 | + <th width="20%" nowrap="nowrap">Last Post</th> |
2684 | + </tr> |
2685 | + |
2686 | + {# List all forums #} |
2687 | + {% for topic in topics %} |
2688 | + {% include "pybb/inlines/topic_row.html" %} |
2689 | + {% endfor %} |
2690 | + </table> |
2691 | + <table width="100%"> |
2692 | + <tr> |
2693 | + <td> |
2694 | + {% pybb_pagination _('Topics') %} |
2695 | + </td> |
2696 | + <td> |
2697 | + <div class="controls"> |
2698 | + <a href="{% url pybb_add_topic forum.id %}"> |
2699 | + <img src="{{MEDIA_URL}}/forum/img/en/new_topic.png" height="25" alt ="{% trans "New Topic" %}" style="float:right"/> |
2700 | + </a> |
2701 | + </div> |
2702 | + </td> |
2703 | + </tr> |
2704 | + </table> |
2705 | </div> |
2706 | |
2707 | <table class="legend"> |
2708 | - <tr> |
2709 | - <td> |
2710 | - <img src="{{MEDIA_URL}}/forum/img/folder_new.png" style=":" alt="" align="middle" /> |
2711 | - </td><td>= Unread posts</td> |
2712 | - <td> |
2713 | - <img src="{{MEDIA_URL}}/forum/img/folder.png" style="" alt="" align="middle" /> |
2714 | - </td><td>= No unread posts</td> |
2715 | - <td> |
2716 | - </tr> |
2717 | + <tr> |
2718 | + <td> |
2719 | + <img src="{{MEDIA_URL}}/forum/img/folder_new.png" style=":" alt="" align="middle" /> |
2720 | + </td> |
2721 | + <td>= Unread posts</td> |
2722 | + <td> |
2723 | + <img src="{{MEDIA_URL}}/forum/img/folder.png" style="" alt="" align="middle" /> |
2724 | + </td> |
2725 | + <td>= No unread posts</td> |
2726 | + <td> |
2727 | + </tr> |
2728 | </table> |
2729 | </div> |
2730 | - |
2731 | +</div> |
2732 | {% endblock %} |
2733 | |
2734 | {% comment %} |
2735 | |
2736 | === modified file 'templates/pybb/index.html' |
2737 | --- templates/pybb/index.html 2009-03-23 20:34:20 +0000 |
2738 | +++ templates/pybb/index.html 2010-10-30 22:51:06 +0000 |
2739 | @@ -2,9 +2,13 @@ |
2740 | {% load pybb_extras %} |
2741 | |
2742 | {% block content %} |
2743 | - {% for category in cats %} |
2744 | +{% include "django_messages/inlines/navigation.html" %} |
2745 | +<br /> |
2746 | +<br /> |
2747 | +<div class="box_item_model"> |
2748 | +{% for category in cats %} |
2749 | {% include 'pybb/inlines/display_category.html' %} |
2750 | - {% endfor %} |
2751 | +{% endfor %} |
2752 | |
2753 | <table class="legend"> |
2754 | <tr> |
2755 | @@ -27,6 +31,6 @@ |
2756 | </tr> |
2757 | {% endcomment %} |
2758 | </table> |
2759 | - |
2760 | +<div> |
2761 | {% endblock %} |
2762 | |
2763 | |
2764 | === modified file 'templates/pybb/inlines/add_post_form.html' |
2765 | --- templates/pybb/inlines/add_post_form.html 2010-01-03 00:07:10 +0000 |
2766 | +++ templates/pybb/inlines/add_post_form.html 2010-10-30 22:51:06 +0000 |
2767 | @@ -1,5 +1,4 @@ |
2768 | {% load i18n %} |
2769 | - |
2770 | {% block extra_head %} |
2771 | <script type="text/javascript" src="/wlmedia/js/disableOnSubmit.js"></script> |
2772 | <script type="text/javascript"> |
2773 | @@ -7,42 +6,35 @@ |
2774 | $('form').disableOnSubmit(); |
2775 | }); |
2776 | </script> |
2777 | - |
2778 | {{ block.super }} |
2779 | {% endblock %} |
2780 | - <form class="post-form" action="{{ form_url }}" method="post" enctype="multipart/form-data"> |
2781 | - <div class="preview-box" style="display: none"> |
2782 | - <div class="header"><h3 class="title">{% trans "Preview" %}</h3></div> |
2783 | - <div class="content"></div> |
2784 | - </div> |
2785 | - <h3 class="title">{% if forum %} |
2786 | - {% trans "New topic" %} |
2787 | - {% else %} |
2788 | - {%if post %} |
2789 | - {% trans "Edit reply" %} |
2790 | - {% else %} |
2791 | - {% trans "New reply" %} |
2792 | - {% endif %} |
2793 | - {% endif %}</h3> |
2794 | - <div class="content"> |
2795 | - <table width="100%" colspan="1" class="text"> |
2796 | - <tr> |
2797 | - <td width="99%"> |
2798 | - {{ form.as_p }} |
2799 | - </td> |
2800 | - <td width="1%"> </td> |
2801 | - </tr> |
2802 | - </table> |
2803 | - </div> |
2804 | - <table class="bottom_line" width="100%"> |
2805 | - <tr> |
2806 | - <td> |
2807 | - <input type="submit" value="{% trans "Submit" %}" /> |
2808 | - <input class="preview-button" type="button" value="{% trans "Preview" %}" /> |
2809 | - </td> |
2810 | - </tr> |
2811 | - </table> |
2812 | - </form> |
2813 | + <form class="post-form" action="{{ form_url }}" method="post" enctype="multipart/form-data"> |
2814 | + <div class="preview-box" style="display: none"> |
2815 | + <div class="header"> |
2816 | + <h3 class="title">{% trans "Preview" %}</h3> |
2817 | + </div> |
2818 | + <div class="content"> |
2819 | + </div> |
2820 | + </div> |
2821 | + <h3 class="title"> |
2822 | + {% if forum %} |
2823 | + {% trans "New topic" %} |
2824 | + {% else %} |
2825 | + {%if post %} |
2826 | + {% trans "Edit reply" %} |
2827 | + {% else %} |
2828 | + {% trans "New reply" %} |
2829 | + {% endif %} |
2830 | + {% endif %} |
2831 | + </h3> |
2832 | + <div class="content"> |
2833 | + {{ form.as_p }} |
2834 | + </div> |
2835 | + <div class="info_line show_left"> |
2836 | + <input type="submit" class="button_send" value="" /> |
2837 | + <input class="preview-button button_preview" type="button" value="" /> |
2838 | + </div> |
2839 | + </form> |
2840 | <script type="text/javascript"> |
2841 | $(function() { |
2842 | $('.post-form .preview-button').click(function() { |
2843 | |
2844 | === modified file 'templates/pybb/inlines/display_category.html' |
2845 | --- templates/pybb/inlines/display_category.html 2009-03-01 09:47:33 +0000 |
2846 | +++ templates/pybb/inlines/display_category.html 2010-10-30 22:51:06 +0000 |
2847 | @@ -3,26 +3,20 @@ |
2848 | |
2849 | How to display a Forum list in the index page |
2850 | {% endcomment %} |
2851 | - |
2852 | -<div class="index_category"> |
2853 | - |
2854 | - <span class="title"> {{category.cat}} </span> |
2855 | - |
2856 | - <table cellspacing="1" width="100%"> |
2857 | - <tr align="center"> |
2858 | - <th width="5%"> </th> |
2859 | - <th width="57%" nowrap="nowrap" align="left">Forum</th> |
2860 | - <th width="9%" nowrap="nowrap">Topics</th> |
2861 | - <th width="9%" nowrap="nowrap">Posts</th> |
2862 | - <th width="20%" nowrap="nowrap">Last Post</th> |
2863 | +<div class="box_item_model index_category"> |
2864 | + <h3 class="title">{{category.cat}} </h3> |
2865 | + <table class="full_site" cellspacing="1"> |
2866 | + <tr class="show_center" cellspacing="0"> |
2867 | + <td width="5%" class="info_line show_left"> </td> |
2868 | + <td width="57%" nowrap="nowrap" class="info_line show_left">Forum</td> |
2869 | + <td width="9%" nowrap="nowrap" class="info_line show_left">Topics</td> |
2870 | + <td width="9%" nowrap="nowrap" class="info_line show_left">Posts</td> |
2871 | + <td width="20%" nowrap="nowrap" class="info_line show_left">Last Post</td> |
2872 | </tr> |
2873 | - |
2874 | {# List all forums #} |
2875 | {% for forum in category.forums %} |
2876 | {% include 'pybb/inlines/forum_row.html' %} |
2877 | {% endfor %} |
2878 | - |
2879 | </table> |
2880 | - |
2881 | </div> |
2882 | |
2883 | |
2884 | === modified file 'templates/pybb/inlines/forum_row.html' |
2885 | --- templates/pybb/inlines/forum_row.html 2009-03-16 17:28:02 +0000 |
2886 | +++ templates/pybb/inlines/forum_row.html 2010-10-30 22:51:06 +0000 |
2887 | @@ -1,12 +1,10 @@ |
2888 | {% comment %} |
2889 | vim:ft=htmldjango: |
2890 | {% endcomment %} |
2891 | - |
2892 | {% load humanize %} |
2893 | {% load pybb_extras %} |
2894 | {% load wlprofile %} |
2895 | {% load custom_date %} |
2896 | - |
2897 | <tr> |
2898 | <td class="even" align="center" valign="middle"> |
2899 | {% if forum|pybb_has_unreads:user %} |
2900 | |
2901 | === modified file 'templates/pybb/inlines/post.html' |
2902 | --- templates/pybb/inlines/post.html 2009-05-26 15:50:12 +0000 |
2903 | +++ templates/pybb/inlines/post.html 2010-10-30 22:51:06 +0000 |
2904 | @@ -8,7 +8,6 @@ |
2905 | {% load wiki %} |
2906 | {% load wlprofile %} |
2907 | {% load custom_date %} |
2908 | - |
2909 | <a name="post-{{ post.id }}"></a> |
2910 | <table class="{% cycle "odd" "even" %}" width="100%"> |
2911 | <tr> |
2912 | @@ -17,7 +16,9 @@ |
2913 | <table width="100%" cellpadding="0" cellspacing="0" style="table-layout: fixed; border: 0px;"> |
2914 | <tr> |
2915 | <td style="text-align: left; border: 0px;"> |
2916 | - <a href="{{post.get_absolute_url}}">Permalink</a> |
2917 | + <a href="{{post.get_absolute_url}}"> |
2918 | + <img src="{{MEDIA_URL}}/forum/img/en/permalink.png" height="25" alt ="{% trans "Permalink" %}" /> |
2919 | + </a> |
2920 | </td> |
2921 | <td style="text-align: right; border: 0px;"> |
2922 | <strong>Posted at:</strong> {{ post.created|custom_date:user}} |
2923 | @@ -36,21 +37,40 @@ |
2924 | </a> |
2925 | </div> |
2926 | {% endif %} |
2927 | - <strong>Joined:</strong> {{ post.user.date_joined|custom_date:user|title }}<br /> |
2928 | - <strong>Posts:</strong> {{ post.user.wlprofile.post_count }}<br /> |
2929 | - {% if post.user.wlprofile.location %} |
2930 | - <strong>Location:</strong> {{ post.user.wlprofile.location }}<br /> |
2931 | - {% endif %} |
2932 | + <strong>Joined:</strong> {{ post.user.date_joined|custom_date:user|title }}<br /> |
2933 | + <strong>Posts:</strong> {{ post.user.wlprofile.post_count }}<br /> |
2934 | + <img src="{{ MEDIA_URL }}img/{{ post.user.wlprofile.user_status.image }}" alt="Ranking" /> |
2935 | + <br /> |
2936 | + <strong>{{ post.user.wlprofile.user_status.text }}</strong><br /> |
2937 | + {% if post.user.wlprofile.location %} |
2938 | + <strong>Location:</strong> {{ post.user.wlprofile.location }}<br /> |
2939 | + {% endif %} |
2940 | + {% if post.user.wlprofile.get_ggzstats and post.user.wlprofile.get_ggzstats.ranking %} |
2941 | + <strong>GGZ ranking:</strong> {{ post.user.wlprofile.get_ggzstats.ranking|floatformat }}<br /> |
2942 | + <strong>GGZ rating:</strong> {{ post.user.wlprofile.get_ggzstats.rating|floatformat }}<br /> |
2943 | + <strong>GGZ win:</strong> {{ post.user.wlprofile.get_ggzstats.wins|floatformat }}<br /> |
2944 | + <strong>GGZ loses:</strong> {{ post.user.wlprofile.get_ggzstats.losses|floatformat }}<br /> |
2945 | + {% endif %} |
2946 | </div> |
2947 | </td> |
2948 | - <td width="85%" class="content"> |
2949 | - {{ post.body_html|safe }} |
2950 | - {% if not user.is_authenticated or user.pybb_profile.show_signatures %} |
2951 | - {% if post.user.pybb_profile.signature %} |
2952 | - <div class="signature"> |
2953 | - {{ post.user.pybb_profile.signature|urlize|linebreaks }} |
2954 | - </div> |
2955 | - {% endif %} |
2956 | + <td width="85%" class="content top"> |
2957 | + {{ post.body_html|safe|linebreaks }} |
2958 | + {% if user.is_authenticated %} |
2959 | + {% ifequal user.wlprofile.show_signatures 1 %} |
2960 | + {% if post.user.wlprofile.signature %} |
2961 | + <div class="signature"> |
2962 | + <span class="line">__________________</span> |
2963 | + {{ post.user.wlprofile.signature|urlize|linebreaks }} |
2964 | + </div> |
2965 | + {% endif %} |
2966 | + {% endifequal %} |
2967 | + {% else %} |
2968 | + {% if post.user.wlprofile.signature %} |
2969 | + <div class="signature"> |
2970 | + <span class="line">__________________</span> |
2971 | + {{ post.user.wlprofile.signature|urlize|linebreaks }} |
2972 | + </div> |
2973 | + {% endif %} |
2974 | {% endif %} |
2975 | {% if post.updated %} |
2976 | <div class="updated-message"><strong>{% trans "Edited" %}:</strong> {{ post.updated|custom_date:user|title}}</div> |
2977 | @@ -65,7 +85,9 @@ |
2978 | </tr> |
2979 | <tr> |
2980 | <td class="toplink"> |
2981 | - <a href="#top">Top</a> |
2982 | + <a href="#top"> |
2983 | + <img src="{{MEDIA_URL}}/forum/img/en/top.png" height="25" alt ="{% trans "Top" %}" /> |
2984 | + </a> |
2985 | </td> |
2986 | |
2987 | <td> |
2988 | @@ -73,78 +95,28 @@ |
2989 | {% if user.is_authenticated %} |
2990 | {% ifnotequal user post.user %} |
2991 | <a href="{% url messages_compose_to post.user %}"> |
2992 | - Send PM |
2993 | + <img src="{{MEDIA_URL}}/forum/img/en/send_pm.png" height="25" alt ="{% trans "Send PM" %}" /> |
2994 | </a> |
2995 | {% endifnotequal %} |
2996 | {% endif %} |
2997 | {% if moderator or post|pybb_posted_by:user %} |
2998 | <a href="{% url pybb_edit_post post.id %}"> |
2999 | - <img src="{{MEDIA_URL}}/forum/img/en/p_edit.png" height="26" alt ="{% trans "Edit" %}" /> |
3000 | + <img src="{{MEDIA_URL}}/forum/img/en/edit.png" height="25" alt ="{% trans "Edit" %}" /> |
3001 | </a> |
3002 | {% endif %} |
3003 | {% if moderator or post|pybb_equal_to:last_post %} |
3004 | {% if moderator or post.user|pybb_equal_to:user %} |
3005 | <a href="{% url pybb_delete_post post.id %}"> |
3006 | - <img src="{{MEDIA_URL}}/forum/img/en/p_delete.png" height="26" alt ="{% trans "Delete" %}" /> |
3007 | + <img src="{{MEDIA_URL}}/forum/img/en/delete.png" height="25" alt ="{% trans "Delete" %}" /> |
3008 | </a> |
3009 | {% endif %} |
3010 | - {% endif %} |
3011 | </div> |
3012 | <div class="tools" style="float: right;"> |
3013 | <a href="{% url pybb_add_post topic.id %}?quote_id={{ post.id }}"> |
3014 | - <img src="{{MEDIA_URL}}/forum/img/en/p_quote.png" height="26" alt ="{% trans "Quote" %}" /> |
3015 | + <img src="{{MEDIA_URL}}/forum/img/en/quote.png" height="25" alt ="{% trans "Quote" %}" /> |
3016 | </a> |
3017 | + {% endif %} |
3018 | </div> |
3019 | </td> |
3020 | </tr> |
3021 | </table> |
3022 | - |
3023 | -{% comment %} |
3024 | - {% if post.user.pybb_profile.avatar %} |
3025 | - <div class="avatar"> |
3026 | - <a href="{% url pybb_profile post.user %}"> |
3027 | - <img src="{{ post.user.pybb_profile.avatar.url }}" /> |
3028 | - </a> |
3029 | - </div> |
3030 | - {% endif %} |
3031 | - <div class="bottom"> |
3032 | - <a class="permalink" href="{{ post.get_absolute_url }}">#</a> |
3033 | - <span class="updated">{% pybb_time post.created %}</span> |
3034 | - </div> |
3035 | - {% if user.is_authenticated %} |
3036 | - <div class="pm-link"> |
3037 | - <a href="{% url pybb_create_pm %}?recipient={{ post.user.username }}">{% trans "Send PM" %}</a> |
3038 | - </div> |
3039 | - {% endif %} |
3040 | - </div> |
3041 | - </td> |
3042 | - <td class="content" width="85%"> |
3043 | - {{ post.body_html|safe }} |
3044 | - {% if not user.is_authenticated or user.pybb_profile.show_signatures %} |
3045 | - {% if post.user.pybb_profile.signature %} |
3046 | - <div class="signature"> |
3047 | - {{ post.user.pybb_profile.signature|urlize|linebreaks }} |
3048 | - </div> |
3049 | - {% endif %} |
3050 | - {% endif %} |
3051 | - {% if post.updated %} |
3052 | - <div class="updated-message">{% trans "Edited" %} {% pybb_time post.updated %}</div> |
3053 | - {% endif %} |
3054 | - |
3055 | - {% if post.attachment_cache %} |
3056 | - {% for attach in post.attachment_cache %} |
3057 | - {% trans "Attachment" %}: <a href="{{ attach.get_absolute_url }}">{{ attach.name }}</a> ({{ attach.size_display }}) |
3058 | - {% endfor %} |
3059 | - {% endif %} |
3060 | - |
3061 | - <div class="post-related"> |
3062 | - <a href="{% url pybb_add_post topic.id %}?quote_id={{ post.id }}">{% trans "quote" %}</a> |
3063 | - </div> |
3064 | - |
3065 | - </td> |
3066 | - </tr> |
3067 | - </table> |
3068 | - <!--<div style="clear: both"></div>--> |
3069 | - </div> |
3070 | -</div> |
3071 | -{% endcomment%} |
3072 | |
3073 | === modified file 'templates/pybb/inlines/topic_row.html' |
3074 | --- templates/pybb/inlines/topic_row.html 2009-03-16 17:28:02 +0000 |
3075 | +++ templates/pybb/inlines/topic_row.html 2010-10-30 22:51:06 +0000 |
3076 | @@ -1,12 +1,10 @@ |
3077 | {% comment %} |
3078 | vim:ft=htmldjango: |
3079 | {% endcomment %} |
3080 | - |
3081 | {% load humanize %} |
3082 | {% load pybb_extras %} |
3083 | {% load wlprofile %} |
3084 | {% load custom_date %} |
3085 | - |
3086 | <tr class="topic_description {% cycle "odd" "even" %}"> |
3087 | <td align="center" valign="middle"> |
3088 | {% if topic|pybb_has_unreads:user %} |
3089 | @@ -16,7 +14,17 @@ |
3090 | {% endif %} |
3091 | </td> |
3092 | <td id="name"> |
3093 | - <span class="name"><a href="{{ topic.get_absolute_url }}">{{ topic.name }}</a></span> |
3094 | + <span class="name"> |
3095 | + <a href="{{ topic.get_absolute_url }}"> |
3096 | + {% comment %} |
3097 | + oehm ja, geht nicht weil ka muss ich guggn, die frage ist. soll es fuer alle gelten oder nur fuer eine topic |
3098 | + {% endcomment %} |
3099 | + {% if subscribed %}<img src="{{MEDIA_URL}}/forum/img/en/subscribe_small.png" height="20" alt="subscribe" style="float:left" />{% endif %} |
3100 | + {% if topic.sticky %}<img src="{{MEDIA_URL}}/forum/img/en/stick_topic_small.png" height="20" alt ="Sticky" style="float:left;" /> {% endif %} |
3101 | + {% if topic.closed %}<img src="{{MEDIA_URL}}/forum/img/en/close_small.png" height="20" alt ="Closed" style="float:left; " /> {% endif %} |
3102 | + {{ topic.name }} |
3103 | + </a> |
3104 | + </span> |
3105 | </td> |
3106 | <td><span class="creator">{{ topic.user|user_link }}</span></td> |
3107 | <td><span class="at">{{ topic.created|custom_date:user }}</span></td> |
3108 | |
3109 | === added file 'templates/pybb/last_posts.html' |
3110 | --- templates/pybb/last_posts.html 1970-01-01 00:00:00 +0000 |
3111 | +++ templates/pybb/last_posts.html 2010-10-30 22:51:06 +0000 |
3112 | @@ -0,0 +1,21 @@ |
3113 | +{% load i18n %} |
3114 | +{% load wlprofile %} |
3115 | +{% load custom_date %} |
3116 | +{% load pybb_extras %} |
3117 | + |
3118 | +<div> |
3119 | +<br /> |
3120 | +{% for post in posts %} |
3121 | + <table> |
3122 | + <tr> |
3123 | + <td> |
3124 | + <a href="{{ post.get_absolute_url }}" title="{{ post.topic.name }}">{{ post.topic.name|pybb_cut_string:21 }}</a> @<br /> |
3125 | + <a href="{{ post.topic.get_absolute_url}}" title="{{ post.topic.forum.name }}">{{ post.topic.forum.name|pybb_cut_string:23 }}</a><br /> |
3126 | + by {{ post.user|user_link }} at {{ post.created|custom_date:user }} |
3127 | + <br /> |
3128 | + <br /> |
3129 | + </td> |
3130 | + </tr> |
3131 | + </table> |
3132 | +{% endfor %} |
3133 | +<div> |
3134 | |
3135 | === modified file 'templates/pybb/pagination.html' |
3136 | --- templates/pybb/pagination.html 2010-01-02 18:24:49 +0000 |
3137 | +++ templates/pybb/pagination.html 2010-10-30 22:51:06 +0000 |
3138 | @@ -1,20 +1,41 @@ |
3139 | {% load i18n %} |
3140 | -<div class="pagination"> |
3141 | - |
3142 | +<div class="pagination" style="float:left"> |
3143 | + <span class="summary">{{ label }} <strong>{{ page.start_index }}</strong>—<strong>{{ page.end_index }}</strong> {% trans "of" %} <strong>{{ paginator.count }}</strong> {{ label }} </span> |
3144 | {% if page.has_previous %} |
3145 | - <a href="{{ page.previous_link }}"><{% trans "Back" %}</a> |
3146 | + {% ifequal page.previous_page_number 1 %} |
3147 | + <a href="?page={{ page.previous_page_number }}" class="prev">‹‹ </a> |
3148 | + {% else %} |
3149 | + <a href="?page=1" class="prev">‹‹‹‹ </a> |
3150 | + <a href="?page={{ page.previous_page_number }}" class="prev">‹‹ </a> |
3151 | + {% endifequal %} |
3152 | + {% else %} |
3153 | + {% ifnotequal paginator.num_pages 1 %} |
3154 | + <span class="disabled prev">‹‹ </span> |
3155 | + {% endifnotequal %} |
3156 | {% endif %} |
3157 | - |
3158 | -<span class="summary">{{ label }} <strong>{{ page.start_index }}</strong>—<strong>{{ page.end_index }}</strong> {% trans "of" %} <strong>{{ paginator.count }}</strong> {{ label }} |
3159 | - {% if page.has_other_pages %} |
3160 | - {% trans "in" %} <strong>{{ paginator.num_pages }}</strong> |
3161 | - {% trans "pages" %} |
3162 | - {% endif %} |
3163 | - </span> |
3164 | - |
3165 | + {% for pages in paginator.page_range %} |
3166 | + {% if pages %} |
3167 | + {% ifequal paginator.num_pages 1 %} |
3168 | + ... |
3169 | + {% else %} |
3170 | + {% ifequal pages page.number %} |
3171 | + <span class="current page">| {{ page.number }} |</span> |
3172 | + {% else %} |
3173 | + <a href="?page={{ pages }}" class="page">{{ pages }}</a> |
3174 | + {% endifequal %} |
3175 | + {% endifequal %} |
3176 | + {% endif %} |
3177 | + {% endfor %} |
3178 | {% if page.has_next %} |
3179 | - <a href="{{ page.next_link }}">{% trans "Forward" %}></a> |
3180 | + {% ifequal page.next_page_number paginator.num_pages %} |
3181 | + <a href="?page={{ page.next_page_number }}" class="next"> ››</a> |
3182 | + {% else %} |
3183 | + <a href="?page={{ page.next_page_number }}" class="next"> ››</a> |
3184 | + <a href="?page={{ paginator.num_pages }}" class="next"> ››››</a> |
3185 | + {% endifequal %} |
3186 | + {% else %} |
3187 | + {% ifnotequal paginator.num_pages 1 %} |
3188 | + <span class="disabled next"> ››</span> |
3189 | + {% endifnotequal %} |
3190 | {% endif %} |
3191 | - |
3192 | - |
3193 | </div> |
3194 | |
3195 | === modified file 'templates/pybb/topic.html' |
3196 | --- templates/pybb/topic.html 2010-01-03 00:07:10 +0000 |
3197 | +++ templates/pybb/topic.html 2010-10-30 22:51:06 +0000 |
3198 | @@ -13,70 +13,84 @@ |
3199 | {% endblock %} |
3200 | |
3201 | {% block content %} |
3202 | - |
3203 | -{% pybb_pagination _('Posts') %} |
3204 | - |
3205 | -<div class="posts"> |
3206 | - <a name="top" id="top"></a> |
3207 | - <table cellspacing="1" width="100%"> |
3208 | - <tr align="center"> |
3209 | - <th>Author</th> |
3210 | - <th width="85%" nowrap="nowrap">Message</th> |
3211 | - </tr> |
3212 | - </table> |
3213 | - |
3214 | - {% if first_post %} |
3215 | - {% ifnotequal first_post posts.0 %} |
3216 | - {% with first_post as post %} |
3217 | - <div class="post first_post"> |
3218 | - {% include "pybb/inlines/post.html" %} |
3219 | - </div> |
3220 | - {% endwith %} |
3221 | - {% endifnotequal %} |
3222 | - {% endif %} |
3223 | - {% for post in posts %} |
3224 | - <div class="post"> |
3225 | - {% include "pybb/inlines/post.html" %} |
3226 | - </div> |
3227 | - {% endfor %} |
3228 | -</div> |
3229 | - |
3230 | -{% pybb_pagination _('Posts') %} |
3231 | -<div class="controls"> |
3232 | +{% include "django_messages/inlines/navigation.html" %} |
3233 | +<br /> |
3234 | +<br /> |
3235 | +<div class="box_item_model"> |
3236 | + <span class="title"><a href="/forum/">Forum</a> ⇒ <a href="{{ topic.forum.get_absolute_url }}">{{ topic.forum.name }}</a> ⇒ {{ topic }}</span> |
3237 | + <br /> |
3238 | + {% pybb_pagination _('Posts') %} |
3239 | + <div class="posts" style="clear:left"> |
3240 | + <a name="top" id="top"></a> |
3241 | + <table cellspacing="1" width="100%"> |
3242 | + <tr align="center"> |
3243 | + <th>Author</th> |
3244 | + <th width="85%" nowrap="nowrap">Message</th> |
3245 | + </tr> |
3246 | + </table> |
3247 | + |
3248 | + {% if first_post %} |
3249 | + {% ifnotequal first_post posts.0 %} |
3250 | + {% with first_post as post %} |
3251 | + <div class="post first_post"> |
3252 | + {% include "pybb/inlines/post.html" %} |
3253 | + </div> |
3254 | + {% endwith %} |
3255 | + {% endifnotequal %} |
3256 | + {% endif %} |
3257 | + {% for post in posts %} |
3258 | + <div class="post"> |
3259 | + {% include "pybb/inlines/post.html" %} |
3260 | + </div> |
3261 | + {% endfor %} |
3262 | + </div> |
3263 | + {% pybb_pagination _('Posts') %} |
3264 | + <br /> |
3265 | + <div class="controls"> |
3266 | + <br /> |
3267 | {% if moderator %} |
3268 | - {% if topic.sticky %} |
3269 | - <a href="{% url pybb_unstick_topic topic.id %}">{% trans "Unstick topic" %}</a> |
3270 | - {% else %} |
3271 | - <a href="{% url pybb_stick_topic topic.id %}">{% trans "Stick topic" %}</a> |
3272 | - {% endif %} |
3273 | - | |
3274 | - {% if topic.closed %} |
3275 | - <a href="{% url pybb_open_topic topic.id %}">{% trans "Open topic" %}</a> |
3276 | - {% else %} |
3277 | - <a href="{% url pybb_close_topic topic.id %}">{% trans "Close topic" %}</a> |
3278 | - {% endif %} |
3279 | - | |
3280 | - {% endif %} |
3281 | - {% comment %} |
3282 | - TODO: subscribe |
3283 | + {% if topic.sticky %} |
3284 | + <a href="{% url pybb_unstick_topic topic.id %}"> |
3285 | + <img src="{{MEDIA_URL}}/forum/img/en/unstick_topic.png" height="25" alr="{% trans "Unstick topic" %}" /> |
3286 | + </a> |
3287 | + {% else %} |
3288 | + <a href="{% url pybb_stick_topic topic.id %}"> |
3289 | + <img src="{{MEDIA_URL}}/forum/img/en/stick_topic.png" height="25" alt ="{% trans "Stick Topic" %}" /> |
3290 | + </a> |
3291 | + {% endif %} |
3292 | + {% if topic.closed %} |
3293 | + <a href="{% url pybb_open_topic topic.id %}"> |
3294 | + <img src="{{MEDIA_URL}}/forum/img/en/open_topic.png" height="25" alt="{% trans "Open topic" %}" /> |
3295 | + </a> |
3296 | + {% else %} |
3297 | + <a href="{% url pybb_close_topic topic.id %}"> |
3298 | + <img src="{{MEDIA_URL}}/forum/img/en/close_topic.png" height="25" alt ="{% trans "Close Topic" %}" /> |
3299 | + </a> |
3300 | + {% endif %} |
3301 | + {% endif %} |
3302 | + |
3303 | + |
3304 | {% if user.is_authenticated %} |
3305 | - {% if subscribed %} |
3306 | - <a href="{% url pybb_delete_subscription topic.id %}?from_topic">{% trans "Unsubscribe" %}</a> |
3307 | - {% else %} |
3308 | - <a href="{% url pybb_add_subscription topic.id %}">{% trans "Subscribe" %}</a> |
3309 | - {% endif %} |
3310 | - {% endif %} |
3311 | - {% endcomment %} |
3312 | + {% if subscribed %} |
3313 | + <a href="{% url pybb_delete_subscription topic.id %}?from_topic"> |
3314 | + <img src="{{MEDIA_URL}}/forum/img/en/unsubscribe.png" height="25" alt ="{% trans "Unsubscribe" %}" /> |
3315 | + </a> |
3316 | + {% else %} |
3317 | + <a href="{% url pybb_add_subscription topic.id %}"> |
3318 | + <img src="{{MEDIA_URL}}/forum/img/en/subscribe.png" height="25" alt="{% trans "Subscribe" %}" /></a> |
3319 | + {% endif %} |
3320 | + {% endif %} |
3321 | + |
3322 | + </div> |
3323 | </div> |
3324 | - |
3325 | {% if user.is_authenticated %} |
3326 | -{% if not topic.closed %} |
3327 | -<br /> |
3328 | -<br /> |
3329 | -<div class="forum_item"> |
3330 | -{% include "pybb/inlines/add_post_form.html" %} |
3331 | + {% if not topic.closed %} |
3332 | +<br /> |
3333 | +<br /> |
3334 | +<div class="box_item_model border"> |
3335 | + {% include "pybb/inlines/add_post_form.html" %} |
3336 | </div> |
3337 | -{% endif %} |
3338 | + {% endif %} |
3339 | {% endif %} |
3340 | |
3341 | {% endblock %} |
3342 | |
3343 | === added file 'templates/registration/base.html' |
3344 | --- templates/registration/base.html 1970-01-01 00:00:00 +0000 |
3345 | +++ templates/registration/base.html 2010-10-30 22:51:06 +0000 |
3346 | @@ -0,0 +1,8 @@ |
3347 | +{% extends "base.html" %} |
3348 | +{% comment %} |
3349 | + vim:ft=htmldjango |
3350 | +{% endcomment %} |
3351 | + |
3352 | +{% block extra_head %} |
3353 | +<link rel="stylesheet" type="text/css" media="all" href="{{ MEDIA_URL }}/css/register.css" />{{ block.super}} |
3354 | +{% endblock %} |
3355 | |
3356 | === modified file 'templates/registration/login.html' |
3357 | --- templates/registration/login.html 2009-02-20 11:19:12 +0000 |
3358 | +++ templates/registration/login.html 2010-10-30 22:51:06 +0000 |
3359 | @@ -1,26 +1,55 @@ |
3360 | +{% extends "registration/base.html" %} |
3361 | |
3362 | -{% extends "base.html" %} |
3363 | +{% block title %} |
3364 | +{{ block.super }} - Login |
3365 | +{% endblock %} |
3366 | |
3367 | {% block content %} |
3368 | - |
3369 | +{% include "django_messages/inlines/navigation.html" %} |
3370 | +<br /> |
3371 | +<br /> |
3372 | +<div class="box_item_model fixed_site border"> |
3373 | + <h3 class="title">Login</h3> |
3374 | {% if form.errors %} |
3375 | -<p>Your username and password didn't match. Please try again.</p> |
3376 | + <div class="info_line show_center errormessage"> |
3377 | + <br /> |
3378 | + Your username and password didn't match. |
3379 | + <br /> |
3380 | + Please try again. |
3381 | + <br /> |
3382 | + <br /> |
3383 | + </div> |
3384 | {% endif %} |
3385 | - |
3386 | -<form method="post" action="."> |
3387 | -<table> |
3388 | -<tr> |
3389 | - <td>{{ form.username.label_tag }}</td> |
3390 | - <td>{{ form.username }}</td> |
3391 | -</tr> |
3392 | -<tr> |
3393 | - <td>{{ form.password.label_tag }}</td> |
3394 | - <td>{{ form.password }}</td> |
3395 | -</tr> |
3396 | -</table> |
3397 | - |
3398 | -<input type="submit" value="login" /> |
3399 | -<input type="hidden" name="next" value="{{ next }}" /> |
3400 | -</form> |
3401 | - |
3402 | + <div class="info_line show_center"> |
3403 | + <br /> |
3404 | + <form method="post" action="."> |
3405 | + <table> |
3406 | + <tr> |
3407 | + <td> |
3408 | + {{ form.username.label_tag }}: |
3409 | + </td> |
3410 | + <td> |
3411 | + {{ form.username }} |
3412 | + </td> |
3413 | + </tr> |
3414 | + <tr> |
3415 | + <td> |
3416 | + {{ form.password.label_tag }}: |
3417 | + </td> |
3418 | + <td> |
3419 | + {{ form.password }} |
3420 | + </td> |
3421 | + </tr> |
3422 | + <tr> |
3423 | + <td></td> |
3424 | + <td class="show_right"> |
3425 | + <input type="submit" value="login" /> |
3426 | + <input type="hidden" name="next" value="{{ next }}" /> |
3427 | + </td> |
3428 | + </tr> |
3429 | + </table> |
3430 | + </form> |
3431 | + <br /> |
3432 | + </div> |
3433 | +</div> |
3434 | {% endblock %} |
3435 | |
3436 | === modified file 'templates/registration/password_change_done.html' |
3437 | --- templates/registration/password_change_done.html 2009-02-20 11:19:12 +0000 |
3438 | +++ templates/registration/password_change_done.html 2010-10-30 22:51:06 +0000 |
3439 | @@ -1,12 +1,27 @@ |
3440 | -{% extends "base.html" %} |
3441 | +{% extends "registration/base.html" %} |
3442 | +{% comment %} |
3443 | +vim:ft=htmldjango: |
3444 | +{% endcomment %} |
3445 | + |
3446 | +{% block title %} |
3447 | +{{ block.super }} - Change Password |
3448 | +{% endblock %} |
3449 | + |
3450 | {% load i18n %} |
3451 | |
3452 | -{% block title %}{% trans 'Password change successful' %} - {{ block.super }}{% endblock %} |
3453 | - |
3454 | {% block content %} |
3455 | - |
3456 | -<h1>{% trans 'Password change successful' %}</h1> |
3457 | - |
3458 | -<p>{% trans 'Your password was changed.' %}</p> |
3459 | - |
3460 | +{% include "django_messages/inlines/navigation.html" %} |
3461 | + |
3462 | +<br /> |
3463 | +<br /> |
3464 | +<div class="box_item_model fixed_site border"> |
3465 | + <h3 class="title">Password change successful </h3> |
3466 | + <div class="info_line"> |
3467 | + <br /> |
3468 | + <div class="show_center errormessage"> |
3469 | + Your password was changed. |
3470 | + </div> |
3471 | + <br /> |
3472 | + </div> |
3473 | +</div> |
3474 | {% endblock %} |
3475 | |
3476 | === modified file 'templates/registration/password_change_form.html' |
3477 | --- templates/registration/password_change_form.html 2009-02-20 11:19:12 +0000 |
3478 | +++ templates/registration/password_change_form.html 2010-10-30 22:51:06 +0000 |
3479 | @@ -1,24 +1,69 @@ |
3480 | -{% extends "base.html" %} |
3481 | +{% extends "registration/base.html" %} |
3482 | +{% comment %} |
3483 | +vim:ft=htmldjango: |
3484 | +{% endcomment %} |
3485 | + |
3486 | +{% block title %} |
3487 | +{{ block.super }} - Change Password |
3488 | +{% endblock %} |
3489 | + |
3490 | {% load i18n %} |
3491 | |
3492 | -{% block title %}{% trans 'Password change' %} - {{block.super}}{% endblock %} |
3493 | - |
3494 | {% block content %} |
3495 | - |
3496 | -<h1>{% trans 'Password change' %}</h1> |
3497 | - |
3498 | -<p>{% trans "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly." %}</p> |
3499 | - |
3500 | -<form action="" method="post"> |
3501 | - |
3502 | -{{ form.old_password.errors }} |
3503 | -<p class="aligned wide"><label for="id_old_password">{% trans 'Old password:' %}</label>{{ form.old_password }}</p> |
3504 | -{{ form.new_password1.errors }} |
3505 | -<p class="aligned wide"><label for="id_new_password1">{% trans 'New password:' %}</label>{{ form.new_password1 }}</p> |
3506 | -{{ form.new_password2.errors }} |
3507 | -<p class="aligned wide"><label for="id_new_password2">{% trans 'Confirm password:' %}</label>{{ form.new_password2 }}</p> |
3508 | - |
3509 | -<p><input type="submit" value="{% trans 'Change my password' %}" /></p> |
3510 | -</form> |
3511 | - |
3512 | +{% include "django_messages/inlines/navigation.html" %} |
3513 | + |
3514 | +<br /> |
3515 | +<br /> |
3516 | +<div class="box_item_model fixed_site border"> |
3517 | + <h3 class="title">Password change</h3> |
3518 | + <div class="info_line"> |
3519 | + <br /> |
3520 | + <div class="show_center errormessage"> |
3521 | + Please enter your old password, |
3522 | + <br /> |
3523 | + for security's sake, and then enter your new password twice so we can verify you typed it in correctly. |
3524 | + </div> |
3525 | + <div > |
3526 | + <br /> |
3527 | + <form action="" method="post"> |
3528 | + <table> |
3529 | + <tr> |
3530 | + <td class="show_right" width="120"> |
3531 | + <label for="id_old_password">{% trans 'Old password:' %}</label> |
3532 | + </td> |
3533 | + <td> |
3534 | + {{ form.old_password }} |
3535 | + <span class="errormessage">{{ form.old_password.errors }}</span> |
3536 | + </td> |
3537 | + </tr> |
3538 | + <tr> |
3539 | + <td class="show_right"> |
3540 | + <label for="id_new_password1">{% trans 'New password:' %}</label> |
3541 | + </td> |
3542 | + <td> |
3543 | + {{ form.new_password1 }} |
3544 | + <span class="errormessage">{{ form.new_password1.errors }}</span> |
3545 | + </td> |
3546 | + </tr> |
3547 | + <tr> |
3548 | + <td class="show_right"> |
3549 | + <label for="id_new_password2">{% trans 'Confirm password:' %}</label> |
3550 | + </td> |
3551 | + <td> |
3552 | + {{ form.new_password2 }} |
3553 | + <span class="errormessage">{{ form.new_password2.errors }}</span> |
3554 | + </td> |
3555 | + </tr> |
3556 | + <tr> |
3557 | + <td> </td> |
3558 | + <td> |
3559 | + <input type="submit" value="{% trans 'Change my password' %}" /> |
3560 | + </td> |
3561 | + </tr> |
3562 | + </table> |
3563 | + </form> |
3564 | + <br /> |
3565 | + </div> |
3566 | + </div> |
3567 | +</div> |
3568 | {% endblock %} |
3569 | |
3570 | === modified file 'templates/registration/password_reset_complete.html' |
3571 | --- templates/registration/password_reset_complete.html 2009-02-20 11:25:20 +0000 |
3572 | +++ templates/registration/password_reset_complete.html 2010-10-30 22:51:06 +0000 |
3573 | @@ -1,12 +1,27 @@ |
3574 | -{% extends "base.html" %} |
3575 | +{% extends "registration/base.html" %} |
3576 | +{% comment %} |
3577 | +vim:ft=htmldjango: |
3578 | +{% endcomment %} |
3579 | + |
3580 | +{% block title %} |
3581 | +{{ block.super }} - Change Password |
3582 | +{% endblock %} |
3583 | + |
3584 | {% load i18n %} |
3585 | |
3586 | -{% block title %}{% trans 'Password reset complete' %}{% endblock %} |
3587 | - |
3588 | {% block content %} |
3589 | - |
3590 | -<h1>{% trans 'Password reset complete' %}</h1> |
3591 | - |
3592 | -<p>{% trans "Your password has been set. You may go ahead and log in now." %}</p> |
3593 | - |
3594 | +{% include "django_messages/inlines/navigation.html" %} |
3595 | + |
3596 | +<br /> |
3597 | +<br /> |
3598 | +<div class="box_item_model fixed_site border"> |
3599 | + <h3 class="title">Password reset complete</h3> |
3600 | + <div class="info_line"> |
3601 | + <br /> |
3602 | + <div> |
3603 | + Your password has been set. You may go ahead and log in now. |
3604 | + </div> |
3605 | + <br /> |
3606 | + </div> |
3607 | +</div> |
3608 | {% endblock %} |
3609 | |
3610 | === modified file 'templates/registration/password_reset_confirm.html' |
3611 | --- templates/registration/password_reset_confirm.html 2009-02-20 11:23:56 +0000 |
3612 | +++ templates/registration/password_reset_confirm.html 2010-10-30 22:51:06 +0000 |
3613 | @@ -1,30 +1,44 @@ |
3614 | {% extends "base.html" %} |
3615 | +{% extends "registration/base.html" %} |
3616 | +{% comment %} |
3617 | +vim:ft=htmldjango: |
3618 | +{% endcomment %} |
3619 | + |
3620 | +{% block title %} |
3621 | +{{ block.super }} - Reset Password |
3622 | +{% endblock %} |
3623 | + |
3624 | {% load i18n %} |
3625 | |
3626 | -{% block title %}{% trans 'Password reset' %}{% endblock %} |
3627 | - |
3628 | {% block content %} |
3629 | +{% include "django_messages/inlines/navigation.html" %} |
3630 | |
3631 | +<br /> |
3632 | +<br /> |
3633 | +<div class="box_item_model fixed_site border"> |
3634 | + <h3 class="title">Password reset</h3> |
3635 | + <div class="info_line"> |
3636 | + <br /> |
3637 | {% if validlink %} |
3638 | - |
3639 | -<h1>{% trans 'Enter new password' %}</h1> |
3640 | - |
3641 | -<p>{% trans "Please enter your new password twice so we can verify you typed it in correctly." %}</p> |
3642 | - |
3643 | -<form action="" method="post"> |
3644 | -{{ form.new_password1.errors }} |
3645 | -<p class="aligned wide"><label for="id_new_password1">{% trans 'New password:' %}</label>{{ form.new_password1 }}</p> |
3646 | -{{ form.new_password2.errors }} |
3647 | -<p class="aligned wide"><label for="id_new_password2">{% trans 'Confirm password:' %}</label>{{ form.new_password2 }}</p> |
3648 | -<p><input type="submit" value="{% trans 'Change my password' %}" /></p> |
3649 | -</form> |
3650 | - |
3651 | + <div class="show_center errormessage"> |
3652 | + Please enter your new password twice so we can verify you typed it in correctly. |
3653 | + </div> |
3654 | + <div> |
3655 | + <br /> |
3656 | + <form action="" method="post"> |
3657 | + {{ form.new_password1.errors }} |
3658 | + <p class="aligned wide"><label for="id_new_password1">{% trans 'New password:' %}</label>{{ form.new_password1 }}</p> |
3659 | + {{ form.new_password2.errors }} |
3660 | + <p class="aligned wide"><label for="id_new_password2">{% trans 'Confirm password:' %}</label>{{ form.new_password2 }}</p> |
3661 | + <p><input type="submit" value="{% trans 'Change my password' %}" /></p> |
3662 | + </form> |
3663 | + <br /> |
3664 | + </div> |
3665 | {% else %} |
3666 | - |
3667 | -<h1>{% trans 'Password reset unsuccessful' %}</h1> |
3668 | - |
3669 | -<p>{% trans "The password reset link was invalid, possibly because it has already been used. Please request a new password reset." %}</p> |
3670 | - |
3671 | + <div class="show_center errormessage"> |
3672 | + The password reset link was invalid, possibly because it has already been used. Please request a new password reset. |
3673 | + </div> |
3674 | {% endif %} |
3675 | - |
3676 | + </div> |
3677 | +</div> |
3678 | {% endblock %} |
3679 | |
3680 | === modified file 'templates/registration/password_reset_done.html' |
3681 | --- templates/registration/password_reset_done.html 2009-02-20 11:19:12 +0000 |
3682 | +++ templates/registration/password_reset_done.html 2010-10-30 22:51:06 +0000 |
3683 | @@ -1,12 +1,27 @@ |
3684 | -{% extends "base.html" %} |
3685 | +{% extends "registration/base.html" %} |
3686 | +{% comment %} |
3687 | +vim:ft=htmldjango: |
3688 | +{% endcomment %} |
3689 | + |
3690 | +{% block title %} |
3691 | +{{ block.super }} - Reset Password |
3692 | +{% endblock %} |
3693 | + |
3694 | {% load i18n %} |
3695 | |
3696 | -{% block title %}{% trans 'Password reset successful' %}{% endblock %} |
3697 | - |
3698 | {% block content %} |
3699 | - |
3700 | -<h1>{% trans 'Password reset successful' %}</h1> |
3701 | - |
3702 | -<p>{% trans "We've e-mailed you instructions for setting your password to the e-mail address you submitted. You should be receiving it shortly." %}</p> |
3703 | - |
3704 | +{% include "django_messages/inlines/navigation.html" %} |
3705 | + |
3706 | +<br /> |
3707 | +<br /> |
3708 | +<div class="box_item_model fixed_site border"> |
3709 | + <h3 class="title">Password reset successful</h3> |
3710 | + <div class="info_line"> |
3711 | + <br /> |
3712 | + <div class="show_center errormessage"> |
3713 | + We've e-mailed you instructions for setting your password to the e-mail address you submitted. You should be receiving it shortly. |
3714 | + </div> |
3715 | + <br /> |
3716 | + </div> |
3717 | +</div> |
3718 | {% endblock %} |
3719 | |
3720 | === modified file 'templates/registration/password_reset_form.html' |
3721 | --- templates/registration/password_reset_form.html 2009-02-20 11:19:12 +0000 |
3722 | +++ templates/registration/password_reset_form.html 2010-10-30 22:51:06 +0000 |
3723 | @@ -1,19 +1,40 @@ |
3724 | -{% extends "base.html" %} |
3725 | +{% extends "registration/base.html" %} |
3726 | +{% comment %} |
3727 | +vim:ft=htmldjango: |
3728 | +{% endcomment %} |
3729 | + |
3730 | +{% block title %} |
3731 | +{{ block.super }} - Register |
3732 | +{% endblock %} |
3733 | + |
3734 | {% load i18n %} |
3735 | |
3736 | -{% block breadcrumbs %}<div class="breadcrumbs"><a href="../">{% trans 'Home' %}</a> › {% trans 'Password reset' %}</div>{% endblock %} |
3737 | - |
3738 | -{% block title %}{% trans "Password reset" %}{% endblock %} |
3739 | - |
3740 | {% block content %} |
3741 | - |
3742 | -<h1>{% trans "Password reset" %}</h1> |
3743 | - |
3744 | -<p>{% trans "Forgotten your password? Enter your e-mail address below, and we'll e-mail instructions for setting a new one." %}</p> |
3745 | - |
3746 | -<form action="" method="post"> |
3747 | -{{ form.email.errors }} |
3748 | -<p><label for="id_email">{% trans 'E-mail address:' %}</label> {{ form.email }} <input type="submit" value="{% trans 'Reset my password' %}" /></p> |
3749 | -</form> |
3750 | +{% include "django_messages/inlines/navigation.html" %} |
3751 | + |
3752 | +<br /> |
3753 | +<br /> |
3754 | +<div class="box_item_model fixed_site border"> |
3755 | + <h3 class="title">Password reset</h3> |
3756 | + <div class="info_line"> |
3757 | + <br /> |
3758 | + <div class="show_center errormessage"> |
3759 | + Forgotten your password? |
3760 | + <br /> |
3761 | + Enter your e-mail address below, |
3762 | + <br /> |
3763 | + and we'll e-mail instructions for setting a new one. |
3764 | + </div> |
3765 | + <div class="show_right"> |
3766 | + <br /> |
3767 | + <form action="" method="post"> |
3768 | + {{ form.email.errors }} |
3769 | + <label for="id_email">{% trans 'E-mail address:' %}</label> {{ form.email }} |
3770 | + <input type="submit" value="{% trans 'Reset my password' %}" /> |
3771 | + </form> |
3772 | + <br /> |
3773 | + </div> |
3774 | + </div> |
3775 | +</div> |
3776 | |
3777 | {% endblock %} |
3778 | |
3779 | === modified file 'templates/registration/registration_complete.html' |
3780 | --- templates/registration/registration_complete.html 2009-02-20 10:11:49 +0000 |
3781 | +++ templates/registration/registration_complete.html 2010-10-30 22:51:06 +0000 |
3782 | @@ -1,13 +1,24 @@ |
3783 | -{% extends "base.html" %} |
3784 | +{% extends "registration/base.html" %} |
3785 | +{% comment %} |
3786 | +vim:ft=htmldjango: |
3787 | +{% endcomment %} |
3788 | |
3789 | {% block title %} |
3790 | -registration_complete.html | {{ block.super }} |
3791 | -{% endblock %} |
3792 | - |
3793 | -{% block header %} |
3794 | -<h1>registration_complete.html</h1> |
3795 | +{{ block.super }} - Registration complete |
3796 | {% endblock %} |
3797 | |
3798 | {% block content %} |
3799 | -Thank you for signing up. An email with the activation code has been send to your inbox. |
3800 | -{% endblock %} |
3801 | \ No newline at end of file |
3802 | +{% include "django_messages/inlines/navigation.html" %} |
3803 | + |
3804 | +<br /> |
3805 | +<br /> |
3806 | +<div class="box_item_model fixed_site border"> |
3807 | + <h3 class="title">Registration</h3> |
3808 | + <div class="info_line"> |
3809 | + <br /> |
3810 | + <div class="show_center errormessage"> |
3811 | + Thank you for signing up. An email with the activation code has been send to your inbox. |
3812 | + </div> |
3813 | + </div> |
3814 | +</div> |
3815 | +{% endblock %} |
3816 | |
3817 | === modified file 'templates/registration/registration_form.html' |
3818 | --- templates/registration/registration_form.html 2009-03-03 13:46:05 +0000 |
3819 | +++ templates/registration/registration_form.html 2010-10-30 22:51:06 +0000 |
3820 | @@ -1,4 +1,4 @@ |
3821 | -{% extends "base.html" %} |
3822 | +{% extends "registration/base.html" %} |
3823 | {% comment %} |
3824 | vim:ft=htmldjango: |
3825 | {% endcomment %} |
3826 | @@ -8,57 +8,85 @@ |
3827 | {% endblock %} |
3828 | |
3829 | {% block content %} |
3830 | -<form action="{% url registration_register %}" method="POST"> |
3831 | -<table> |
3832 | -<tr> |
3833 | - <td align="right" valign="top">Username:</td> |
3834 | - <td> |
3835 | - {{ registration_form.username }} <br/> |
3836 | - {% for error in registration_form.username.errors %} |
3837 | - <span class="errormessage">{{ error }}</span> |
3838 | - {% endfor %} |
3839 | - </td> |
3840 | -</tr> |
3841 | -<tr> |
3842 | - <td align="right" valign="top">Email:</td> |
3843 | - <td> |
3844 | - {{ registration_form.email }} <br/> |
3845 | - {% for error in registration_form.email.errors %} |
3846 | - <span class="errormessage">{{ error }}</span> |
3847 | - {% endfor %} |
3848 | - </td> |
3849 | -</tr> |
3850 | -<tr> |
3851 | - <td align="right" valign="top">Password:</td> |
3852 | - <td> |
3853 | - {{ registration_form.password1 }} <br/> |
3854 | - {% for error in registration_form.password1.errors %} |
3855 | - <span class="errormessage">{{ error }}</span> |
3856 | - {% endfor %} |
3857 | - </td> |
3858 | -</tr> |
3859 | -<tr> |
3860 | - <td align="right" valign="top">Password (again):</td> |
3861 | - <td> |
3862 | - {{ registration_form.password2 }} <br/> |
3863 | - {% for error in registration_form.password2.errors %} |
3864 | - <span class="errormessage">{{ error }}</span> |
3865 | - {% endfor %} |
3866 | - </td> |
3867 | -</tr> |
3868 | -<tr align="right"> |
3869 | - <td align="right" valign="top">Prove that you're no spambot:</td> |
3870 | - <td> |
3871 | - {{ registration_form.captcha|safe }} <br/> |
3872 | - {% for error in registration_form.captcha.errors %} |
3873 | - <span class="errormessage">{{ error }}</span> |
3874 | - {% endfor %} |
3875 | - </td> |
3876 | -</tr> |
3877 | -<tr> |
3878 | - <td> </td> |
3879 | - <td><input type="submit" value="Register" /></td> |
3880 | -</tr> |
3881 | -</table> |
3882 | -</form> |
3883 | +{% include "django_messages/inlines/navigation.html" %} |
3884 | + |
3885 | +<br /> |
3886 | +<br /> |
3887 | +<div class="box_item_model fixed_site border"> |
3888 | + <h3 class="title">Registration</h3> |
3889 | + <div class="info_line"> |
3890 | + <br /> |
3891 | + <form action="{% url registration_register %}" method="POST"> |
3892 | + <table> |
3893 | + <tr> |
3894 | + <td class="show_right">Username:</td> |
3895 | + <td class="show_left"> |
3896 | + {{ registration_form.username }} |
3897 | + <br/> |
3898 | + {% for error in registration_form.username.errors %} |
3899 | + <span class="errormessage"> |
3900 | + {{ error }} |
3901 | + </span> |
3902 | + {% endfor %} |
3903 | + </td> |
3904 | + </tr> |
3905 | + <tr> |
3906 | + <td class="show_right">Email:</td> |
3907 | + <td class="show_left"> |
3908 | + {{ registration_form.email }} |
3909 | + <br/> |
3910 | + {% for error in registration_form.email.errors %} |
3911 | + <span class="errormessage"> |
3912 | + {{ error }} |
3913 | + </span> |
3914 | + {% endfor %} |
3915 | + </td> |
3916 | + </tr> |
3917 | + <tr> |
3918 | + <td class="show_right">Password:</td> |
3919 | + <td class="show_left"> |
3920 | + {{ registration_form.password1 }} |
3921 | + <br/> |
3922 | + {% for error in registration_form.password1.errors %} |
3923 | + <span class="errormessage"> |
3924 | + {{ error }} |
3925 | + </span> |
3926 | + {% endfor %} |
3927 | + </td> |
3928 | + </tr> |
3929 | + <tr> |
3930 | + <td class="show_right">Password (again):</td> |
3931 | + <td class="show_left"> |
3932 | + {{ registration_form.password2 }} |
3933 | + <br/> |
3934 | + {% for error in registration_form.password2.errors %} |
3935 | + <span class="errormessage"> |
3936 | + {{ error }} |
3937 | + </span> |
3938 | + {% endfor %} |
3939 | + </td> |
3940 | + </tr> |
3941 | + <tr> |
3942 | + <td class="show_right">Prove that you're no spambot:</td> |
3943 | + <td class="show_left"> |
3944 | + {{ registration_form.captcha|safe }} |
3945 | + <br/> |
3946 | + {% for error in registration_form.captcha.errors %} |
3947 | + <span class="errormessage"> |
3948 | + {{ error }} |
3949 | + </span> |
3950 | + {% endfor %} |
3951 | + </td> |
3952 | + </tr> |
3953 | + <tr> |
3954 | + <td class="show_right"> </td> |
3955 | + <td class="show_left"> |
3956 | + <input type="submit" value="Register" /> |
3957 | + </td> |
3958 | + </tr> |
3959 | + </table> |
3960 | + </form> |
3961 | + <br /> |
3962 | + </div> |
3963 | +</div> |
3964 | {% endblock %} |
3965 | |
3966 | === modified file 'templates/right_boxes.html' |
3967 | --- templates/right_boxes.html 2010-09-26 13:30:30 +0000 |
3968 | +++ templates/right_boxes.html 2010-10-30 22:51:06 +0000 |
3969 | @@ -3,11 +3,11 @@ |
3970 | |
3971 | This file is included by mainpage and contains all the left menu boxes |
3972 | on the site |
3973 | - |
3974 | {% endcomment %} |
3975 | {% load inbox %} |
3976 | {% load i18n %} |
3977 | -{% load wlprofile wlpoll wlevents %} |
3978 | +{% load wlprofile wlpoll wlevents%} |
3979 | +{% load pybb_extras %} |
3980 | |
3981 | <!-- Search Box --> |
3982 | <h3 class="box_title">Search</h3> |
3983 | @@ -29,10 +29,10 @@ |
3984 | Help us to pay our Server!<br/>(: Consider a donation :) <br/><br/> |
3985 | <div> |
3986 | <form action="https://www.paypal.com/cgi-bin/webscr" method="post"> |
3987 | - <input type="hidden" name="cmd" value="_s-xclick"> |
3988 | - <input type="hidden" name="hosted_button_id" value="JH5R7YHSVRMRG"> |
3989 | - <input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!"> |
3990 | - <img alt="" border="0" src="https://www.paypal.com/de_DE/i/scr/pixel.gif" width="1" height="1"> |
3991 | + <input type="hidden" name="cmd" value="_s-xclick" /> |
3992 | + <input type="hidden" name="hosted_button_id" value="JH5R7YHSVRMRG" /> |
3993 | + <input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif" name="submit" alt="PayPal - The safer, easier way to pay online!" /> |
3994 | + <img alt="" src="https://www.paypal.com/de_DE/i/scr/pixel.gif" width="1" height="1" /> |
3995 | </form> |
3996 | </div> |
3997 | </div> |
3998 | @@ -40,20 +40,22 @@ |
3999 | <!-- Login Block / User informations --> |
4000 | {% if user.is_authenticated %} |
4001 | <h3 class="box_title">Account</h3> |
4002 | - <div class="box_content" align="center"> |
4003 | - <p> |
4004 | - You are logged in as<br/> |
4005 | - <b>{{ user|user_link }}</b> |
4006 | - </p> |
4007 | - |
4008 | - <p> |
4009 | - <a href="{% url messages_inbox %}">{% inbox_count %} {% trans "new messages" %}</a> |
4010 | - </p> |
4011 | - |
4012 | - <p> |
4013 | - <a href="/accounts/logout/next={{request.path}}">Logout</a> |
4014 | - </p> |
4015 | - |
4016 | + <div class="box_content"> |
4017 | + <p align="center"> |
4018 | + Welcome <b>{{ user|user_link }}</b>,<br /> |
4019 | + you've <a href="{% url messages_inbox %}">{% inbox_count %}</a> new messages |
4020 | + </p> |
4021 | + <ul> |
4022 | + <li> |
4023 | + <a href="{% url profile_edit %}">Edit Profile</a> |
4024 | + </li> |
4025 | + <li> |
4026 | + <a href="{% url notification_notices %} ">Notifications</a> |
4027 | + </li> |
4028 | + <li> |
4029 | + <a href="/accounts/logout/next={{ request.path }}">Logout</a> |
4030 | + </li> |
4031 | + </ul> |
4032 | </div> |
4033 | {% else %} |
4034 | <h3 class="box_title">Login</h3> |
4035 | @@ -75,7 +77,6 @@ |
4036 | </center> |
4037 | </div> |
4038 | {% endif %} |
4039 | - |
4040 | <!-- Current polls if any --> |
4041 | {% get_open_polls as polls %} |
4042 | {% if polls.count %} |
4043 | @@ -122,10 +123,10 @@ |
4044 | |
4045 | <!-- Logged in users --> |
4046 | {%load online_users %} |
4047 | - <h3 class="box_title">Currently online</h3> |
4048 | - <div class="box_content"> |
4049 | - {% online_users 10 %} |
4050 | + {% online_users 10 %} |
4051 | + <!-- Placeholder for The Last 5 Forum Posts --> |
4052 | + <h3 class="box_title">Last 5 Forum Posts</h3> |
4053 | + <div class="box_content"> |
4054 | + {% pybb_last_posts %} |
4055 | </div> |
4056 | - |
4057 | - |
4058 | |
4059 | |
4060 | === modified file 'templates/threadedcomments/inlines/comments.html' |
4061 | --- templates/threadedcomments/inlines/comments.html 2010-04-17 09:17:23 +0000 |
4062 | +++ templates/threadedcomments/inlines/comments.html 2010-10-30 22:51:06 +0000 |
4063 | @@ -27,36 +27,42 @@ |
4064 | {% endif %} |
4065 | </div> |
4066 | {% endfor %} |
4067 | - {% if user.is_authenticated %} |
4068 | <br /> |
4069 | <br /> |
4070 | - <div class="news_item"> |
4071 | - <h3 class="title">Reply to Original:</h3> |
4072 | - <form method="POST" action="{% get_comment_url object %}?next={{object.get_absolute_url}}"> |
4073 | - <div class="content"> |
4074 | - <table class="text" width="100%"> |
4075 | - <tr> |
4076 | - <td width="99%"> |
4077 | - <span class=errorclass">{{ form.comment.errors }}</span> |
4078 | - {{ form.comment }} |
4079 | - </td> |
4080 | - <td width="1%"></td> |
4081 | - </tr> |
4082 | - </table> |
4083 | - </div> |
4084 | - <table class="bottom_line" width="100%"> |
4085 | - <tr> |
4086 | - <td class="admin"> |
4087 | - <input type="hidden" name="markup" value="1" /> |
4088 | - <input type="hidden" value="next" value="{{ object.get_absolute_url }}" /> |
4089 | - <input type="submit" value="Submit Comment" /> |
4090 | - </td> |
4091 | - </tr> |
4092 | - </table> |
4093 | - </form> |
4094 | - </div> |
4095 | + <div class="box_item_model fixed_site border"> |
4096 | + {% if user.is_authenticated %} |
4097 | + <h3 class="title">Reply to Original:</h3> |
4098 | + <form method="POST" action="{% get_comment_url object %}?next={{object.get_absolute_url}}"> |
4099 | + <div class="content"> |
4100 | + <table class="text full_site"> |
4101 | + <tr> |
4102 | + <td width="99%"> |
4103 | + <span class="errormessage">{{ form.comment.errors }}</span> |
4104 | + {{ form.comment }} |
4105 | + </td> |
4106 | + <td width="1%"></td> |
4107 | + </tr> |
4108 | + </table> |
4109 | + </div> |
4110 | + <table class="info_line full_site"> |
4111 | + <tr> |
4112 | + <td class="show_center"> |
4113 | + <input type="hidden" name="markup" value="1" /> |
4114 | + <input type="hidden" value="next" value="{{ object.get_absolute_url }}" /> |
4115 | + <input type="submit" value="Submit Comment" /> |
4116 | + </td> |
4117 | + </tr> |
4118 | + </table> |
4119 | + </form> |
4120 | {% else %} |
4121 | - <p>Log in to post comments</p> |
4122 | + <h3 class="title">Comments</h3> |
4123 | + <div class="info_line errormessage show_center"> |
4124 | + <br /> |
4125 | + !!! Log in to post comments !!! |
4126 | + <br /> |
4127 | + <br /> |
4128 | + </div> |
4129 | {% endif %} |
4130 | + </div> |
4131 | |
4132 | |
4133 | |
4134 | === modified file 'templates/threadedcomments/preview_comment.html' |
4135 | --- templates/threadedcomments/preview_comment.html 2010-01-04 21:48:27 +0000 |
4136 | +++ templates/threadedcomments/preview_comment.html 2010-10-30 22:51:06 +0000 |
4137 | @@ -7,24 +7,22 @@ |
4138 | <div id="comment_preview">{% auto_transform_markup comment %}</div> |
4139 | {% endif %} |
4140 | <form method="POST" action=""> |
4141 | - <div class="content"> |
4142 | + <div class="content"> |
4143 | <table class="text" width="100%"> |
4144 | - <tr> |
4145 | - <td width="99%"> |
4146 | - <span class=errorclass">{{ form.comment.errors }}</span> |
4147 | - {{ form.comment }} |
4148 | - </td> |
4149 | - <td width="1%"></td> |
4150 | - </tr> |
4151 | + <tr> |
4152 | + <td width="99%"> |
4153 | + <span class="errormessage">{{ form.comment.errors }}</span> |
4154 | + {{ form.comment }} |
4155 | + </td> |
4156 | + <td width="1%"></td> |
4157 | + </tr> |
4158 | + <tr> |
4159 | + <td class="bottom_line show_center"> |
4160 | + <input type="hidden" name="markup" value="1" /> |
4161 | + <input type="submit" value="Submit Comment" /> |
4162 | + </td> |
4163 | + </tr> |
4164 | </table> |
4165 | - </div> |
4166 | - <table class="bottom_line" width="100%"> |
4167 | - <tr> |
4168 | - <td class="admin"> |
4169 | - <input type="hidden" name="markup" value="1" /> |
4170 | - <input type="submit" value="Submit Comment" /> |
4171 | - </td> |
4172 | - </tr> |
4173 | - </table> |
4174 | - </form> |
4175 | + </div> |
4176 | + </form> |
4177 | {% endblock %} |
4178 | |
4179 | === added directory 'templates/wlggz' |
4180 | === added file 'templates/wlggz/base.html' |
4181 | --- templates/wlggz/base.html 1970-01-01 00:00:00 +0000 |
4182 | +++ templates/wlggz/base.html 2010-10-30 22:51:06 +0000 |
4183 | @@ -0,0 +1,12 @@ |
4184 | +{% extends "base.html" %} |
4185 | +{% comment %} |
4186 | + vim:ft=htmldjango |
4187 | +{% endcomment %} |
4188 | + |
4189 | +{% block title %} |
4190 | +GGZ statistics - {{ block.super }} |
4191 | +{% endblock %} |
4192 | + |
4193 | +{% block extra_head %} |
4194 | +<link rel="stylesheet" type="text/css" media="all" href="{{ MEDIA_URL }}/css/ggz.css" />{{ block.super}} |
4195 | +{% endblock %} |
4196 | |
4197 | === added file 'templates/wlggz/edit_ggz.html' |
4198 | --- templates/wlggz/edit_ggz.html 1970-01-01 00:00:00 +0000 |
4199 | +++ templates/wlggz/edit_ggz.html 2010-10-30 22:51:06 +0000 |
4200 | @@ -0,0 +1,43 @@ |
4201 | +{% extends "wlggz/base.html" %} |
4202 | + |
4203 | +{% load i18n %} |
4204 | + |
4205 | +{% block content %} |
4206 | +{% include "django_messages/inlines/navigation.html" %} |
4207 | +<br /> |
4208 | +<br /> |
4209 | +<div class="box_item_model fixed_site border"> |
4210 | + <h3 class="title">{% trans "Set GGZ password" %}</h3> |
4211 | + <form method="post" enctype="multipart/form-data"> |
4212 | + <div class="content"> |
4213 | + <table cellspacing="1" class="text full_site"> |
4214 | + {% if profile_form.errors %} |
4215 | + <tr> |
4216 | + <td class="even" colspan="2">{{ profile_form.errors }}</td> |
4217 | + </tr> |
4218 | + {% endif %} |
4219 | + {% for field in ggz_form %} |
4220 | + <tr> |
4221 | + {% if field.errors %} |
4222 | + <td colspan="2" class="{% cycle "odd" "even" %}"> |
4223 | + <div class="errormessage">{{ field.errors }}</div> |
4224 | + </td> |
4225 | + </tr> |
4226 | + <tr> |
4227 | + {% endif %} |
4228 | + <td class="{% cycle "odd" "even" %}">{{ field.label_tag }}:</td> |
4229 | + <td class="{% cycle "odd" "even" %}">{{ field }} |
4230 | + {% ifequal field.name "time_display" %} |
4231 | + <a href="/wiki/HomepageDocuTimeDisplay">Documented here</a> |
4232 | + {% endifequal %} |
4233 | + </td> |
4234 | + </tr> |
4235 | + {% endfor %} |
4236 | + </table> |
4237 | + </div> |
4238 | + <div class="info_line"> |
4239 | + <input type="submit" value="{% trans "Save" %}" /> |
4240 | + </div> |
4241 | + </form> |
4242 | +</div> |
4243 | +{% endblock %} |
4244 | |
4245 | === added file 'templates/wlggz/view_ggz_highscore.html' |
4246 | --- templates/wlggz/view_ggz_highscore.html 1970-01-01 00:00:00 +0000 |
4247 | +++ templates/wlggz/view_ggz_highscore.html 2010-10-30 22:51:06 +0000 |
4248 | @@ -0,0 +1,43 @@ |
4249 | +{% extends "wlggz/base.html" %} |
4250 | + |
4251 | +{% load i18n %} |
4252 | + |
4253 | +{% block content %} |
4254 | +{% load custom_date %} |
4255 | +{% load wlprofile %} |
4256 | + |
4257 | +{% include "django_messages/inlines/navigation.html" %} |
4258 | + |
4259 | +<br /> |
4260 | +<br /> |
4261 | +<div class="box_item_model fixed_site border"> |
4262 | + <h3 class="title">Top ten widelands players</h3> |
4263 | + <table cellspacing="1" class="text full_site"> |
4264 | + <tr> |
4265 | + <td>User</td> |
4266 | + <td>ranking</td> |
4267 | + <td>rating</td> |
4268 | + <td>wins</td> |
4269 | + <td>losses</td> |
4270 | + </tr> |
4271 | + {% for userstat in ggzstats %} |
4272 | + <tr> |
4273 | + <td class="{% cycle "odd" "even" %}"><a href="{% url wlggz_userstats userstat.handle %}">{{ userstat.handle }}</a></td> |
4274 | + <td class="{% cycle "odd" "even" %}"> {{ userstat.ranking|floatformat }} </td> |
4275 | + <td class="{% cycle "odd" "even" %}"> {{ userstat.rating|floatformat }} </td> |
4276 | + <td class="{% cycle "odd" "even" %}"> {{ userstat.wins|floatformat }} </td> |
4277 | + <td class="{% cycle "odd" "even" %}"> {{ userstat.losses|floatformat }} </td> |
4278 | + </tr> |
4279 | + {% empty %} |
4280 | + <tr> |
4281 | + <td class="even show_center" colspan="5"> |
4282 | + <br /> |
4283 | + <b>Sorry, no ranking yet</b> |
4284 | + <br /> |
4285 | + <br /> |
4286 | + </td> |
4287 | + </tr> |
4288 | + {% endfor %} |
4289 | + </table> |
4290 | +</div> |
4291 | +{% endblock %} |
4292 | |
4293 | === added file 'templates/wlggz/view_ggz_matches.html' |
4294 | --- templates/wlggz/view_ggz_matches.html 1970-01-01 00:00:00 +0000 |
4295 | +++ templates/wlggz/view_ggz_matches.html 2010-10-30 22:51:06 +0000 |
4296 | @@ -0,0 +1,45 @@ |
4297 | +{% extends "wlggz/base.html" %} |
4298 | + |
4299 | +{% load i18n %} |
4300 | + |
4301 | +{% block content %} |
4302 | +{% load custom_date %} |
4303 | +{% load wlprofile %} |
4304 | + |
4305 | +{% include "django_messages/inlines/navigation.html" %} |
4306 | + |
4307 | +<br /> |
4308 | +<br /> |
4309 | +<div class="box_item_model fixed_site border"> |
4310 | + <h3 class="title">Last 10 matches</h3> |
4311 | + <table cellspacing="1" class="text full_site"> |
4312 | + <tr> |
4313 | + <td class="ggz_date">Date</td> |
4314 | + <td class="ggz_winner">Winner</td> |
4315 | + <td class="ggz_vs">Participants</td> |
4316 | + </tr> |
4317 | + {% for match in ggzmatches %} |
4318 | + <tr> |
4319 | + <td class="{% cycle "odd" "even" %}">{{ match.date_date }}</td> |
4320 | + <td class="{% cycle "odd" "even" %}"> |
4321 | + {{ match.winner_as_userlink }} |
4322 | + </td> |
4323 | + <td class="{% cycle "odd" "even" %}"> |
4324 | + {% for player in match.wlggz_matchplayers.all %} |
4325 | + {{ player.handle_as_userlink }}({{ player.result }}, {{ player.points }}) |
4326 | + {% endfor %} |
4327 | + </td> |
4328 | + </tr> |
4329 | + {% empty %} |
4330 | + <tr> |
4331 | + <td class="even show_center" colspan="3"> |
4332 | + <br /> |
4333 | + <b>Sorry, no matches yet</b> |
4334 | + <br /> |
4335 | + <br /> |
4336 | + </td> |
4337 | + </tr> |
4338 | + {% endfor %} |
4339 | + </table> |
4340 | +</div> |
4341 | +{% endblock %} |
4342 | |
4343 | === added file 'templates/wlggz/view_ggz_overview.html' |
4344 | --- templates/wlggz/view_ggz_overview.html 1970-01-01 00:00:00 +0000 |
4345 | +++ templates/wlggz/view_ggz_overview.html 2010-10-30 22:51:06 +0000 |
4346 | @@ -0,0 +1,27 @@ |
4347 | +{% extends "wlggz/base.html" %} |
4348 | + |
4349 | +{% load i18n %} |
4350 | + |
4351 | +{% block content %} |
4352 | +{% load custom_date %} |
4353 | + |
4354 | +{% include "django_messages/inlines/navigation.html" %} |
4355 | +<br /> |
4356 | +<br /> |
4357 | +<div class="box_item_model fixed_site border"> |
4358 | + <h3 class="title">{% trans "Available Links" %}</h3> |
4359 | + <div class="info_line show_left"> |
4360 | + <br /> |
4361 | + <a href="{% url wlggz_matches %}">Last matches</a><br /> |
4362 | + <a href="{% url wlggz_ranking %}">GGZ ranking</a><br /> |
4363 | + <br /> |
4364 | + {% if user.is_authenticated %} |
4365 | + <a href="{% url wlggz_userstats %}">View your ggz statistics</a><br /> |
4366 | + <a href="{% url wlggz_userinfo %}">About your ggz account</a><br /> |
4367 | + <a href="{% url wlggz_changepw %}">Change your ggz password</a><br /> |
4368 | + <br /> |
4369 | + {% endif %} |
4370 | + </div> |
4371 | +</div> |
4372 | + |
4373 | +{% endblock %} |
4374 | |
4375 | === added file 'templates/wlggz/view_ggz_playerstats.html' |
4376 | --- templates/wlggz/view_ggz_playerstats.html 1970-01-01 00:00:00 +0000 |
4377 | +++ templates/wlggz/view_ggz_playerstats.html 2010-10-30 22:51:06 +0000 |
4378 | @@ -0,0 +1,106 @@ |
4379 | +{% extends "wlggz/base.html" %} |
4380 | + |
4381 | +{% load i18n %} |
4382 | + |
4383 | +{% block content %} |
4384 | +{% load custom_date %} |
4385 | +{% load wlprofile %} |
4386 | + |
4387 | +{% include "django_messages/inlines/navigation.html" %} |
4388 | + |
4389 | +<br /> |
4390 | +<br /> |
4391 | + |
4392 | +{% if ggzauth.user %} |
4393 | + <div class="box_item_model fixed_site border"> |
4394 | + <h3 class="title">{% trans "GGZ results for" %} {{ ggzauth.user.username }}</h3> |
4395 | + <table class="info_line full_site"> |
4396 | + <tr><td class="ggz_stats">Last ggz login:</td><td class="show_left"> {{ ggzauth.lastlogin }}</td></tr> |
4397 | + <tr><td class="ggz_stats">Ranking:</td><td class="show_left"> {{ ggzstats.ranking }}</td></tr> |
4398 | + <tr><td class="ggz_stats">Rating:</td><td class="show_left"> {{ ggzstats.rating|floatformat }}</td></tr> |
4399 | + <tr><td class="ggz_stats">wins:</td><td class="show_left"> {{ ggzstats.wins }}</td></tr> |
4400 | + <tr><td class="ggz_stats">losses:</td><td class="show_left"> {{ ggzstats.losses }}</td></tr> |
4401 | + </table> |
4402 | + </div> |
4403 | + <br /> |
4404 | + <br /> |
4405 | + |
4406 | + <div class="box_item_model fixed_site border"> |
4407 | + <h3 class="title">Last 10 matches of {{ ggzauth.user.username }}</h3> |
4408 | + {% if ggzmatches %} |
4409 | + <table width="100%" cellspacing="1" class="text"> |
4410 | + <tr> |
4411 | + <td class="ggz_date">Date</td> |
4412 | + <td class="ggz_winner">Winner</td> |
4413 | + <td class="ggz_vs">Participants</td> |
4414 | + </tr> |
4415 | + {% for match in ggzmatches %} |
4416 | + <tr> |
4417 | + <td class="{% cycle "odd" "even" %}">{{ match.match.date_date }}</td> |
4418 | + <td class="{% cycle "odd" "even" %}"> |
4419 | + {% if match.match.winner %} |
4420 | + {{ match.match.winner_as_userlink }} |
4421 | + {% endif %} |
4422 | + </td> |
4423 | + <td class="{% cycle "odd" "even" %}"> |
4424 | + {% for player in match.match.wlggz_matchplayers.all %} |
4425 | + {{ player.handle_as_userlink }} |
4426 | + {% endfor %} |
4427 | + </td class="{% cycle "odd" "even" %}"> |
4428 | + </tr> |
4429 | + {% endfor %} |
4430 | + </table> |
4431 | + {% else %} |
4432 | + <div class="info_line show_center"> |
4433 | + <br /> |
4434 | + <b>User has not participated in any matches</b> |
4435 | + <br /> |
4436 | + <br /> |
4437 | + </div> |
4438 | + {% endif %} |
4439 | + </div> |
4440 | + <br /> |
4441 | + <br /> |
4442 | + <div class="box_item_model fixed_site border"> |
4443 | + <h3 class="title">Last 10 matches {{ ggzauth.user.username }} won</h3> |
4444 | + {% if ggzwonmatches %} |
4445 | + <table cellspacing="1" class="text full_site"> |
4446 | + <tr> |
4447 | + <td class="ggz_date">Date</td> |
4448 | + <td class="ggz_winner">Winner</td> |
4449 | + <td class="ggz_vs">Participants</td> |
4450 | + </tr> |
4451 | + {% for match in ggzwonmatches %} |
4452 | + <tr> |
4453 | + <td class="{% cycle "odd" "even" %}">{{ match.date_date }}</td> |
4454 | + <td class="{% cycle "odd" "even" %}">{{ match.winner_as_userlink }}</td> |
4455 | + <td class="{% cycle "odd" "even" %}"> |
4456 | + {% for player in match.wlggz_matchplayers.all %} |
4457 | + {{ player.handle_as_userlink }} |
4458 | + {% endfor %} |
4459 | + </td> |
4460 | + </tr> |
4461 | + {% endfor %} |
4462 | + </table> |
4463 | + {% else %} |
4464 | + <div class="info_line show_center"> |
4465 | + <br /> |
4466 | + <b>User has won no matches</b> |
4467 | + <br /> |
4468 | + <br /> |
4469 | + </div> |
4470 | + {% endif %} |
4471 | + </div> |
4472 | +{% else %} |
4473 | + <div class="box_item_model"> |
4474 | + <h3 class="title">{% trans "GGZ results for" %} {{ ggzauth.user.username }}</h3> |
4475 | + <div class="info_line show_center"> |
4476 | + <br /> |
4477 | + <b class="errormessage">User does not exist or has no ggz account |
4478 | + <br /> |
4479 | + <br /> |
4480 | + </table> |
4481 | + </div> |
4482 | +{% endif %} |
4483 | + |
4484 | +{% endblock %} |
4485 | |
4486 | === modified file 'templates/wlprofile/edit_profile.html' |
4487 | --- templates/wlprofile/edit_profile.html 2010-01-02 21:19:28 +0000 |
4488 | +++ templates/wlprofile/edit_profile.html 2010-10-30 22:51:06 +0000 |
4489 | @@ -4,11 +4,11 @@ |
4490 | |
4491 | {% block content %} |
4492 | {% ifequal user profile.user %} |
4493 | - {% include "messages/inlines/navigation.html" %} |
4494 | + {% include "django_messages/inlines/navigation.html" %} |
4495 | {% endifequal %} |
4496 | <br /> |
4497 | <br /> |
4498 | -<div class="profile_item"> |
4499 | +<div class="box_item_model fixed_site border"> |
4500 | <h3 class="title">{% trans "Profile editing" %}</h3> |
4501 | <div class="content"> |
4502 | {% if profile.avatar %} |
4503 | @@ -25,29 +25,54 @@ |
4504 | {% endif %} |
4505 | |
4506 | {% for field in profile_form %} |
4507 | + {% if field.errors %} |
4508 | <tr> |
4509 | - {% if field.errors %} |
4510 | <td colspan="2" class="{% cycle "odd" "even" %}"> |
4511 | <div class="errormessage">{{ field.errors }}</div> |
4512 | </td> |
4513 | </tr> |
4514 | + {% endif %} |
4515 | + {% ifequal field.name "delete_avatar" %} |
4516 | + {% if profile.avatar %} |
4517 | <tr> |
4518 | + <td class="{% cycle "odd" "even" %}">{{ field.label_tag }}:</td> |
4519 | + <td class="{% cycle "odd" "even" %}">{{ field }} |
4520 | + </tr> |
4521 | {% endif %} |
4522 | - <td {% ifequal field.name "signature" %} valign="top" {% endifequal %}class="{% cycle "odd" "even" %}">{{ field.label_tag }}:</td> |
4523 | - <td class="{% cycle "odd" "even" %}">{{ field }} |
4524 | + {% else %} |
4525 | + <tr> |
4526 | + <td class="{% cycle "odd" "even" %} {%ifequal field.name "signature" %}show_left{% endifequal %}">{{ field.label_tag }}:</td> |
4527 | + <td class="{% cycle "odd" "even" %}">{{ field }} |
4528 | {% ifequal field.name "time_display" %} |
4529 | <a href="/wiki/HomepageDocuTimeDisplay">Documented here</a> |
4530 | {% endifequal %} |
4531 | </td> |
4532 | </tr> |
4533 | + {% endifequal %} |
4534 | {% endfor %} |
4535 | </table> |
4536 | - </div> |
4537 | - <table class="bottom_line" width="100%"> |
4538 | - <tr> |
4539 | - <td><input type="submit" value="{% trans "Save" %}" /></td> |
4540 | - </tr> |
4541 | - </table> |
4542 | + </div> |
4543 | + <div class="info_line"> |
4544 | + <input type="submit" value="{% trans "Save" %}" /> |
4545 | + </div> |
4546 | </form> |
4547 | </div> |
4548 | +<br /> |
4549 | +<div class="box_item_model fixed_site border"> |
4550 | + <div class="info_line show_left"> |
4551 | + <a href="{% url auth_change_password %}">Change website password</a> |
4552 | + <br /> |
4553 | + <br /> |
4554 | + <b class="errormessage">WARNING: Passwords are transmitted in cleartext.</b> |
4555 | + </div> |
4556 | +</div> |
4557 | +<br /> |
4558 | +<div class="box_item_model fixed_site border"> |
4559 | + <div class="info_line show_left"> |
4560 | + <a href="{% url wlggz_changepw %}">Change online lobby password</a> |
4561 | + <br /> |
4562 | + <br /> |
4563 | + <b class="errormessage">WARNING: GGZ transmitts the password in cleartext. Choose a different password for online gaming.</b> |
4564 | + </div> |
4565 | +</div> |
4566 | {% endblock %} |
4567 | |
4568 | === modified file 'templates/wlprofile/view_profile.html' |
4569 | --- templates/wlprofile/view_profile.html 2010-01-03 14:37:49 +0000 |
4570 | +++ templates/wlprofile/view_profile.html 2010-10-30 22:51:06 +0000 |
4571 | @@ -5,18 +5,17 @@ |
4572 | {% block content %} |
4573 | {% load custom_date %} |
4574 | |
4575 | -{% ifequal user profile.user %} |
4576 | -{% include "messages/inlines/navigation.html" %} |
4577 | -{%endifequal%} |
4578 | -<br /> |
4579 | -<br /> |
4580 | -<div class="profile_item"> |
4581 | +{% include "django_messages/inlines/navigation.html" %} |
4582 | + |
4583 | +<br /> |
4584 | +<br /> |
4585 | +<div class="box_item_model fixed_site border"> |
4586 | <h3 class="title">{% trans "View Profile" %}</h3> |
4587 | <div class="content"> |
4588 | {% if profile.avatar %} |
4589 | <img src="{{ profile.avatar.url }}" /> |
4590 | {% endif %} |
4591 | - <table width="100%" cellspacing="1" class="text"> |
4592 | + <table cellspacing="1" class="text full_site"> |
4593 | <tr> |
4594 | <td class="odd">User:</td> |
4595 | <td class="odd">{{ profile.user.username }}</td> |
4596 | @@ -57,14 +56,19 @@ |
4597 | <td class="even">Yahoo:</td> |
4598 | <td class="even">{{ profile.yahoo }}</td> |
4599 | </tr> |
4600 | + <tr> |
4601 | + <td class="odd show_left">Signature:</td> |
4602 | + <td class="odd show_left">{{ profile.signature|urlize|linebreaks }}</td> |
4603 | + </tr> |
4604 | {% ifequal user profile.user %} |
4605 | <tr> |
4606 | - <td class="odd">Email:</td> |
4607 | - <td class="odd">{{ profile.user.email }}</td> |
4608 | + <td class="even">Email:</td> |
4609 | + <td class="even">{{ profile.user.email }}</td> |
4610 | </tr> |
4611 | {% endifequal %} |
4612 | </table> |
4613 | </div> |
4614 | +{% comment %} |
4615 | <table class="bottom_line" width="100%"> |
4616 | <tr> |
4617 | <td> |
4618 | @@ -76,5 +80,13 @@ |
4619 | </td> |
4620 | </tr> |
4621 | </table> |
4622 | +<table class="bottom_line" width="100%"> |
4623 | + <tr> |
4624 | + <td> |
4625 | + <a href="{% url wlggz_userstats profile.user %}">View GGZ Statistics of this user</a> |
4626 | + </td> |
4627 | + </tr> |
4628 | +</table> |
4629 | +{% endcomment %} |
4630 | </div> |
4631 | {% endblock %} |
4632 | |
4633 | === modified file 'templates/wlwebchat/index.html' |
4634 | --- templates/wlwebchat/index.html 2010-09-06 19:10:18 +0000 |
4635 | +++ templates/wlwebchat/index.html 2010-10-30 22:51:06 +0000 |
4636 | @@ -18,7 +18,7 @@ |
4637 | |
4638 | <!-- Start of Webchat --> |
4639 | {% if user.is_anonymous %} |
4640 | -<iframe src="http://webchat.freenode.net?nick=guest&channels=widelands&uio=d4" width="647" height="400"></iframe> |
4641 | +<iframe src="http://webchat.freenode.net?nick=widelands_.&channels=widelands&uio=d4" width="647" height="400"></iframe> |
4642 | {% else %} |
4643 | <iframe src="http://webchat.freenode.net?nick={{ user.username }}&channels=widelands&uio=d4" width="100%" height="400"></iframe> |
4644 | {% endif %} |
4645 | |
4646 | === modified file 'urls.py' |
4647 | --- urls.py 2010-03-14 14:13:24 +0000 |
4648 | +++ urls.py 2010-10-30 22:51:06 +0000 |
4649 | @@ -22,6 +22,7 @@ |
4650 | # Django builtin / Registration |
4651 | (r'^accounts/logout/(next=(?P<next_page>.*))?$', 'django.contrib.auth.views.logout'), |
4652 | url (r'^accounts/register/$', 'mainpage.views.register', name='registration_register'), |
4653 | + url(r'^accounts/changepw/$', 'django.contrib.auth.views.password_change', name="auth_change_password"), |
4654 | (r'^accounts/', include('registration.backends.default.urls')), |
4655 | (r'^feeds/(?P<url>.*)/$', 'django.contrib.syndication.views.feed', {'feed_dict': feeds}), |
4656 | |
4657 | @@ -49,6 +50,7 @@ |
4658 | url(r'^poll/', include("wlpoll.urls")), |
4659 | url(r'^maps/', include("wlmaps.urls")), |
4660 | url(r'^screenshots/', include("wlscreens.urls")), |
4661 | + url(r'^ggz/', include("wlggz.urls")), |
4662 | ) |
4663 | |
4664 | try: |
4665 | |
4666 | === modified file 'wiki/feeds.py' |
4667 | --- wiki/feeds.py 2010-01-01 21:35:23 +0000 |
4668 | +++ wiki/feeds.py 2010-10-30 22:51:06 +0000 |
4669 | @@ -9,15 +9,16 @@ |
4670 | from django.template.loader import get_template |
4671 | from wiki.models import ChangeSet, Article |
4672 | from wiki.utils import get_ct |
4673 | -import notification.atomformat as atom |
4674 | +from django.utils.feedgenerator import Atom1Feed, Rss201rev2Feed |
4675 | |
4676 | ALL_ARTICLES = Article.objects.all() |
4677 | ALL_CHANGES = ChangeSet.objects.all() |
4678 | |
4679 | class RssHistoryFeed(Feed): |
4680 | |
4681 | + feed_type = Rss201rev2Feed |
4682 | title = 'History for all articles' |
4683 | - link = '/wiki/' |
4684 | + link = '/wiki/feeds/rss' |
4685 | description = 'Recent changes in wiki' |
4686 | |
4687 | def __init__(self, request, |
4688 | @@ -49,37 +50,21 @@ |
4689 | """ |
4690 | return item.modified |
4691 | |
4692 | - |
4693 | -class AtomHistoryFeed(atom.Feed): |
4694 | - |
4695 | - feed_title = 'History for all articles' |
4696 | + def item_author_name(self, item): |
4697 | + """ |
4698 | + Takes the object returned by get_object and returns the feeds's |
4699 | + auhor's name as a Python string |
4700 | + """ |
4701 | + if item.is_anonymous_change(): |
4702 | + return _("Anonymous") |
4703 | + return item.editor.username |
4704 | + |
4705 | + |
4706 | +class AtomHistoryFeed(RssHistoryFeed): |
4707 | + |
4708 | + feed_type = Atom1Feed |
4709 | feed_subtitle = 'Recent changes in wiki' |
4710 | - |
4711 | - def __init__(self, request, |
4712 | - group_slug=None, group_slug_field=None, group_qs=None, |
4713 | - article_qs=ALL_ARTICLES, changes_qs=ALL_CHANGES, |
4714 | - extra_context=None, |
4715 | - title_template = u'feeds/history_title.html', |
4716 | - description_template = u'feeds/history_description.html', |
4717 | - *args, **kw): |
4718 | - |
4719 | - if group_slug is not None: |
4720 | - group = get_object_or_404(group_qs, |
4721 | - **{group_slug_field : group_slug}) |
4722 | - self.changes_qs = changes_qs.filter(article__content_type=get_ct(group), |
4723 | - article__object_id=group.id) |
4724 | - else: |
4725 | - self.changes_qs = changes_qs |
4726 | - |
4727 | - self.title_template = get_template(title_template) |
4728 | - self.description_template = get_template(description_template) |
4729 | - super(AtomHistoryFeed, self).__init__('', request) |
4730 | - |
4731 | - def feed_id(self): |
4732 | - return "feed_id" |
4733 | - |
4734 | - def items(self): |
4735 | - return self.changes_qs.order_by('-modified')[:30] |
4736 | + link = '/wiki/feeds/atom' |
4737 | |
4738 | def item_id(self, item): |
4739 | return "%s" % item.id |
4740 | @@ -103,9 +88,19 @@ |
4741 | c = Context({'obj' : item,}) |
4742 | return ({'type': 'html'}, self.description_template.render(c)) |
4743 | |
4744 | + def item_author_name(self, item): |
4745 | + """ |
4746 | + Takes the object returned by get_object and returns the feeds's |
4747 | + auhor's name as a Python string |
4748 | + """ |
4749 | + if item.is_anonymous_change(): |
4750 | + return _("Anonymous") |
4751 | + return item.editor.username |
4752 | + |
4753 | |
4754 | class RssArticleHistoryFeed(Feed): |
4755 | |
4756 | + feed_type = Rss201rev2Feed |
4757 | def __init__(self, title, request, |
4758 | group_slug=None, group_slug_field=None, group_qs=None, |
4759 | article_qs=ALL_ARTICLES, changes_qs=ALL_CHANGES, |
4760 | @@ -150,27 +145,8 @@ |
4761 | return item.modified |
4762 | |
4763 | |
4764 | -class AtomArticleHistoryFeed(atom.Feed): |
4765 | - |
4766 | - def __init__(self, title, request, |
4767 | - group_slug=None, group_slug_field=None, group_qs=None, |
4768 | - article_qs=ALL_ARTICLES, changes_qs=ALL_CHANGES, |
4769 | - extra_context=None, |
4770 | - title_template = u'feeds/history_title.html', |
4771 | - description_template = u'feeds/history_description.html', |
4772 | - *args, **kw): |
4773 | - |
4774 | - if group_slug is not None: |
4775 | - group = get_object_or_404(group_qs, |
4776 | - **{group_slug_field : group_slug}) |
4777 | - self.article_qs = article_qs.filter(content_type=get_ct(group), |
4778 | - object_id=group.id) |
4779 | - else: |
4780 | - self.article_qs = article_qs |
4781 | - |
4782 | - self.title_template = get_template(title_template) |
4783 | - self.description_template = get_template(description_template) |
4784 | - super(AtomArticleHistoryFeed, self).__init__('', request) |
4785 | +class AtomArticleHistoryFeed(RssArticleHistoryFeed): |
4786 | + feed_type = Atom1Feed |
4787 | |
4788 | def get_object(self, bits): |
4789 | # We work around a bug here which is likely in atomformat.py; |
4790 | @@ -190,9 +166,6 @@ |
4791 | def feed_id(self): |
4792 | return "feed_id" |
4793 | |
4794 | - def items(self, obj): |
4795 | - return ChangeSet.objects.filter(article__id__exact=obj.id).order_by('-modified')[:30] |
4796 | - |
4797 | def item_id(self, item): |
4798 | return "%s" % item.id |
4799 | |
4800 | |
4801 | === added directory 'wlggz' |
4802 | === added file 'wlggz/__init__.py' |
4803 | === added file 'wlggz/admin.py' |
4804 | --- wlggz/admin.py 1970-01-01 00:00:00 +0000 |
4805 | +++ wlggz/admin.py 2010-10-30 22:51:06 +0000 |
4806 | @@ -0,0 +1,27 @@ |
4807 | +#!/usr/bin/env python -tt |
4808 | +# encoding: utf-8 |
4809 | +# |
4810 | +# File: wlggz/admin.py |
4811 | +# |
4812 | +# Created 2010-06-03 by Timo Wingender <timo.wingender@gmx.de> |
4813 | +# |
4814 | +# Last Modified: $Date$ |
4815 | +# |
4816 | + |
4817 | +from django.utils.translation import ugettext_lazy as _ |
4818 | +from django.contrib import admin |
4819 | +from models import GGZAuth |
4820 | + |
4821 | +class GGZAdmin(admin.ModelAdmin): |
4822 | + list_display = ['user', 'password', 'permissions', 'lastlogin'] |
4823 | + list_per_page = 20 |
4824 | + ordering = ['-user'] |
4825 | + search_fields = ['user__username', 'user__first_name', 'user__last_name'] |
4826 | + fieldsets = ( |
4827 | + (None, { |
4828 | + 'fields': ('user', 'password', 'permissions') |
4829 | + } |
4830 | + ), |
4831 | + ) |
4832 | + |
4833 | +admin.site.register(GGZAuth, GGZAdmin) |
4834 | |
4835 | === added file 'wlggz/fields.py' |
4836 | --- wlggz/fields.py 1970-01-01 00:00:00 +0000 |
4837 | +++ wlggz/fields.py 2010-10-30 22:51:06 +0000 |
4838 | @@ -0,0 +1,85 @@ |
4839 | +""" |
4840 | +Details about AutoOneToOneField: |
4841 | + http://softwaremaniacs.org/blog/2007/03/07/auto-one-to-one-field/ |
4842 | +""" |
4843 | + |
4844 | +from StringIO import StringIO |
4845 | +import logging |
4846 | + |
4847 | +from django.db.models import OneToOneField |
4848 | +from django.db.models.fields.related import SingleRelatedObjectDescriptor |
4849 | +from django.db import models |
4850 | +from django.core.files.uploadedfile import SimpleUploadedFile |
4851 | + |
4852 | + |
4853 | +class AutoSingleRelatedObjectDescriptor(SingleRelatedObjectDescriptor): |
4854 | + def __get__(self, instance, instance_type=None): |
4855 | + try: |
4856 | + return super(AutoSingleRelatedObjectDescriptor, self).__get__(instance, instance_type) |
4857 | + except self.related.model.DoesNotExist: |
4858 | + obj = self.related.model(**{self.related.field.name: instance}) |
4859 | + obj.save() |
4860 | + return obj |
4861 | + |
4862 | + |
4863 | +class AutoOneToOneField(OneToOneField): |
4864 | + """ |
4865 | + OneToOneField creates dependent object on first request from parent object |
4866 | + if dependent oject has not created yet. |
4867 | + """ |
4868 | + |
4869 | + def contribute_to_related_class(self, cls, related): |
4870 | + setattr(cls, related.get_accessor_name(), AutoSingleRelatedObjectDescriptor(related)) |
4871 | + #if not cls._meta.one_to_one_field: |
4872 | + #cls._meta.one_to_one_field = self |
4873 | + |
4874 | + |
4875 | +class ExtendedImageField(models.ImageField): |
4876 | + """ |
4877 | + Extended ImageField that can resize image before saving it. |
4878 | + """ |
4879 | + def __init__(self, *args, **kwargs): |
4880 | + self.width = kwargs.pop('width', None) |
4881 | + self.height = kwargs.pop('height', None) |
4882 | + super(ExtendedImageField, self).__init__(*args, **kwargs) |
4883 | + |
4884 | + |
4885 | + def save_form_data(self, instance, data): |
4886 | + if data and self.width and self.height: |
4887 | + if instance.avatar: |
4888 | + instance.avatar.delete() |
4889 | + |
4890 | + content = self.resize_image(data.read(), width=self.width, height=self.height) |
4891 | + data = SimpleUploadedFile(instance.user.username + ".png", content, data.content_type) |
4892 | + super(ExtendedImageField, self).save_form_data(instance, data) |
4893 | + |
4894 | + |
4895 | + def resize_image(self, rawdata, width, height): |
4896 | + """ |
4897 | + Resize image to fit it into (width, height) box. |
4898 | + """ |
4899 | + |
4900 | + try: |
4901 | + import Image |
4902 | + except ImportError: |
4903 | + from PIL import Image |
4904 | + |
4905 | + image = Image.open(StringIO(rawdata)) |
4906 | + try: |
4907 | + oldw, oldh = image.size |
4908 | + |
4909 | + if oldw > width or oldh > height: |
4910 | + if oldw >= oldh: |
4911 | + x = int(round((oldw - oldh) / 2.0)) |
4912 | + image = image.crop((x, 0, (x + oldh) - 1, oldh - 1)) |
4913 | + else: |
4914 | + y = int(round((oldh - oldw) / 2.0)) |
4915 | + image = image.crop((0, y, oldw - 1, (y + oldw) - 1)) |
4916 | + image = image.resize((width, height), resample=Image.ANTIALIAS) |
4917 | + except Exception, err: |
4918 | + logging.error(err) |
4919 | + return '' |
4920 | + |
4921 | + string = StringIO() |
4922 | + image.save(string, format='PNG') |
4923 | + return string.getvalue() |
4924 | |
4925 | === added file 'wlggz/forms.py' |
4926 | --- wlggz/forms.py 1970-01-01 00:00:00 +0000 |
4927 | +++ wlggz/forms.py 2010-10-30 22:51:06 +0000 |
4928 | @@ -0,0 +1,43 @@ |
4929 | +#!/usr/bin/env python -tt |
4930 | +# encoding: utf-8 |
4931 | +# |
4932 | +# Created by Timo Wingender <timo.wingender@gmx.de> on 2010-06-02. |
4933 | +# |
4934 | +# Last Modified: $Date$ |
4935 | +# |
4936 | + |
4937 | +from django import forms |
4938 | +from models import GGZAuth |
4939 | +from django.utils.translation import ugettext_lazy as _ |
4940 | + |
4941 | +import hashlib |
4942 | +import base64 |
4943 | +import settings |
4944 | +import re |
4945 | + |
4946 | +class EditGGZForm(forms.ModelForm): |
4947 | + password = forms.CharField(label=_(u'GGZ password'), widget = forms.PasswordInput(render_value = False), required=True) |
4948 | + |
4949 | + class Meta: |
4950 | + model = GGZAuth |
4951 | + fields = [ 'password', ] |
4952 | + |
4953 | + def __init__(self, *args, **kwargs): |
4954 | + instance = kwargs.pop("instance") |
4955 | + |
4956 | + print "instance: %s, kwargs: %s" % (instance, kwargs) |
4957 | + super(EditGGZForm, self).__init__(instance=instance, *args,**kwargs) |
4958 | + |
4959 | + def clean_password(self): |
4960 | + pw = self.cleaned_data['password'] |
4961 | + print "pw: %s" % (pw) |
4962 | + pw_hash = hashlib.sha1(pw).digest() |
4963 | + pw_base64 = base64.standard_b64encode(pw_hash) |
4964 | + print "sha1: %s" % (pw_hash) |
4965 | + print "base: %s" % (pw_base64) |
4966 | + return pw_base64 |
4967 | + |
4968 | + |
4969 | + def save(self): |
4970 | + super(EditGGZForm, self).save() |
4971 | + |
4972 | |
4973 | === added file 'wlggz/ggz_models.py' |
4974 | --- wlggz/ggz_models.py 1970-01-01 00:00:00 +0000 |
4975 | +++ wlggz/ggz_models.py 2010-10-30 22:51:06 +0000 |
4976 | @@ -0,0 +1,189 @@ |
4977 | +#!/usr/bin/env python -tt |
4978 | +# encoding: utf-8 |
4979 | +# |
4980 | +# Created by Timo Wingender <timo.wingender@gmx.de> on 2010-06-03. |
4981 | +# |
4982 | +# Last Modified: $Date$ |
4983 | +# |
4984 | + |
4985 | + |
4986 | +# This is an auto-generated and eddited representation for the ggzd tables. |
4987 | +# |
4988 | + |
4989 | +from django.db import models |
4990 | +from django.db.models import OneToOneField, ForeignKey |
4991 | +from django.contrib.auth.models import User |
4992 | +from django.core.urlresolvers import reverse |
4993 | +from django.utils.safestring import mark_safe |
4994 | + |
4995 | +import datetime |
4996 | + |
4997 | +def ggz_userlink(user): |
4998 | + data = u'<a href="%s">%s</a>' % (\ |
4999 | + reverse('wlggz_userstats', args=[user.username]), user.username) |
5000 | + return mark_safe(data) |