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 | 1006 | text = (data.replace("&", "&").replace("<", "<") | 1006 | text = (data.replace("&", "&").replace("<", "<") |
6 | 1007 | .replace(">", ">").replace("\n", "¶<BR>")) | 1007 | .replace(">", ">").replace("\n", "¶<BR>")) |
7 | 1008 | if op == self.DIFF_INSERT: | 1008 | if op == self.DIFF_INSERT: |
9 | 1009 | html.append("<INS STYLE=\"color: #00FF00;\" TITLE=\"i=%i\">%s</INS>" | 1009 | html.append("<SPAN STYLE=\"color: #00FF00;\" TITLE=\"i=%i\">%s</SPAN>" |
10 | 1010 | % (i, text)) | 1010 | % (i, text)) |
11 | 1011 | elif op == self.DIFF_DELETE: | 1011 | elif op == self.DIFF_DELETE: |
13 | 1012 | html.append("<DEL STYLE=\"color: #FF0000;\" TITLE=\"i=%i\">%s</DEL>" | 1012 | html.append("<SPAN STYLE=\"color: #FF0000;\" TITLE=\"i=%i\">%s</SPAN>" |
14 | 1013 | % (i, text)) | 1013 | % (i, text)) |
15 | 1014 | elif op == self.DIFF_EQUAL: | 1014 | elif op == self.DIFF_EQUAL: |
16 | 1015 | html.append("<SPAN TITLE=\"i=%i\">%s</SPAN>" % (i, text)) | 1015 | html.append("<SPAN TITLE=\"i=%i\">%s</SPAN>" % (i, text)) |
17 | 1016 | 1016 | ||
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 | 1 | /* HEADER */ | 1 | /* HEADER */ |
23 | 2 | div#headerbanner { | 2 | div#headerbanner { |
30 | 3 | background: url(../img/headback.jpg); | 3 | background: url(../img/headback.jpg); |
31 | 4 | background-repeat: repeat-x; | 4 | background-repeat: repeat-x; |
32 | 5 | color: #FFFFFF; | 5 | color: #FFFFFF; |
33 | 6 | text-align: center; | 6 | text-align: center; |
34 | 7 | height:110px; | 7 | height:110px; |
35 | 8 | border-bottom:2px solid #090909; | 8 | order-bottom:2px solid #090909; |
36 | 9 | } | 9 | } |
37 | 10 | 10 | ||
38 | 11 | /***************************************************************/ | 11 | /***************************************************************/ |
39 | 12 | /* SIDECOLUMNS */ | 12 | /* SIDECOLUMNS */ |
40 | 13 | /***************************************************************/ | 13 | /***************************************************************/ |
41 | 14 | #leftcolumn, #rightcolumn { | 14 | #leftcolumn, #rightcolumn { |
49 | 15 | background-color: #555555; | 15 | background-color: #555555; |
50 | 16 | background-image: url('../img/Menubackground.png'); | 16 | background-image: url('../img/Menubackground.png'); |
51 | 17 | border-left: 1px solid #151515; | 17 | border-left: 1px solid #151515; |
52 | 18 | border-right: 1px solid #090909; | 18 | border-right: 1px solid #090909; |
53 | 19 | border-bottom: 1px solid #090909; | 19 | border-bottom: 1px solid #090909; |
54 | 20 | padding-top: 4px; /* A small space */ | 20 | padding-top: 4px; /* A small space */ |
55 | 21 | vertical-align: top; | 21 | vertical-align: top; |
56 | 22 | 22 | ||
57 | 23 | } | 23 | } |
58 | 24 | /* The content is capsuled in divs, because | 24 | /* The content is capsuled in divs, because |
59 | @@ -26,10 +26,10 @@ | |||
60 | 26 | * for tables | 26 | * for tables |
61 | 27 | */ | 27 | */ |
62 | 28 | #leftcontent { | 28 | #leftcontent { |
64 | 29 | min-width: 175px; | 29 | min-width: 175px; |
65 | 30 | } | 30 | } |
68 | 31 | #rightcontent { | 31 | #rightcontent { |
69 | 32 | min-width: 170px; | 32 | min-width: 170px; |
70 | 33 | } | 33 | } |
71 | 34 | 34 | ||
72 | 35 | 35 | ||
73 | @@ -37,19 +37,19 @@ | |||
74 | 37 | * Mainmenu | 37 | * Mainmenu |
75 | 38 | */ | 38 | */ |
76 | 39 | #mainmenu { | 39 | #mainmenu { |
79 | 40 | margin: 0px; | 40 | margin: 0px; |
80 | 41 | padding: 0px; | 41 | padding: 0px; |
81 | 42 | } | 42 | } |
82 | 43 | #mainmenu li { | 43 | #mainmenu li { |
87 | 44 | list-style-image: url('../img/1.gif'); | 44 | list-style-image: url('../img/1.gif'); |
88 | 45 | list-style-position: inside; | 45 | list-style-position: inside; |
89 | 46 | font-weight: bold; | 46 | font-weight: bold; |
90 | 47 | padding: 4px; | 47 | padding: 4px; |
91 | 48 | } | 48 | } |
92 | 49 | #mainmenu .sub { | 49 | #mainmenu .sub { |
96 | 50 | padding-left: 20px; | 50 | padding-left: 20px; |
97 | 51 | color: red; | 51 | color: red; |
98 | 52 | font-weight: normal; | 52 | font-weight: normal; |
99 | 53 | } | 53 | } |
100 | 54 | 54 | ||
101 | 55 | 55 | ||
102 | @@ -57,52 +57,55 @@ | |||
103 | 57 | /* CONTENT COLUMN */ | 57 | /* CONTENT COLUMN */ |
104 | 58 | /******************/ | 58 | /******************/ |
105 | 59 | #content { | 59 | #content { |
112 | 60 | text-align: left; | 60 | text-align: left; |
113 | 61 | vertical-align: top; | 61 | vertical-align: top; |
114 | 62 | padding: 8px; | 62 | padding: 8px; |
115 | 63 | padding-top: 0px; | 63 | padding-top: 0px; |
116 | 64 | background-color: #333333; | 64 | background-color: #000000; |
117 | 65 | background: url(../img/background.png); | 65 | background: url(../img/background.png); |
118 | 66 | 66 | ||
122 | 67 | font-size: 12px; | 67 | font-size: 12px; |
123 | 68 | color: #D0DFFF; | 68 | color: #D0DFFF; |
124 | 69 | width: 100%; | 69 | width: 100%; |
125 | 70 | } | 70 | } |
126 | 71 | 71 | ||
127 | 72 | /****************/ | 72 | /****************/ |
128 | 73 | /* BOTTOM TABLE */ | 73 | /* BOTTOM TABLE */ |
129 | 74 | /****************/ | 74 | /****************/ |
130 | 75 | table#table_bottom { | 75 | table#table_bottom { |
133 | 76 | background-color: #333333; | 76 | background-color: #333333; |
134 | 77 | background: url(../img/background.png); | 77 | background: url(../img/background.png); |
135 | 78 | 78 | ||
137 | 79 | width: 100%; | 79 | width: 100%; |
138 | 80 | } | 80 | } |
139 | 81 | td#table_bottomleft { | 81 | td#table_bottomleft { |
145 | 82 | background: url(../img/table_bottomleft.png); | 82 | background: url(../img/table_bottomleft.png); |
146 | 83 | background-repeat: no-repeat; | 83 | background-repeat: no-repeat; |
147 | 84 | background-position: left; | 84 | background-position: left; |
148 | 85 | height:8px; | 85 | height:8px; |
149 | 86 | width:8px; | 86 | width:8px; |
150 | 87 | } | 87 | } |
151 | 88 | 88 | ||
152 | 89 | td#table_bottomright { | 89 | td#table_bottomright { |
158 | 90 | background: url(../img/table_bottomright.png); | 90 | background: url(../img/table_bottomright.png); |
159 | 91 | background-repeat: no-repeat; | 91 | background-repeat: no-repeat; |
160 | 92 | background-position: right; | 92 | background-position: right; |
161 | 93 | height:8px; | 93 | height:8px; |
162 | 94 | width:8px; | 94 | width:8px; |
163 | 95 | } | 95 | } |
164 | 96 | 96 | ||
165 | 97 | /**********/ | 97 | /**********/ |
166 | 98 | /* FOOTER */ | 98 | /* FOOTER */ |
167 | 99 | /**********/ | 99 | /**********/ |
168 | 100 | #footer { | 100 | #footer { |
172 | 101 | width: 100%; | 101 | width: 100%; |
173 | 102 | height: 8px; | 102 | height: 8px; |
174 | 103 | background: url(../img/background.png); | 103 | background: url(../img/background.png); |
175 | 104 | } | 104 | } |
177 | 105 | /* Menu Blocks */ | 105 | |
178 | 106 | /* | ||
179 | 107 | * Menu Blocks | ||
180 | 108 | */ | ||
181 | 106 | h3.box_title { | 109 | h3.box_title { |
182 | 107 | color: #D0DFFF; | 110 | color: #D0DFFF; |
183 | 108 | font-weight: bold; | 111 | font-weight: bold; |
184 | @@ -117,96 +120,100 @@ | |||
185 | 117 | padding-bottom: 6px; | 120 | padding-bottom: 6px; |
186 | 118 | margin: 0px; | 121 | margin: 0px; |
187 | 119 | } | 122 | } |
188 | 123 | |||
189 | 120 | div.box_content { | 124 | div.box_content { |
199 | 121 | font-size:12px; | 125 | font-size:12px; |
200 | 122 | line-height: 120%; | 126 | line-height: 120%; |
201 | 123 | border-left: 0px solid #999999; | 127 | border-left: 0px solid #999999; |
202 | 124 | border-right: 0px solid #999999; | 128 | border-right: 0px solid #999999; |
203 | 125 | padding: 6px; | 129 | padding: 6px; |
204 | 126 | padding-top: 0px; | 130 | padding-top: 0px; |
205 | 127 | padding-bottom: 20px; | 131 | padding-bottom: 20px; |
206 | 128 | background-color: #555555; | 132 | background-color: #555555; |
207 | 129 | background-image: url('../img/Menubackground.png'); | 133 | background-image: url('../img/Menubackground.png'); |
208 | 130 | } | 134 | } |
209 | 135 | |||
210 | 131 | .box_content p { | 136 | .box_content p { |
214 | 132 | margin: 0px; | 137 | margin: 0px; |
215 | 133 | padding: 0px; | 138 | padding: 0px; |
216 | 134 | padding-bottom: 4px; | 139 | padding-bottom: 4px; |
217 | 135 | } | 140 | } |
218 | 136 | 141 | ||
219 | 142 | .block_center { | ||
220 | 143 | text-align: center; | ||
221 | 144 | } | ||
222 | 137 | 145 | ||
223 | 138 | /***************************************************************/ | 146 | /***************************************************************/ |
224 | 139 | /* GENERAL STYLE ELEMENTS */ | 147 | /* GENERAL STYLE ELEMENTS */ |
225 | 140 | /***************************************************************/ | 148 | /***************************************************************/ |
226 | 141 | body { | 149 | body { |
233 | 142 | color: #D0DFFF; | 150 | color: #D0DFFF; |
234 | 143 | font-family: Verdana, Arial, Helvetica, sans-serif; | 151 | font-family: Verdana, Arial, Helvetica, sans-serif; |
235 | 144 | font-size: 12px; | 152 | font-size: 12px; |
236 | 145 | background-color: #000000; | 153 | background-color: #000000; |
237 | 146 | margin: 0; | 154 | margin: 0; |
238 | 147 | padding: 0; | 155 | padding: 0; |
239 | 148 | } | 156 | } |
240 | 149 | 157 | ||
241 | 150 | img { | 158 | img { |
243 | 151 | border: 0px; | 159 | border: 0px; |
244 | 152 | } | 160 | } |
245 | 153 | 161 | ||
246 | 154 | a { | 162 | a { |
251 | 155 | color: #D0DFFF; | 163 | color: #D0DFFF; |
252 | 156 | text-decoration: none; | 164 | text-decoration: none; |
253 | 157 | font-weight: bold; | 165 | font-weight: bold; |
254 | 158 | background-color: transparent; | 166 | background-color: transparent; |
255 | 159 | } | 167 | } |
256 | 160 | a.external:before { | 168 | a.external:before { |
257 | 161 | padding-right: 2px; | 169 | padding-right: 2px; |
260 | 162 | /* Must be an absolute reference, otherwise some browsers give errors */ | 170 | /* Must be an absolute reference, otherwise some browsers give errors */ |
261 | 163 | content: url(/wlmedia/img/external_link.gif); | 171 | content: url(/wlmedia/img/external_link.gif); |
262 | 164 | } | 172 | } |
263 | 165 | a.missing { | 173 | a.missing { |
265 | 166 | color: rgb(255, 85, 0); | 174 | color: rgb(255, 85, 0); |
266 | 167 | } | 175 | } |
267 | 168 | 176 | ||
268 | 169 | 177 | ||
269 | 170 | a:hover { | 178 | a:hover { |
272 | 171 | color: #A0AAFF; | 179 | color: #A0AAFF; |
273 | 172 | text-decoration: underline; | 180 | text-decoration: underline; |
274 | 173 | } | 181 | } |
277 | 174 | 182 | ||
276 | 175 | |||
278 | 176 | /* | 183 | /* |
279 | 177 | * Default table layout | 184 | * Default table layout |
280 | 178 | */ | 185 | */ |
281 | 179 | th { | 186 | th { |
289 | 180 | font-weight: bold; | 187 | font-weight: bold; |
290 | 181 | background-position: left; | 188 | background-position: left; |
291 | 182 | text-align: left; | 189 | text-align: left; |
292 | 183 | padding-left: 4px; | 190 | padding-left: 4px; |
293 | 184 | background-image: url('../img/Navbar.png'); | 191 | background-image: url('../img/Navbar.png'); |
294 | 185 | background-repeat: repeat-x; | 192 | background-repeat: repeat-x; |
295 | 186 | height: 20px; | 193 | height: 20px; |
296 | 187 | } | 194 | } |
297 | 188 | 195 | ||
298 | 189 | /* | 196 | /* |
299 | 190 | * Odd Even Tags (mainly for tables) | 197 | * Odd Even Tags (mainly for tables) |
300 | 191 | */ | 198 | */ |
301 | 192 | .even { | 199 | .even { |
305 | 193 | background-color: #444444; | 200 | background-color: #444444; |
306 | 194 | background: url(../img/background-444.png); | 201 | background: url(../img/background-444.png); |
307 | 195 | padding: 5px; | 202 | padding: 5px; |
308 | 196 | } | 203 | } |
309 | 197 | 204 | ||
310 | 198 | .odd { | 205 | .odd { |
319 | 199 | background-color: #4f4f4f; | 206 | background-color: #4f4f4f; |
320 | 200 | background: url(../img/background-4F4F4F.png); | 207 | background: url(../img/background-4F4F4F.png); |
321 | 201 | padding: 5px; | 208 | padding: 5px; |
322 | 202 | } | 209 | } |
323 | 203 | 210 | ||
324 | 204 | .legend { | 211 | /* |
325 | 205 | } | 212 | * Error Handling |
326 | 206 | 213 | */ | |
327 | 207 | .errormessage { | 214 | .errormessage { |
330 | 208 | color: #ff0000; | 215 | color: #ff0000; |
331 | 209 | font-size: 13px; | 216 | font-size: 13px; |
332 | 210 | } | 217 | } |
333 | 211 | 218 | ||
334 | 212 | /* | 219 | /* |
335 | @@ -230,3 +237,120 @@ | |||
336 | 230 | } | 237 | } |
337 | 231 | 238 | ||
338 | 232 | 239 | ||
339 | 240 | /* | ||
340 | 241 | * Box Item Model | ||
341 | 242 | */ | ||
342 | 243 | .box_item_model { | ||
343 | 244 | |||
344 | 245 | } | ||
345 | 246 | |||
346 | 247 | .border { | ||
347 | 248 | border: 1px solid rgb(9, 9, 9); | ||
348 | 249 | } | ||
349 | 250 | |||
350 | 251 | .full_site { | ||
351 | 252 | width: 100%; | ||
352 | 253 | } | ||
353 | 254 | |||
354 | 255 | .fixed_site { | ||
355 | 256 | width: 540px; | ||
356 | 257 | } | ||
357 | 258 | |||
358 | 259 | .box_item_model img.news { | ||
359 | 260 | float: right; | ||
360 | 261 | padding: 0px; | ||
361 | 262 | width: 20px; | ||
362 | 263 | } | ||
363 | 264 | |||
364 | 265 | .box_item_model .border_top { | ||
365 | 266 | border-top: 1px solid rgb(9, 9, ); | ||
366 | 267 | } | ||
367 | 268 | |||
368 | 269 | .box_item_model h3.title { | ||
369 | 270 | font-weight: bold; | ||
370 | 271 | font-size: 12px; | ||
371 | 272 | padding-left: 12px; | ||
372 | 273 | background-image: url('../img/Navbar.png'); | ||
373 | 274 | background-repeat: repeat-x; | ||
374 | 275 | border-left: 0px solid #999999; | ||
375 | 276 | bolder-right: 0px solid #999999; | ||
376 | 277 | border-top: 0px solid #999999; | ||
377 | 278 | padding-top: 2px; | ||
378 | 279 | padding-bottom: 0px; | ||
379 | 280 | margin: 0px; | ||
380 | 281 | } | ||
381 | 282 | |||
382 | 283 | .box_item_model .content { | ||
383 | 284 | line-height: 120%; | ||
384 | 285 | border: 0px; | ||
385 | 286 | padding: 2px; | ||
386 | 287 | padding-top: 5px; | ||
387 | 288 | padding-left: 15px; | ||
388 | 289 | background-color: #3F3F3F; | ||
389 | 290 | background: url('../img/background-3F3F3F.png'); | ||
390 | 291 | } | ||
391 | 292 | |||
392 | 293 | .box_item_model .info_line { | ||
393 | 294 | text-align: right; | ||
394 | 295 | padding: 3px; | ||
395 | 296 | margin: 0px; | ||
396 | 297 | background-color: #222222; | ||
397 | 298 | background: url('../img/background-222.png'); | ||
398 | 299 | } | ||
399 | 300 | |||
400 | 301 | .box_item_model .text { | ||
401 | 302 | vertical-align: baseline; | ||
402 | 303 | margin-top: 5px; | ||
403 | 304 | margin-bottom: 5px; | ||
404 | 305 | margin: 0px; | ||
405 | 306 | line-height: 130%; | ||
406 | 307 | } | ||
407 | 308 | |||
408 | 309 | .box_item_model .text:first-letter { | ||
409 | 310 | color: #7070FF; | ||
410 | 311 | font-size: 180%; | ||
411 | 312 | font-family: Cretino, "Bitstream Vera Serif", serif; | ||
412 | 313 | font-weight: bold; | ||
413 | 314 | } | ||
414 | 315 | |||
415 | 316 | .box_item_model .show_right { | ||
416 | 317 | text-align: right; | ||
417 | 318 | vertical-align: top; | ||
418 | 319 | } | ||
419 | 320 | |||
420 | 321 | .box_item_model .show_left { | ||
421 | 322 | text-align: left; | ||
422 | 323 | vertical-align: top; | ||
423 | 324 | } | ||
424 | 325 | |||
425 | 326 | .box_item_model .show_center { | ||
426 | 327 | text-align: center; | ||
427 | 328 | vertical-align: top; | ||
428 | 329 | } | ||
429 | 330 | |||
430 | 331 | .show_center { | ||
431 | 332 | text-align: center; | ||
432 | 333 | vertical-align: top; | ||
433 | 334 | } | ||
434 | 335 | .button_send { | ||
435 | 336 | padding:0; | ||
436 | 337 | margin:0; | ||
437 | 338 | border:none; | ||
438 | 339 | color: #222222; | ||
439 | 340 | background: url(../forum/img/en/send.png) no-repeat center; | ||
440 | 341 | background-repeat: no-repeat; | ||
441 | 342 | font-size:12px; | ||
442 | 343 | width:100px; | ||
443 | 344 | height: 25px; | ||
444 | 345 | } | ||
445 | 346 | .button_preview { | ||
446 | 347 | padding:0; | ||
447 | 348 | margin:0; | ||
448 | 349 | border:none; | ||
449 | 350 | color: #222222; | ||
450 | 351 | background: url(../forum/img/en/preview.png) no-repeat center; | ||
451 | 352 | background-repeat: no-repeat; | ||
452 | 353 | font-size:12px; | ||
453 | 354 | width:100px; | ||
454 | 355 | height: 25px; | ||
455 | 356 | } | ||
456 | 233 | 357 | ||
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 | 1 | |||
462 | 2 | |||
463 | 3 | /* | 1 | /* |
464 | 4 | * Comment | 2 | * Comment |
465 | 5 | */ | 3 | */ |
466 | 6 | .comment { | 4 | .comment { |
472 | 7 | margin: 0px; | 5 | margin: 0px; |
473 | 8 | padding-bottom: 2px; | 6 | padding-bottom: 2px; |
474 | 9 | /* border: 1px solid rgb(20%,20%,20%); */ | 7 | /* |
475 | 10 | border-top: 0px; | 8 | * border: 1px solid rgb(20%,20%,20%); |
476 | 11 | width: 100%; | 9 | */ |
477 | 10 | border-top: 0px; | ||
478 | 11 | width: 100%; | ||
479 | 12 | } | 12 | } |
480 | 13 | .comment p { | 13 | .comment p { |
481 | 14 | margin: 0px; | 14 | margin: 0px; |
482 | @@ -26,4 +26,4 @@ | |||
483 | 26 | } | 26 | } |
484 | 27 | .text textarea { | 27 | .text textarea { |
485 | 28 | width: 100%; | 28 | width: 100%; |
486 | 29 | } | ||
487 | 30 | \ No newline at end of file | 29 | \ No newline at end of file |
488 | 30 | } | ||
489 | 31 | 31 | ||
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 | 1 | 1 | ||
495 | 2 | .index_category, .index_forum { | 2 | .index_category, .index_forum { |
496 | 3 | margin-bottom: 20px; | 3 | margin-bottom: 20px; |
497 | 4 | border-left: 0px; | ||
498 | 5 | border-right: 0px; | ||
499 | 6 | } | ||
500 | 7 | |||
501 | 8 | .list_overview { | ||
502 | 9 | display: block; | ||
503 | 10 | font-weight: bold; | ||
504 | 11 | padding: 0px; | ||
505 | 12 | margin-top: 0px; | ||
506 | 13 | margin-bottom: 0px; | ||
507 | 14 | background: url('../img/background-444.png'); | ||
508 | 4 | } | 15 | } |
509 | 5 | 16 | ||
510 | 6 | .title { | 17 | .title { |
511 | @@ -16,7 +27,6 @@ | |||
512 | 16 | text-align: center; | 27 | text-align: center; |
513 | 17 | } | 28 | } |
514 | 18 | 29 | ||
515 | 19 | |||
516 | 20 | /* | 30 | /* |
517 | 21 | * POSTS | 31 | * POSTS |
518 | 22 | */ | 32 | */ |
519 | @@ -30,6 +40,14 @@ | |||
520 | 30 | height: auto; | 40 | height: auto; |
521 | 31 | } | 41 | } |
522 | 32 | 42 | ||
523 | 43 | .post .top { | ||
524 | 44 | vertical-align: top; | ||
525 | 45 | } | ||
526 | 46 | .post .top .signature .line { | ||
527 | 47 | color: #D0DFFF; | ||
528 | 48 | font-weight: bolder; | ||
529 | 49 | } | ||
530 | 50 | |||
531 | 33 | /* | 51 | /* |
532 | 34 | * Post | 52 | * Post |
533 | 35 | */ | 53 | */ |
534 | @@ -87,93 +105,15 @@ | |||
535 | 87 | width: 40%; | 105 | width: 40%; |
536 | 88 | } | 106 | } |
537 | 89 | .post-form #id_body { | 107 | .post-form #id_body { |
566 | 90 | width: 100%; | 108 | width: 98%; |
567 | 91 | height: 400px; | 109 | height: 150px; |
568 | 92 | } | 110 | } |
569 | 93 | 111 | .post .bold { | |
542 | 94 | /* | ||
543 | 95 | * Post and Edit field | ||
544 | 96 | */ | ||
545 | 97 | |||
546 | 98 | .forum_poster { font-size: 90%;} | ||
547 | 99 | .forum_post_date { font-size: 90%;} | ||
548 | 100 | |||
549 | 101 | |||
550 | 102 | .forum_item .forum_image img { | ||
551 | 103 | float: right; | ||
552 | 104 | padding: 0px; | ||
553 | 105 | margin-left: 20px; | ||
554 | 106 | } | ||
555 | 107 | |||
556 | 108 | .forum_item { | ||
557 | 109 | border: 1px solid rgb(9, 9, 9); | ||
558 | 110 | width: 100%; | ||
559 | 111 | } | ||
560 | 112 | |||
561 | 113 | .forum_item p { | ||
562 | 114 | margin-bottom: 5px; | ||
563 | 115 | } | ||
564 | 116 | |||
565 | 117 | .forum_item h3.title { | ||
570 | 118 | font-weight: bold; | 112 | font-weight: bold; |
632 | 119 | font-size: 12px; | 113 | } |
633 | 120 | padding-left: 12px; | 114 | .post .underline { |
634 | 121 | background-image: url('../img/Navbar.png'); | 115 | text-decoration: underline; |
635 | 122 | background-repeat: repeat-x; | 116 | } |
636 | 123 | border-left: 0px solid #999999; | 117 | .post .italic { |
637 | 124 | border-right: 0px solid #999999; | 118 | font-style: italic; |
638 | 125 | border-bottom: 0px solid #999999; | 119 | } |
578 | 126 | padding-top: 2px; | ||
579 | 127 | padding-bottom: 0px; | ||
580 | 128 | margin: 0px; | ||
581 | 129 | } | ||
582 | 130 | .forum_item .content { | ||
583 | 131 | line-height: 120%; | ||
584 | 132 | border: 0px; | ||
585 | 133 | padding: 2px; | ||
586 | 134 | padding-top: 5px; | ||
587 | 135 | padding-left: 15px; | ||
588 | 136 | background-color: #3F3F3F; | ||
589 | 137 | background: url(../img/background-3F3F3F.png); | ||
590 | 138 | } | ||
591 | 139 | |||
592 | 140 | .forum_item .info_line { | ||
593 | 141 | text-align: right; | ||
594 | 142 | padding: 3px; | ||
595 | 143 | margin: 0px; | ||
596 | 144 | background-color: #222222; | ||
597 | 145 | background: url(../img/background-222.png); | ||
598 | 146 | } | ||
599 | 147 | |||
600 | 148 | .forum_item .text { | ||
601 | 149 | vertical-align: baseline;; | ||
602 | 150 | margin-top: 5px; | ||
603 | 151 | margin-bottom: 5px; | ||
604 | 152 | margin: 0px; | ||
605 | 153 | line-height: 130%; | ||
606 | 154 | } | ||
607 | 155 | |||
608 | 156 | .forum_item .text:first-letter { | ||
609 | 157 | vertical-align: baseline; | ||
610 | 158 | color: #7070FF; | ||
611 | 159 | font-size: 180%; | ||
612 | 160 | font-family: Cretino, "Bitstream Vera Serif", serif; | ||
613 | 161 | font-weight: bold; | ||
614 | 162 | } | ||
615 | 163 | |||
616 | 164 | .forum_item .bottom_line { | ||
617 | 165 | background-color: #222222; | ||
618 | 166 | background: url(../img/background-222.png); | ||
619 | 167 | table-layout: fixed; | ||
620 | 168 | } | ||
621 | 169 | .forum_item .tags { | ||
622 | 170 | text-align: right; | ||
623 | 171 | } | ||
624 | 172 | .forum_item .comments { | ||
625 | 173 | text-align: left; | ||
626 | 174 | } | ||
627 | 175 | .forum_item .admin { | ||
628 | 176 | text-align: center; | ||
629 | 177 | } | ||
630 | 178 | |||
631 | 179 | |||
639 | 180 | 120 | ||
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 | 1 | .ggz_stats { | ||
645 | 2 | width: 120px; | ||
646 | 3 | } | ||
647 | 4 | .ggz_date { | ||
648 | 5 | width: 150px; | ||
649 | 6 | } | ||
650 | 7 | .ggz_winner { | ||
651 | 8 | width: 100px; | ||
652 | 9 | } | ||
653 | 10 | .ggz_vs { | ||
654 | 11 | width: 290px; | ||
655 | 12 | } | ||
656 | 0 | 13 | ||
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 | 60 | width: 40%; | 60 | width: 40%; |
662 | 61 | } | 61 | } |
663 | 62 | #id_body { | 62 | #id_body { |
666 | 63 | width: 100%; | 63 | width: 98%; |
667 | 64 | height: 400px; | 64 | height: 200px; |
668 | 65 | } | 65 | } |
669 | 66 | 66 | ||
670 | 67 | /* | 67 | /* |
671 | 68 | * MessageBox style | 68 | * MessageBox style |
672 | 69 | */ | 69 | */ |
673 | 70 | 70 | ||
675 | 71 | .message_item .message_image img { | 71 | .message_image img { |
676 | 72 | float: right; | 72 | float: right; |
677 | 73 | padding: 0px; | 73 | padding: 0px; |
678 | 74 | margin-left: 20px; | 74 | margin-left: 20px; |
679 | 75 | } | 75 | } |
680 | 76 | |||
681 | 77 | .message_item { | ||
682 | 78 | border: 1px solid rgb(9, 9, 9); | ||
683 | 79 | width: 100%; | ||
684 | 80 | } | ||
685 | 81 | |||
686 | 82 | .message_item p { | ||
687 | 83 | margin-bottom: 5px; | ||
688 | 84 | } | ||
689 | 85 | |||
690 | 86 | .message_item h3.title { | ||
691 | 87 | font-weight: bold; | ||
692 | 88 | font-size: 12px; | ||
693 | 89 | padding-left: 12px; | ||
694 | 90 | background-image: url('../img/Navbar.png'); | ||
695 | 91 | background-repeat: repeat-x; | ||
696 | 92 | border-left: 0px solid #999999; | ||
697 | 93 | border-right: 0px solid #999999; | ||
698 | 94 | border-bottom: 0px solid #999999; | ||
699 | 95 | padding-top: 2px; | ||
700 | 96 | padding-bottom: 0px; | ||
701 | 97 | margin: 0px; | ||
702 | 98 | } | ||
703 | 99 | .message_item .content { | ||
704 | 100 | line-height: 120%; | ||
705 | 101 | border: 0px; | ||
706 | 102 | padding: 2px; | ||
707 | 103 | padding-top: 5px; | ||
708 | 104 | padding-left: 15px; | ||
709 | 105 | background-color: #3F3F3F; | ||
710 | 106 | background: url(../img/background-3F3F3F.png); | ||
711 | 107 | } | ||
712 | 108 | |||
713 | 109 | .message_item .info_line { | ||
714 | 110 | text-align: right; | ||
715 | 111 | padding: 3px; | ||
716 | 112 | margin: 0px; | ||
717 | 113 | background-color: #222222; | ||
718 | 114 | background: url(../img/background-222.png); | ||
719 | 115 | } | ||
720 | 116 | |||
721 | 117 | .message_item .text { | ||
722 | 118 | vertical-align: baseline;; | ||
723 | 119 | margin-top: 5px; | ||
724 | 120 | margin-bottom: 5px; | ||
725 | 121 | margin: 0px; | ||
726 | 122 | line-height: 130%; | ||
727 | 123 | } | ||
728 | 124 | |||
729 | 125 | .message_item .text:first-letter { | ||
730 | 126 | vertical-align: baseline; | ||
731 | 127 | color: #7070FF; | ||
732 | 128 | font-size: 180%; | ||
733 | 129 | font-family: Cretino, "Bitstream Vera Serif", serif; | ||
734 | 130 | font-weight: bold; | ||
735 | 131 | } | ||
736 | 132 | |||
737 | 133 | .message_item .bottom_line { | ||
738 | 134 | background-color: #222222; | ||
739 | 135 | background: url(../img/background-222.png); | ||
740 | 136 | table-layout: fixed; | ||
741 | 137 | } | ||
742 | 138 | .message_item .tags { | ||
743 | 139 | text-align: right; | ||
744 | 140 | } | ||
745 | 141 | .message_item .comments { | ||
746 | 142 | text-align: left; | ||
747 | 143 | } | ||
748 | 144 | .message_item .admin { | ||
749 | 145 | text-align: center; | ||
750 | 146 | } | ||
751 | 147 | |||
752 | 148 | |||
753 | 149 | 76 | ||
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 @@ | |||
841 | 1 | 1 | /**************************/ | |
842 | 2 | .news_poster { font-size: 90%;} | 2 | /* General Style elements */ |
843 | 3 | .news_post_date { font-size: 90%;} | 3 | /**************************/ |
844 | 4 | 4 | .text h1 { | |
845 | 5 | 5 | font-size: 2.5em; | |
846 | 6 | .news_item .news_image img { | 6 | margin: 10px 0px; |
847 | 7 | float: right; | 7 | } |
848 | 8 | padding: 0px; | 8 | .text h2 { |
849 | 9 | margin-left: 20px; | 9 | font-size: 2em; |
850 | 10 | } | 10 | margin: 25px 0px 10px; |
851 | 11 | 11 | line-height: 70%; | |
852 | 12 | .news_item { | 12 | } |
853 | 13 | border: 1px solid rgb(9, 9, 9); | 13 | .text h3 { |
854 | 14 | width: 100%; | 14 | font-size: 1.4em; |
855 | 15 | } | 15 | margin: 5px 0px; |
856 | 16 | 16 | } | |
857 | 17 | .news_item p { | 17 | .text h4 { |
858 | 18 | margin-bottom: 5px; | 18 | font-size: 1.30em; |
859 | 19 | } | 19 | margin: 5px 0px; |
860 | 20 | 20 | /* | |
861 | 21 | .news_item h3.title { | 21 | * text-decoration: underline; |
862 | 22 | font-weight: bold; | 22 | * */ |
863 | 23 | font-size: 12px; | 23 | } |
864 | 24 | padding-left: 12px; | 24 | .text h5 { |
865 | 25 | background-image: url('../img/Navbar.png'); | 25 | font-size: 1.2em; |
866 | 26 | background-repeat: repeat-x; | 26 | margin: 5px 0px; |
867 | 27 | border-left: 0px solid #999999; | 27 | /* |
868 | 28 | border-right: 0px solid #999999; | 28 | * text-decoration: underline; |
869 | 29 | border-bottom: 0px solid #999999; | 29 | * font-style: italic; |
870 | 30 | padding-top: 2px; | 30 | * */ |
871 | 31 | padding-bottom: 0px; | 31 | } |
872 | 32 | margin: 0px; | 32 | .text h6 { |
873 | 33 | } | 33 | font-size: 1.1em; |
874 | 34 | .news_item .content { | 34 | margin: 5px 0px; |
875 | 35 | line-height: 120%; | 35 | /* |
876 | 36 | border: 0px; | 36 | * font-style: italic; |
877 | 37 | padding: 2px; | 37 | * */ |
878 | 38 | padding-top: 5px; | 38 | } |
879 | 39 | padding-left: 15px; | 39 | |
880 | 40 | background-color: #3F3F3F; | 40 | .text h1:first-letter,.text h2:first-letter,.text h3:first-letter,.text h4:first-letter,.text h5:first-letter { |
881 | 41 | background: url(../img/background-3F3F3F.png); | 41 | vertical-align: baseline; |
882 | 42 | } | 42 | color: #7070FF; |
883 | 43 | 43 | font-size: 180%; | |
884 | 44 | .news_item .info_line { | 44 | font-family: Cretino, "Bitstream Vera Serif", serif; |
885 | 45 | text-align: right; | 45 | font-weight: bold; |
886 | 46 | padding: 3px; | 46 | } |
887 | 47 | margin: 0px; | 47 | .text h3:first-letter { |
888 | 48 | background-color: #222222; | 48 | color: rgb(156,156,86); |
889 | 49 | background: url(../img/background-222.png); | 49 | } |
890 | 50 | } | 50 | .text h4:first-letter { |
891 | 51 | 51 | color: rgb(156,86,156); | |
892 | 52 | .news_item .text { | 52 | font-size: 150%; |
893 | 53 | vertical-align: baseline;; | 53 | } |
894 | 54 | margin-top: 5px; | 54 | .text h5:first-letter { |
895 | 55 | margin-bottom: 5px; | 55 | color: rgb(86,156,156); |
896 | 56 | margin: 0px; | 56 | font-size: 120%; |
897 | 57 | line-height: 130%; | 57 | } |
898 | 58 | } | 58 | .news_poster { |
899 | 59 | 59 | font-size: 90%; | |
900 | 60 | .news_item .text:first-letter { | 60 | } |
901 | 61 | vertical-align: baseline; | 61 | .news_post_date { |
902 | 62 | color: #7070FF; | 62 | font-size: 90%; |
903 | 63 | font-size: 180%; | 63 | } |
904 | 64 | font-family: Cretino, "Bitstream Vera Serif", serif; | 64 | .news_image img { |
905 | 65 | font-weight: bold; | 65 | float:right; |
906 | 66 | } | 66 | margin-left:20px; |
907 | 67 | 67 | padding:0; | |
908 | 68 | .news_item .bottom_line { | 68 | } |
826 | 69 | background-color: #222222; | ||
827 | 70 | background: url(../img/background-222.png); | ||
828 | 71 | table-layout: fixed; | ||
829 | 72 | } | ||
830 | 73 | .news_item .tags { | ||
831 | 74 | text-align: right; | ||
832 | 75 | } | ||
833 | 76 | .news_item .comments { | ||
834 | 77 | text-align: left; | ||
835 | 78 | } | ||
836 | 79 | .news_item .admin { | ||
837 | 80 | text-align: center; | ||
838 | 81 | } | ||
839 | 82 | |||
840 | 83 | |||
909 | 84 | 69 | ||
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 | 1 | .notice_poster { | ||
915 | 2 | font-size: 90%; | ||
916 | 3 | } | ||
917 | 4 | .notice_post_date { | ||
918 | 5 | font-size: 90%; | ||
919 | 6 | } | ||
920 | 7 | .notice_unseen_notice { | ||
921 | 8 | font-style: italic; | ||
922 | 9 | } | ||
923 | 10 | .notice_type { | ||
924 | 11 | font-weight: bold; | ||
925 | 12 | } | ||
926 | 0 | 13 | ||
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 @@ | |||
937 | 1 | 1 | .profile_poster { | |
938 | 2 | .profile_poster { font-size: 90%;} | 2 | font-size: 90%; |
939 | 3 | .profile_post_date { font-size: 90%;} | 3 | } |
940 | 4 | 4 | .profile_post_date { | |
941 | 5 | 5 | font-size: 90%; | |
942 | 6 | .profile_item .profile_image img { | 6 | } |
943 | 7 | .profile_image img { | ||
944 | 7 | float: right; | 8 | float: right; |
945 | 8 | padding: 0px; | 9 | padding: 0px; |
946 | 9 | margin-left: 20px; | 10 | margin-left: 20px; |
947 | 10 | } | 11 | } |
948 | 11 | |||
949 | 12 | .profile_item { | ||
950 | 13 | border: 1px solid rgb(9, 9, 9); | ||
951 | 14 | width: 540px; | ||
952 | 15 | } | ||
953 | 16 | |||
954 | 17 | .profile_item p { | ||
955 | 18 | margin-bottom: 5px; | ||
956 | 19 | } | ||
957 | 20 | |||
958 | 21 | .profile_item h3.title { | ||
959 | 22 | font-weight: bold; | ||
960 | 23 | font-size: 12px; | ||
961 | 24 | padding-left: 12px; | ||
962 | 25 | background-image: url('../img/Navbar.png'); | ||
963 | 26 | background-repeat: repeat-x; | ||
964 | 27 | border-left: 0px solid #999999; | ||
965 | 28 | border-right: 0px solid #999999; | ||
966 | 29 | border-bottom: 0px solid #999999; | ||
967 | 30 | padding-top: 2px; | ||
968 | 31 | padding-bottom: 0px; | ||
969 | 32 | margin: 0px; | ||
970 | 33 | } | ||
971 | 34 | .profile_item .content { | ||
972 | 35 | line-height: 120%; | ||
973 | 36 | border: 0px; | ||
974 | 37 | padding: 2px; | ||
975 | 38 | padding-top: 5px; | ||
976 | 39 | padding-left: 15px; | ||
977 | 40 | background-color: #3F3F3F; | ||
978 | 41 | background: url(../img/background-3F3F3F.png); | ||
979 | 42 | } | ||
980 | 43 | |||
981 | 44 | .profile_item .info_line { | ||
982 | 45 | text-align: right; | ||
983 | 46 | padding: 3px; | ||
984 | 47 | margin: 0px; | ||
985 | 48 | background-color: #222222; | ||
986 | 49 | background: url(../img/background-222.png); | ||
987 | 50 | } | ||
988 | 51 | |||
989 | 52 | .profile_item .text { | ||
990 | 53 | vertical-align: baseline;; | ||
991 | 54 | margin-top: 5px; | ||
992 | 55 | margin-bottom: 5px; | ||
993 | 56 | margin: 0px; | ||
994 | 57 | line-height: 130%; | ||
995 | 58 | } | ||
996 | 59 | |||
997 | 60 | .profile_item .text:first-letter { | ||
998 | 61 | vertical-align: baseline; | ||
999 | 62 | color: #7070FF; | ||
1000 | 63 | font-size: 180%; | ||
1001 | 64 | font-family: Cretino, "Bitstream Vera Serif", serif; | ||
1002 | 65 | font-weight: bold; | ||
1003 | 66 | } | ||
1004 | 67 | |||
1005 | 68 | .profile_item .bottom_line { | ||
1006 | 69 | background-color: #222222; | ||
1007 | 70 | background: url(../img/background-222.png); | ||
1008 | 71 | table-layout: fixed; | ||
1009 | 72 | } | ||
1010 | 73 | .profile_item .tags { | ||
1011 | 74 | text-align: right; | ||
1012 | 75 | } | ||
1013 | 76 | .profile_item .comments { | ||
1014 | 77 | text-align: left; | ||
1015 | 78 | } | ||
1016 | 79 | .profile_item .admin { | ||
1017 | 80 | text-align: center; | ||
1018 | 81 | } | ||
1019 | 82 | |||
1020 | 83 | |||
1021 | 84 | 12 | ||
1022 | === added file 'media/css/register.css' | |||
1023 | === added file 'media/forum/img/en/close_small.png' | |||
1024 | 85 | 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 | 13 | 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 | 86 | 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 | 14 | 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 | 87 | 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 | 15 | 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 | 88 | 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 | 16 | 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 | 89 | 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 | 17 | 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 | 90 | 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 | 18 | 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 | 91 | 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 | 19 | 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 | 92 | 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 | 20 | 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 | 93 | 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 | 21 | 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 | 94 | 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 | 22 | 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 | 95 | 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 | 23 | 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 | 96 | 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 | 24 | 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 | 97 | 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 | 25 | 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 | 98 | 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 | 26 | 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 | 99 | 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 | 27 | 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 | 100 | 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 | 28 | 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 | 101 | 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 | 29 | 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 | 102 | 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 | 30 | 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 | 103 | 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 | 31 | 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 | 104 | 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 | 32 | 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 | 105 | 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 | 33 | 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 | 106 | 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 | 34 | 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 | 107 | 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 | 35 | 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 | 108 | 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 | 36 | 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 | 109 | 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 | 37 | 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 | 110 | 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 | 38 | 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 | 111 | 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 | 39 | 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 | 112 | 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 | 40 | 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 | 113 | 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 | 41 | 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 | 114 | 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 | 42 | 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 | 115 | 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 | 43 | 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 | 116 | 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 | 44 | 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 | 117 | 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 | 45 | 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 | 118 | 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 | 46 | 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 | 119 | 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 | 47 | 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 | 120 | 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 | 48 | 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 | 121 | 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 | 49 | 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 | 47 | format_string, var_name = m.groups() | 47 | format_string, var_name = m.groups() |
1102 | 48 | return LatestPosts(format_string, var_name) | 48 | return LatestPosts(format_string, var_name) |
1103 | 49 | 49 | ||
1104 | 50 | class NewsYears(template.Node): | ||
1105 | 51 | def __init__(self, var_name): | ||
1106 | 52 | self.var_name = var_name | ||
1107 | 53 | |||
1108 | 54 | def render(self, context): | ||
1109 | 55 | years = Post.objects.all().dates('publish', 'year') | ||
1110 | 56 | context[self.var_name] = years | ||
1111 | 57 | return '' | ||
1112 | 58 | |||
1113 | 59 | @register.tag | ||
1114 | 60 | def get_news_years(parser, token): | ||
1115 | 61 | """ | ||
1116 | 62 | Gets any number of latest posts and stores them in a varable. | ||
1117 | 63 | |||
1118 | 64 | Syntax:: | ||
1119 | 65 | |||
1120 | 66 | {% get_latest_posts [limit] as [var_name] %} | ||
1121 | 67 | |||
1122 | 68 | Example usage:: | ||
1123 | 69 | |||
1124 | 70 | {% get_latest_posts 10 as latest_post_list %} | ||
1125 | 71 | """ | ||
1126 | 72 | try: | ||
1127 | 73 | tag_name, arg = token.contents.split(None, 1) | ||
1128 | 74 | except ValueError: | ||
1129 | 75 | raise template.TemplateSyntaxError, "%s tag requires arguments" % token.contents.split()[0] | ||
1130 | 76 | m = re.search(r'as (\w+)', arg) | ||
1131 | 77 | if not m: | ||
1132 | 78 | raise template.TemplateSyntaxError, "%s tag had invalid arguments" % tag_name | ||
1133 | 79 | (var_name, ) = m.groups() | ||
1134 | 80 | return NewsYears(var_name) | ||
1135 | 50 | 81 | ||
1136 | 51 | class NewsCategories(template.Node): | 82 | class NewsCategories(template.Node): |
1137 | 52 | def __init__(self, var_name): | 83 | def __init__(self, var_name): |
1138 | 53 | 84 | ||
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 | 6 | url(r'^(?P<year>\d{4})/(?P<month>\d{1,2})/(?P<day>\d{1,2})/(?P<slug>[-\w]+)/$', | 6 | url(r'^(?P<year>\d{4})/(?P<month>\d{1,2})/(?P<day>\d{1,2})/(?P<slug>[-\w]+)/$', |
1144 | 7 | view=news_views.post_detail, | 7 | view=news_views.post_detail, |
1145 | 8 | name='news_detail'), | 8 | name='news_detail'), |
1158 | 9 | # | 9 | |
1159 | 10 | # url(r'^(?P<year>\d{4})/(?P<month>\d{1,2})/(?P<day>\d{1,2})/$', | 10 | url(r'^(?P<year>\d{4})/(?P<month>\d{1,2})/(?P<day>\d{1,2})/$', |
1160 | 11 | # view=news_views.post_archive_day, | 11 | view=news_views.post_archive_day, |
1161 | 12 | # name='news_archive_day'), | 12 | name='news_archive_day'), |
1162 | 13 | # | 13 | |
1163 | 14 | # url(r'^(?P<year>\d{4})/(?P<month>\d{1,2})/$', | 14 | url(r'^(?P<year>\d{4})/(?P<month>\d{1,2})/$', |
1164 | 15 | # view=news_views.post_archive_month, | 15 | view=news_views.post_archive_month, |
1165 | 16 | # name='news_archive_month'), | 16 | name='news_archive_month'), |
1166 | 17 | # | 17 | |
1167 | 18 | # url(r'^(?P<year>\d{4})/$', | 18 | url(r'^(?P<year>\d{4})/$', |
1168 | 19 | # view=news_views.post_archive_year, | 19 | view=news_views.post_archive_year, |
1169 | 20 | # name='news_archive_year'), | 20 | name='news_archive_year'), |
1170 | 21 | 21 | ||
1171 | 22 | # url(r'^categories/(?P<slug>[-\w]+)/$', | 22 | # url(r'^categories/(?P<slug>[-\w]+)/$', |
1172 | 23 | # view=news_views.category_detail, | 23 | # view=news_views.category_detail, |
1173 | 24 | 24 | ||
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 | 13 | return list_detail.object_list( | 13 | return list_detail.object_list( |
1179 | 14 | request, | 14 | request, |
1180 | 15 | queryset = Post.objects.published(), | 15 | queryset = Post.objects.published(), |
1181 | 16 | paginate_by = 20, | ||
1182 | 17 | page = page, | 16 | page = page, |
1183 | 18 | **kwargs | 17 | **kwargs |
1184 | 19 | ) | 18 | ) |
1185 | 20 | 19 | ||
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 | 1 | from django.contrib.syndication.feeds import Feed | 1 | from django.contrib.syndication.feeds import Feed |
1191 | 2 | from django.utils.feedgenerator import Atom1Feed | ||
1192 | 3 | from django.core.urlresolvers import reverse | 2 | from django.core.urlresolvers import reverse |
1193 | 4 | from django.utils.translation import ugettext_lazy as _ | 3 | from django.utils.translation import ugettext_lazy as _ |
1194 | 5 | from django.core.exceptions import ObjectDoesNotExist | 4 | from django.core.exceptions import ObjectDoesNotExist |
1195 | 5 | from django.utils.feedgenerator import Atom1Feed, Rss201rev2Feed | ||
1196 | 6 | 6 | ||
1197 | 7 | from pybb.models import Post, Topic, Forum | 7 | from pybb.models import Post, Topic, Forum |
1198 | 8 | 8 | ||
1199 | @@ -27,10 +27,10 @@ | |||
1200 | 27 | else: | 27 | else: |
1201 | 28 | return self.items_for_object(obj) | 28 | return self.items_for_object(obj) |
1202 | 29 | 29 | ||
1204 | 30 | def link(self,obj): | 30 | def link(self, obj): |
1205 | 31 | if obj == self.all_objects: | 31 | if obj == self.all_objects: |
1206 | 32 | return reverse('pybb_index') | 32 | return reverse('pybb_index') |
1208 | 33 | return reverse('pybb_forum', args=(obj.pk,)) | 33 | return "/ewfwevw%s" % reverse('pybb_forum', args=(obj.pk,)) |
1209 | 34 | 34 | ||
1210 | 35 | def get_object(self,bits): | 35 | def get_object(self,bits): |
1211 | 36 | """ | 36 | """ |
1212 | @@ -46,12 +46,15 @@ | |||
1213 | 46 | ########################## | 46 | ########################## |
1214 | 47 | # Individual items below # | 47 | # Individual items below # |
1215 | 48 | ########################## | 48 | ########################## |
1217 | 49 | def item_guid(self, obj): | 49 | def item_id(self, obj): |
1218 | 50 | return str(obj.id) | 50 | return str(obj.id) |
1219 | 51 | 51 | ||
1220 | 52 | def item_pubdate(self, obj): | 52 | def item_pubdate(self, obj): |
1221 | 53 | return obj.created | 53 | return obj.created |
1223 | 54 | 54 | ||
1224 | 55 | def item_links(self, item): | ||
1225 | 56 | return [{'href': item.get_absolute_url()}, ] | ||
1226 | 57 | |||
1227 | 55 | 58 | ||
1228 | 56 | class LastPosts(PybbFeed): | 59 | class LastPosts(PybbFeed): |
1229 | 57 | all_title = _('Latest posts on all forums') | 60 | all_title = _('Latest posts on all forums') |
1230 | @@ -66,6 +69,13 @@ | |||
1231 | 66 | def items_for_object(self,obj): | 69 | def items_for_object(self,obj): |
1232 | 67 | return Post.objects.filter( topic__forum = obj ).order_by('-created')[:15] | 70 | return Post.objects.filter( topic__forum = obj ).order_by('-created')[:15] |
1233 | 68 | 71 | ||
1234 | 72 | def item_author_name(self, item): | ||
1235 | 73 | """ | ||
1236 | 74 | Takes the object returned by get_object and returns the feeds's | ||
1237 | 75 | auhor's name as a Python string | ||
1238 | 76 | """ | ||
1239 | 77 | return item.user.username | ||
1240 | 78 | |||
1241 | 69 | 79 | ||
1242 | 70 | class LastTopics(PybbFeed): | 80 | class LastTopics(PybbFeed): |
1243 | 71 | all_title = _('Latest topics on all forums') | 81 | all_title = _('Latest topics on all forums') |
1244 | @@ -80,3 +90,10 @@ | |||
1245 | 80 | def items_for_object(self,obj): | 90 | def items_for_object(self,obj): |
1246 | 81 | return Topic.objects.filter( forum = obj ).order_by('-created')[:15] | 91 | return Topic.objects.filter( forum = obj ).order_by('-created')[:15] |
1247 | 82 | 92 | ||
1248 | 93 | def item_author_name(self, item): | ||
1249 | 94 | """ | ||
1250 | 95 | Takes the object returned by get_object and returns the feeds's | ||
1251 | 96 | auhor's name as a Python string | ||
1252 | 97 | """ | ||
1253 | 98 | return item.user.username | ||
1254 | 99 | |||
1255 | 83 | 100 | ||
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 | 10 | from pybb.models import Topic, Post, PrivateMessage, Attachment | 10 | from pybb.models import Topic, Post, PrivateMessage, Attachment |
1261 | 11 | from pybb import settings as pybb_settings | 11 | from pybb import settings as pybb_settings |
1262 | 12 | 12 | ||
1263 | 13 | from notification import models as notification | ||
1264 | 14 | |||
1265 | 13 | class AddPostForm(forms.ModelForm): | 15 | class AddPostForm(forms.ModelForm): |
1266 | 14 | name = forms.CharField(label=_('Subject')) | 16 | name = forms.CharField(label=_('Subject')) |
1267 | 15 | attachment = forms.FileField(label=_('Attachment'), required=False) | 17 | attachment = forms.FileField(label=_('Attachment'), required=False) |
1268 | 16 | 18 | ||
1269 | 17 | class Meta: | 19 | class Meta: |
1270 | 18 | model = Post | 20 | model = Post |
1272 | 19 | fields = ['body'] | 21 | fields = ['body', 'markup',] |
1273 | 20 | 22 | ||
1274 | 21 | def __init__(self, *args, **kwargs): | 23 | def __init__(self, *args, **kwargs): |
1275 | 22 | self.user = kwargs.pop('user', None) | 24 | self.user = kwargs.pop('user', None) |
1276 | @@ -25,7 +27,7 @@ | |||
1277 | 25 | self.ip = kwargs.pop('ip', None) | 27 | self.ip = kwargs.pop('ip', None) |
1278 | 26 | super(AddPostForm, self).__init__(*args, **kwargs) | 28 | super(AddPostForm, self).__init__(*args, **kwargs) |
1279 | 27 | 29 | ||
1281 | 28 | self.fields.keyOrder = ['name', 'body', 'attachment'] | 30 | self.fields.keyOrder = ['name', 'body', 'markup', 'attachment'] |
1282 | 29 | 31 | ||
1283 | 30 | if self.topic: | 32 | if self.topic: |
1284 | 31 | self.fields['name'].widget = forms.HiddenInput() | 33 | self.fields['name'].widget = forms.HiddenInput() |
1285 | @@ -47,20 +49,29 @@ | |||
1286 | 47 | 49 | ||
1287 | 48 | def save(self): | 50 | def save(self): |
1288 | 49 | if self.forum: | 51 | if self.forum: |
1289 | 52 | topic_is_new = True | ||
1290 | 50 | topic = Topic(forum=self.forum, | 53 | topic = Topic(forum=self.forum, |
1291 | 51 | user=self.user, | 54 | user=self.user, |
1292 | 52 | name=self.cleaned_data['name']) | 55 | name=self.cleaned_data['name']) |
1293 | 53 | topic.save() | 56 | topic.save() |
1294 | 54 | else: | 57 | else: |
1295 | 58 | topic_is_new = False | ||
1296 | 55 | topic = self.topic | 59 | topic = self.topic |
1297 | 56 | 60 | ||
1298 | 57 | post = Post(topic=topic, user=self.user, user_ip=self.ip, | 61 | post = Post(topic=topic, user=self.user, user_ip=self.ip, |
1300 | 58 | markup="markdown", | 62 | markup=self.cleaned_data['markup'], |
1301 | 59 | body=self.cleaned_data['body']) | 63 | body=self.cleaned_data['body']) |
1302 | 60 | post.save() | 64 | post.save() |
1303 | 61 | 65 | ||
1304 | 62 | if pybb_settings.ATTACHMENT_ENABLE: | 66 | if pybb_settings.ATTACHMENT_ENABLE: |
1305 | 63 | self.save_attachment(post, self.cleaned_data['attachment']) | 67 | self.save_attachment(post, self.cleaned_data['attachment']) |
1306 | 68 | |||
1307 | 69 | if topic_is_new: | ||
1308 | 70 | notification.send(User.objects.all(), "forum_new_topic", | ||
1309 | 71 | {'topic': topic, 'post':post, 'user':topic.user}) | ||
1310 | 72 | else: | ||
1311 | 73 | notification.send(self.topic.subscribers.all(), "forum_new_post", | ||
1312 | 74 | {'post':post, 'topic':topic, 'user':post.user}) | ||
1313 | 64 | return post | 75 | return post |
1314 | 65 | 76 | ||
1315 | 66 | 77 | ||
1316 | 67 | 78 | ||
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 | 1 | import pybb_notifications | ||
1322 | 0 | 2 | ||
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 | 1 | from django.db.models import signals | ||
1328 | 2 | |||
1329 | 3 | from django.utils.translation import ugettext_noop as _ | ||
1330 | 4 | |||
1331 | 5 | try: | ||
1332 | 6 | from notification import models as notification | ||
1333 | 7 | |||
1334 | 8 | def create_notice_types(app, created_models, verbosity, **kwargs): | ||
1335 | 9 | notification.create_notice_type("forum_new_topic", | ||
1336 | 10 | _("Forum New Topic"), | ||
1337 | 11 | _("a new topic has been added to the forum"), | ||
1338 | 12 | default=1) | ||
1339 | 13 | notification.create_notice_type("forum_new_post", | ||
1340 | 14 | _("Forum New Post"), | ||
1341 | 15 | _("a new comment has been posted to a topic you observe")) | ||
1342 | 16 | |||
1343 | 17 | signals.post_syncdb.connect(create_notice_types, | ||
1344 | 18 | sender=notification) | ||
1345 | 19 | except ImportError: | ||
1346 | 20 | print "Skipping creation of NoticeTypes as notification app not found" | ||
1347 | 0 | 21 | ||
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 | 18 | if settings.USE_SPHINX: | 18 | if settings.USE_SPHINX: |
1353 | 19 | from djangosphinx import SphinxSearch | 19 | from djangosphinx import SphinxSearch |
1354 | 20 | 20 | ||
1355 | 21 | try: | ||
1356 | 22 | from notification import models as notification | ||
1357 | 23 | from django.db.models import signals | ||
1358 | 24 | except ImportError: | ||
1359 | 25 | notification = None | ||
1360 | 26 | |||
1361 | 21 | MARKUP_CHOICES = ( | 27 | MARKUP_CHOICES = ( |
1362 | 22 | ('markdown', 'markdown'), | 28 | ('markdown', 'markdown'), |
1364 | 23 | # ('bbcode', 'bbcode'), | 29 | ('bbcode', 'bbcode'), |
1365 | 24 | ) | 30 | ) |
1366 | 25 | 31 | ||
1367 | 26 | 32 | ||
1368 | @@ -127,10 +133,12 @@ | |||
1369 | 127 | return reverse('pybb_topic', args=[self.id]) | 133 | return reverse('pybb_topic', args=[self.id]) |
1370 | 128 | 134 | ||
1371 | 129 | def save(self, *args, **kwargs): | 135 | def save(self, *args, **kwargs): |
1373 | 130 | if self.id is None: | 136 | new = self.id is None |
1374 | 137 | if new: | ||
1375 | 131 | self.created = datetime.now() | 138 | self.created = datetime.now() |
1376 | 132 | super(Topic, self).save(*args, **kwargs) | 139 | super(Topic, self).save(*args, **kwargs) |
1377 | 133 | 140 | ||
1378 | 141 | |||
1379 | 134 | def update_read(self, user): | 142 | def update_read(self, user): |
1380 | 135 | read, new = Read.objects.get_or_create(user=user, topic=self) | 143 | read, new = Read.objects.get_or_create(user=user, topic=self) |
1381 | 136 | if not new: | 144 | if not new: |
1382 | @@ -207,6 +215,7 @@ | |||
1383 | 207 | def save(self, *args, **kwargs): | 215 | def save(self, *args, **kwargs): |
1384 | 208 | if self.created is None: | 216 | if self.created is None: |
1385 | 209 | self.created = datetime.now() | 217 | self.created = datetime.now() |
1386 | 218 | |||
1387 | 210 | self.render() | 219 | self.render() |
1388 | 211 | 220 | ||
1389 | 212 | new = self.id is None | 221 | new = self.id is None |
1390 | @@ -339,5 +348,8 @@ | |||
1391 | 339 | self.path) | 348 | self.path) |
1392 | 340 | 349 | ||
1393 | 341 | 350 | ||
1394 | 351 | #if notification is not None: | ||
1395 | 352 | # signals.post_save.connect(notification.handle_observations, sender=Post) | ||
1396 | 353 | |||
1397 | 342 | from pybb import signals | 354 | from pybb import signals |
1398 | 343 | signals.setup_signals() | 355 | signals.setup_signals() |
1399 | 344 | 356 | ||
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 | 1 | # coding=UTF-8 | ||
1405 | 2 | |||
1406 | 1 | from datetime import datetime, timedelta | 3 | from datetime import datetime, timedelta |
1407 | 4 | import re | ||
1408 | 5 | from pprint import pprint | ||
1409 | 2 | 6 | ||
1410 | 3 | from django import template | 7 | from django import template |
1411 | 4 | from django.core.urlresolvers import reverse | 8 | from django.core.urlresolvers import reverse |
1412 | 5 | from django.utils.safestring import mark_safe | 9 | from django.utils.safestring import mark_safe |
1413 | 6 | from django.template import RequestContext | 10 | from django.template import RequestContext |
1414 | 11 | from django.template.defaultfilters import stringfilter | ||
1415 | 7 | from django.utils.encoding import smart_unicode | 12 | from django.utils.encoding import smart_unicode |
1416 | 8 | from django.db import settings | 13 | from django.db import settings |
1417 | 9 | from django.utils.html import escape | 14 | from django.utils.html import escape |
1418 | 10 | from django.utils.translation import ugettext as _ | 15 | from django.utils.translation import ugettext as _ |
1419 | 11 | from django.utils import dateformat | 16 | from django.utils import dateformat |
1420 | 12 | 17 | ||
1422 | 13 | from pybb.models import Forum, Topic, Read, PrivateMessage | 18 | from pybb.models import Post, Forum, Topic, Read, PrivateMessage |
1423 | 14 | from pybb.unread import cache_unreads | 19 | from pybb.unread import cache_unreads |
1424 | 15 | from pybb import settings as pybb_settings | 20 | from pybb import settings as pybb_settings |
1425 | 16 | 21 | ||
1426 | @@ -73,6 +78,13 @@ | |||
1427 | 73 | 'label': label, | 78 | 'label': label, |
1428 | 74 | } | 79 | } |
1429 | 75 | 80 | ||
1430 | 81 | @register.inclusion_tag('pybb/last_posts.html', takes_context=True) | ||
1431 | 82 | def pybb_last_posts(context, number = 5): | ||
1432 | 83 | last_posts = Post.objects.order_by('-created').select_related()[:5] | ||
1433 | 84 | return { | ||
1434 | 85 | 'posts': last_posts, | ||
1435 | 86 | 'user': context['user'], | ||
1436 | 87 | } | ||
1437 | 76 | 88 | ||
1438 | 77 | @register.simple_tag | 89 | @register.simple_tag |
1439 | 78 | def pybb_link(object, anchor=u''): | 90 | def pybb_link(object, anchor=u''): |
1440 | @@ -179,3 +191,122 @@ | |||
1441 | 179 | @register.filter | 191 | @register.filter |
1442 | 180 | def pybb_unreads(qs, user): | 192 | def pybb_unreads(qs, user): |
1443 | 181 | return cache_unreads(qs, user) | 193 | return cache_unreads(qs, user) |
1444 | 194 | |||
1445 | 195 | @register.filter | ||
1446 | 196 | @stringfilter | ||
1447 | 197 | def pybb_cut_string(value, arg): | ||
1448 | 198 | if len(value) > arg: | ||
1449 | 199 | return value[0:arg-3] + "..." | ||
1450 | 200 | else: | ||
1451 | 201 | return value | ||
1452 | 202 | |||
1453 | 203 | @register.filter | ||
1454 | 204 | @stringfilter | ||
1455 | 205 | def pybb_output_bbcode(post): | ||
1456 | 206 | """ | ||
1457 | 207 | post = post.replace('[b]', '<span class="bold">') | ||
1458 | 208 | post = post.replace('[i]', '<span class="italic">') | ||
1459 | 209 | post = post.relpace('[u]', '<span class="underline">') | ||
1460 | 210 | |||
1461 | 211 | post = post.replace('[/b]', '</span>') | ||
1462 | 212 | post = post.replace('[/i]', '</span>') | ||
1463 | 213 | post = post.replace('[/u]', '</span>') | ||
1464 | 214 | """ | ||
1465 | 215 | return pprint(post) | ||
1466 | 216 | |||
1467 | 217 | @register.simple_tag | ||
1468 | 218 | def pybb_render_post(post, mode='html'): | ||
1469 | 219 | """ | ||
1470 | 220 | Process post contents and replace special tags with human readeable messages. | ||
1471 | 221 | |||
1472 | 222 | Arguments: | ||
1473 | 223 | post - the ``Post`` instance | ||
1474 | 224 | mode - "html" or "text". Control which field to use ``body_html`` or ``body_text`` | ||
1475 | 225 | |||
1476 | 226 | Currently following tags are supported: | ||
1477 | 227 | |||
1478 | 228 | @@@AUTOJOIN-(SECONDS)@@@ - autojoin message | ||
1479 | 229 | |||
1480 | 230 | """ | ||
1481 | 231 | |||
1482 | 232 | def render_autojoin_message(match): | ||
1483 | 233 | time_diff = int(match.group(1)) / 60 | ||
1484 | 234 | |||
1485 | 235 | join_message = ungettext(u"Added after %s minute", | ||
1486 | 236 | u"Added after %s minutes", | ||
1487 | 237 | time_diff) | ||
1488 | 238 | join_message %= time_diff | ||
1489 | 239 | |||
1490 | 240 | if mode == 'html': | ||
1491 | 241 | return u'<div class="autojoin-message">%s</div>' % join_message | ||
1492 | 242 | else: | ||
1493 | 243 | return join_message | ||
1494 | 244 | |||
1495 | 245 | |||
1496 | 246 | body = getattr(post, 'body_%s' % mode) | ||
1497 | 247 | re_tag = re.compile(r'@@@AUTOJOIN-(\d+)@@@') | ||
1498 | 248 | return re_tag.sub(render_autojoin_message, body) | ||
1499 | 249 | |||
1500 | 250 | """ | ||
1501 | 251 | Spielwiese, Playground, Cour de récréati ;) | ||
1502 | 252 | """ | ||
1503 | 253 | |||
1504 | 254 | @register.filter | ||
1505 | 255 | @stringfilter | ||
1506 | 256 | def pybb_trim_string(value, arg): | ||
1507 | 257 | """ | ||
1508 | 258 | Mit "arg" ist es moeglich 1 oder mehr Werte der Funtion zu Uebergeben. Wenn | ||
1509 | 259 | mehr als 1 Wert genutzt werden soll wird es durch "-" getrennt. Jeder Wert | ||
1510 | 260 | kann entweder die Beschraenkung fuer die Zeichen oder Woerter beinhalten. | ||
1511 | 261 | Um das eindeutig zu identifizieren Wort "w" und Zeichen "z". | ||
1512 | 262 | Beispiel: | ||
1513 | 263 | 1. w:10 -> Auf 10 Worte beschraenken | ||
1514 | 264 | 2. z:250 -> Auf 250 Zeichen beschraenken | ||
1515 | 265 | 3. w:10-z:250 -> Auf 10 Worte und 250 Zeichen beschraenken | ||
1516 | 266 | |||
1517 | 267 | Beim spaeteren drueber nachdenken ist das mit den Worten eig. egal und | ||
1518 | 268 | koennte wieder entfernt werden, aber vllt findet ja einer noch einen nutzen | ||
1519 | 269 | dafuer ;) | ||
1520 | 270 | """ | ||
1521 | 271 | _iWord = "" | ||
1522 | 272 | _iSign = "" | ||
1523 | 273 | _lArguments = arg.split("-") | ||
1524 | 274 | _sOption = _lArguments[0].split(":")[0] | ||
1525 | 275 | _iValue = _lArguments[0].split(":")[1] | ||
1526 | 276 | if len(_lArguments) == 1: | ||
1527 | 277 | if _sOption == "w": | ||
1528 | 278 | _iWord = int(_iValue) | ||
1529 | 279 | elif _sOption == "z": | ||
1530 | 280 | _iSign = int(_iValue) | ||
1531 | 281 | else: | ||
1532 | 282 | pass | ||
1533 | 283 | elif len(_lArguments) == 2: | ||
1534 | 284 | if _sOption == "w": | ||
1535 | 285 | _iWord = int(_iValue) | ||
1536 | 286 | _iSign = int(_lArguments[1].split(":")[1]) | ||
1537 | 287 | elif _sOption == "z": | ||
1538 | 288 | _iSign = int(_iValue) | ||
1539 | 289 | _iWord = int(_lArguments[1].split(":")[1]) | ||
1540 | 290 | else: | ||
1541 | 291 | pass | ||
1542 | 292 | else: | ||
1543 | 293 | pass | ||
1544 | 294 | if _iWord != "" or _iSign != "": | ||
1545 | 295 | _iWordCount = int(len(value.split(" "))) | ||
1546 | 296 | _iSignCount = int(len(value)) | ||
1547 | 297 | """ | ||
1548 | 298 | Hier waere noch die Ueberlegung wenn 2 Werte gesetzt das man dann | ||
1549 | 299 | wirklich nur ganze Woerter anzeigen laesst ohne sie zu beschneiden | ||
1550 | 300 | """ | ||
1551 | 301 | if _iWord != "" and _iSign != "" and _iSignCount >= _iSign: | ||
1552 | 302 | return value[0:_iSign] + "..." | ||
1553 | 303 | elif _iWord != "" and _iSign == "" and _iWordCount >= _iWord: | ||
1554 | 304 | return ' '.join(value.split(" ")[0:_iWord]) + "..." | ||
1555 | 305 | elif _iWord == "" and _iSign != "" and _iSignCount >= _iSign: | ||
1556 | 306 | return value[0:_iSign] + "..." | ||
1557 | 307 | else: | ||
1558 | 308 | return value | ||
1559 | 309 | # return " " + str(len(value)) + " " + str(len(value.split(" "))) + " " + str(arg) + " " + str(_iWord) + ":" + str(_iWordCount) + " " + str(_iSign) + ":" + str(_iSignCount) | ||
1560 | 310 | else: | ||
1561 | 311 | return value | ||
1562 | 312 | |||
1563 | 182 | 313 | ||
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 | 37 | 37 | ||
1569 | 38 | # API | 38 | # API |
1570 | 39 | url('^api/post_ajax_preview/$', views.post_ajax_preview, name='pybb_post_ajax_preview'), | 39 | url('^api/post_ajax_preview/$', views.post_ajax_preview, name='pybb_post_ajax_preview'), |
1571 | 40 | |||
1572 | 41 | # Subsciption | ||
1573 | 42 | url('^topic/(?P<topic_id>\d+)/subscribe/$', views.add_subscription, name='pybb_add_subscription'), | ||
1574 | 43 | url('^topic/(?P<topic_id>\d+)/unsubscribe/$', views.delete_subscription, name='pybb_delete_subscription'), | ||
1575 | 40 | ) | 44 | ) |
1576 | 41 | 45 | ||
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 | 173 | text = user.username + " wrote:\n" + text | 173 | text = user.username + " wrote:\n" + text |
1582 | 174 | 174 | ||
1583 | 175 | # if markup == 'markdown': | 175 | # if markup == 'markdown': |
1585 | 176 | if markup: | 176 | if markup == 'markdown': |
1586 | 177 | return '>'+text.replace('\n','\n>').replace('\r','\n>') + '\n' | 177 | return '>'+text.replace('\n','\n>').replace('\r','\n>') + '\n' |
1587 | 178 | elif markup == 'bbcode': | ||
1588 | 179 | return '[quote]\n%s\n[/quote]\n' % text | ||
1589 | 178 | else: | 180 | else: |
1590 | 179 | return text | 181 | return text |
1591 | 180 | # elif markup == 'bbcode': | ||
1592 | 181 | # return '[quote]\n%s\n[/quote]\n' % text | ||
1593 | 182 | # else: | ||
1594 | 183 | # return text | ||
1595 | 184 | 182 | ||
1596 | 185 | 183 | ||
1597 | 186 | def absolute_url(path): | 184 | def absolute_url(path): |
1598 | 187 | 185 | ||
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 | 18 | from pybb import settings as pybb_settings | 18 | from pybb import settings as pybb_settings |
1604 | 19 | from pybb.orm import load_related | 19 | from pybb.orm import load_related |
1605 | 20 | 20 | ||
1606 | 21 | try: | ||
1607 | 22 | from notification import models as notification | ||
1608 | 23 | except ImportError: | ||
1609 | 24 | notification = None | ||
1610 | 25 | |||
1611 | 21 | def index_ctx(request): | 26 | def index_ctx(request): |
1612 | 22 | quick = {'posts': Post.objects.count(), | 27 | quick = {'posts': Post.objects.count(), |
1613 | 23 | 'topics': Topic.objects.count(), | 28 | 'topics': Topic.objects.count(), |
1614 | @@ -165,6 +170,8 @@ | |||
1615 | 165 | 170 | ||
1616 | 166 | if form.is_valid(): | 171 | if form.is_valid(): |
1617 | 167 | post = form.save(); | 172 | post = form.save(); |
1618 | 173 | if not topic: | ||
1619 | 174 | post.topic.subscribers.add(request.user) | ||
1620 | 168 | return HttpResponseRedirect(post.get_absolute_url()) | 175 | return HttpResponseRedirect(post.get_absolute_url()) |
1621 | 169 | 176 | ||
1622 | 170 | if topic: | 177 | if topic: |
1623 | 171 | 178 | ||
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 | 199 | 'widelands.wlevents', | 199 | 'widelands.wlevents', |
1629 | 200 | 'widelands.wlmaps', | 200 | 'widelands.wlmaps', |
1630 | 201 | 'widelands.wlscreens', | 201 | 'widelands.wlscreens', |
1631 | 202 | 'widelands.wlggz', | ||
1632 | 202 | 203 | ||
1633 | 203 | # Modified 3rd party apps | 204 | # Modified 3rd party apps |
1634 | 204 | 'widelands.wiki', # This is based on wikiapp, but has some local modifications | 205 | 'widelands.wiki', # This is based on wikiapp, but has some local modifications |
1635 | 205 | 206 | ||
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 | 10 | {% include "django_messages/inlines/navigation.html" %} | 10 | {% include "django_messages/inlines/navigation.html" %} |
1641 | 11 | <br /> | 11 | <br /> |
1642 | 12 | <br /> | 12 | <br /> |
1644 | 13 | <div class="message_item"> | 13 | <div class="box_item_model fixed_site border"> |
1645 | 14 | <h3 class="title">{% trans "Compose Message"%}</h3> | 14 | <h3 class="title">{% trans "Compose Message"%}</h3> |
1666 | 15 | <div class="content"> | 15 | <form action="" method="post"> |
1667 | 16 | <form action="" method="post"> | 16 | <div class="content"> |
1668 | 17 | <table class="text" width="100%" cellspacing="1"> | 17 | <table class="text full_site" cellspacing="1"> |
1669 | 18 | {% for field in form %} | 18 | {% for field in form %} |
1670 | 19 | <tr> | 19 | <tr> |
1671 | 20 | <td {% ifequal field.name "body" %}valign="top" {% endifequal %}width="80" class="{% cycle "odd" "even" %}">{{ field.label_tag }}:</td> | 20 | <td width="80" class="{% cycle "odd" "even" %}{% ifequal field.name "body" %} show_left{% endifequal %}">{{ field.label_tag }}:</td> |
1672 | 21 | <td class="{% cycle "odd" "even" %}">{{ field }}</td> | 21 | <td class="{% cycle "odd" "even" %}">{{ field }}</td> |
1673 | 22 | <td width="1%" class="{% cycle "odd" "even" %}"></td> | 22 | </tr> |
1674 | 23 | </tr> | 23 | {% endfor %} |
1675 | 24 | {% endfor %} | 24 | </table> |
1676 | 25 | </table> | 25 | </div> |
1677 | 26 | </div> | 26 | <div class="info_line show_center"> |
1678 | 27 | <table class="bottom_line" width="100%"> | 27 | <input type="submit" value="{% trans "Send" %} »"/> |
1679 | 28 | <tr> | 28 | </div> |
1680 | 29 | <td class="admin"> | 29 | </form> |
1661 | 30 | <input type="submit" value="{% trans "Send" %} »"/> | ||
1662 | 31 | </td> | ||
1663 | 32 | <tr> | ||
1664 | 33 | </table> | ||
1665 | 34 | </form> | ||
1681 | 35 | </div> | 30 | </div> |
1682 | 36 | 31 | ||
1683 | 37 | {% endblock %} | 32 | {% endblock %} |
1684 | 38 | 33 | ||
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 | 7 | 7 | ||
1690 | 8 | {% block content %} | 8 | {% block content %} |
1691 | 9 | {% include "django_messages/inlines/navigation.html" %} | 9 | {% include "django_messages/inlines/navigation.html" %} |
1694 | 10 | 10 | <br /> | |
1695 | 11 | <h1>{% trans "Inbox" %}</h1> | 11 | <br /> |
1696 | 12 | <div class="box_item_model border"> | ||
1697 | 13 | <h3 class="title">{% trans "Inbox" %}</h3> | ||
1698 | 12 | <table class="messages" cellspacing="1"> | 14 | <table class="messages" cellspacing="1"> |
1699 | 13 | <thead> | 15 | <thead> |
1700 | 14 | <tr> | 16 | <tr> |
1705 | 15 | <th>{% trans "Sender" %}</th> | 17 | <td>{% trans "Sender" %}</td> |
1706 | 16 | <th>{% trans "Subject" %}</th> | 18 | <td>{% trans "Subject" %}</td> |
1707 | 17 | <th>{% trans "Received" %}</th> | 19 | <td>{% trans "Received" %}</td> |
1708 | 18 | <th>{% trans "Action" %}</th> | 20 | <td>{% trans "Action" %}</td> |
1709 | 19 | </tr> | 21 | </tr> |
1710 | 20 | </thead> | 22 | </thead> |
1711 | 21 | <tbody> | 23 | <tbody> |
1712 | @@ -24,4 +26,5 @@ | |||
1713 | 24 | {% endfor %} | 26 | {% endfor %} |
1714 | 25 | </tbody> | 27 | </tbody> |
1715 | 26 | </table> | 28 | </table> |
1716 | 29 | </div> | ||
1717 | 27 | {% endblock %} | 30 | {% endblock %} |
1718 | 28 | 31 | ||
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 | 1 | {% load i18n %} | 1 | {% load i18n %} |
1724 | 2 | 2 | ||
1725 | 3 | {% if user.is_authenticated %} | ||
1726 | 3 | <div> | 4 | <div> |
1741 | 4 | <table width="100%"> | 5 | <table width="100%"> |
1742 | 5 | <tr> | 6 | <tr> |
1743 | 6 | <td align="left"> | 7 | <td width=""> |
1744 | 7 | <a href="{% url profile_view %} ">{% trans "Profile" %}</a> | 8 | </td> |
1745 | 8 | | <a href="{% url notification_notices %} ">{% trans "Notifications" %}</a> | 9 | <td width="370" align="right" style="table-layout: fixed; background-image: url(http://wl-testbed.dyndns.org/wlmedia/img/background-4F4F4F.png);"> |
1746 | 9 | </td> | 10 | <a href="{% url messages_inbox %} ">{% trans "Inbox" %}</a> |
1747 | 10 | <td align="right" style="table-layout: fixed;"> | 11 | | <a href="{% url messages_outbox %} ">{% trans "Sent Messages" %}</a> |
1748 | 11 | <a href="{% url messages_inbox %} ">{% trans "Inbox" %}</a> | 12 | | <a href="{% url messages_compose %} ">{% trans "New Message" %}</a> |
1749 | 12 | | <a href="{% url messages_outbox %} ">{% trans "Sent Messages" %}</a> | 13 | | <a href="{% url messages_trash %} ">{% trans "Message Trash" %}</a> |
1750 | 13 | | <a href="{% url messages_compose %} ">{% trans "New Message" %}</a> | 14 | </td> |
1751 | 14 | | <a href="{% url messages_trash %} ">{% trans "Message Trash" %}</a> | 15 | </tr> |
1752 | 15 | </td> | 16 | </table> |
1739 | 16 | </tr> | ||
1740 | 17 | </table> | ||
1753 | 18 | </div> | 17 | </div> |
1754 | 18 | {% endif %} | ||
1755 | 19 | 19 | ||
1756 | 20 | 20 | ||
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 | 7 | 7 | ||
1762 | 8 | {% block content %} | 8 | {% block content %} |
1763 | 9 | {% include "django_messages/inlines/navigation.html" %} | 9 | {% include "django_messages/inlines/navigation.html" %} |
1765 | 10 | <h1>{% trans "Sent Messages" %}</h1> | 10 | <br /> |
1766 | 11 | <br /> | ||
1767 | 12 | <div class="box_item_model border"> | ||
1768 | 13 | <h3 class="title">{% trans "Sent Messages" %}</h3> | ||
1769 | 11 | <table class="messages" cellspacing="1"> | 14 | <table class="messages" cellspacing="1"> |
1770 | 12 | <thead> | 15 | <thead> |
1771 | 13 | <tr> | 16 | <tr> |
1776 | 14 | <th>{% trans "Recipient" %}</th> | 17 | <td>{% trans "Recipient" %}</td> |
1777 | 15 | <th>{% trans "Subject" %}</th> | 18 | <td>{% trans "Subject" %}</td> |
1778 | 16 | <th>{% trans "Sent" %}</th> | 19 | <td>{% trans "Sent" %}</td> |
1779 | 17 | <th>{% trans "Action" %}</th> | 20 | <td>{% trans "Action" %}</td> |
1780 | 18 | </tr> | 21 | </tr> |
1781 | 19 | </thead> | 22 | </thead> |
1782 | 20 | <tbody> | 23 | <tbody> |
1783 | @@ -23,4 +26,5 @@ | |||
1784 | 23 | {% endfor %} | 26 | {% endfor %} |
1785 | 24 | </tbody> | 27 | </tbody> |
1786 | 25 | </table> | 28 | </table> |
1787 | 29 | </div> | ||
1788 | 26 | {% endblock %} | 30 | {% endblock %} |
1789 | 27 | 31 | ||
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 | 7 | 7 | ||
1795 | 8 | {% block content %} | 8 | {% block content %} |
1796 | 9 | {% include "django_messages/inlines/navigation.html" %} | 9 | {% include "django_messages/inlines/navigation.html" %} |
1808 | 10 | <h1>{% trans "Deleted Messages" %}</h1> | 10 | <br /> |
1809 | 11 | <table class="messages" cellspacing="1"> | 11 | <br /> |
1810 | 12 | <thead> | 12 | <div class="box_item_model border"> |
1811 | 13 | <tr> | 13 | <h3 class="title">{% trans "Deleted Messages" %}</h3> |
1812 | 14 | <th>{% trans "Sender" %}</th> | 14 | <table class="messages" cellspacing="1"> |
1813 | 15 | <th>{% trans "Subject" %}</th> | 15 | <thead> |
1814 | 16 | <th>{% trans "Date" %}</th> | 16 | <tr> |
1815 | 17 | <th>{% trans "Action" %}</th> | 17 | <td>{% trans "Sender" %}</td> |
1816 | 18 | </tr> | 18 | <td>{% trans "Subject" %}</td> |
1817 | 19 | </thead> | 19 | <td>{% trans "Date" %}</td> |
1818 | 20 | <tbody> | 20 | <td>{% trans "Action" %}</td> |
1819 | 21 | </tr> | ||
1820 | 22 | </thead> | ||
1821 | 23 | <tbody> | ||
1822 | 21 | {% for message in message_list %} | 24 | {% for message in message_list %} |
1823 | 22 | {% include "django_messages/inlines/message_row.html" %} | 25 | {% include "django_messages/inlines/message_row.html" %} |
1824 | 23 | {% endfor %} | 26 | {% endfor %} |
1827 | 24 | </tbody> | 27 | </tbody> |
1828 | 25 | </table> | 28 | </table> |
1829 | 29 | </div> | ||
1830 | 26 | <br /> | 30 | <br /> |
1832 | 27 | <p>{% trans "Deleted Messages are removed from the trash at unregular intervals, don't rely on this feature for long-time storage." %}</p> | 31 | <div class="box_item_model border"> |
1833 | 32 | <div class="info_line show_center errormessage"> | ||
1834 | 33 | <br /> | ||
1835 | 34 | {% trans "Deleted Messages are removed from the trash at unregular intervals, don't rely on this feature for long-time storage." %} | ||
1836 | 35 | <br /> | ||
1837 | 36 | <br /> | ||
1838 | 37 | </div> | ||
1839 | 38 | </div> | ||
1840 | 28 | {% endblock %} | 39 | {% endblock %} |
1841 | 29 | 40 | ||
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 | 16 | {{ block.super}}{% endblock %} | 16 | {{ block.super}}{% endblock %} |
1847 | 17 | {% block content %} | 17 | {% block content %} |
1848 | 18 | 18 | ||
1860 | 19 | 19 | <div class="block_center"> | |
1861 | 20 | <div class="blockContent"> | 20 | <h1>Welcome to Widelands.org</h1> |
1862 | 21 | <center> | 21 | <h3>Home of the free realtime strategy game and its community</h3> |
1863 | 22 | <h1>Welcome to Widelands.org</h1> | 22 | <br/> |
1864 | 23 | <h3>Home of the free realtime strategy game and its community</h3> | 23 | <img src='{{ MEDIA_URL }}/img/HomepageSplash.jpg' title='Widelands' alt='Widelands-Screenshot' /> |
1865 | 24 | <p> | 24 | <br/> |
1866 | 25 | <br/> | 25 | <br/> |
1856 | 26 | <img src='{{ MEDIA_URL }}/img/HomepageSplash.jpg' title='Widelands' alt='Widelands-Screenshot' /> | ||
1857 | 27 | <br/><br/> | ||
1858 | 28 | </p> | ||
1859 | 29 | </center> | ||
1867 | 30 | </div> | 26 | </div> |
1868 | 31 | 27 | ||
1869 | 32 | <!-- Begin of text --> | 28 | <!-- Begin of text --> |
1870 | 33 | <div class="itemText"> | 29 | <div class="itemText"> |
1898 | 34 | <p> | 30 | <p> |
1899 | 35 | Widelands is an open source (GPLed) real-time strategy | 31 | Widelands is an open source (GPLed) real-time strategy game. |
1900 | 36 | game. It is built upon the <a | 32 | It is built upon the <a href='http://www.libsdl.org'>SDL</a> and other |
1901 | 37 | href='http://www.libsdl.org'>SDL</a> and other open | 33 | open source libraries and is (and will always be) under heavy |
1902 | 38 | source libraries and is (and will always be) under heavy development. If | 34 | development. If you knew Settlers I & II™ (© Bluebyte), then |
1903 | 39 | you knew Settlers I & II™ (© Bluebyte), then you | 35 | you already have a rough idea what Widelands is all about because |
1904 | 40 | already have a rough idea what Widelands is all about because | 36 | widelands is heavily inspired by those two games. |
1905 | 41 | widelands is heavily inspired by those two games. | 37 | </p> |
1906 | 42 | </p> | 38 | <p> |
1907 | 43 | <p> | 39 | You can find detailed information on the game in our |
1908 | 44 | You can find detailed information on the game in our <a | 40 | <a href="/wiki">Wiki</a>. I you want to get a quick Overview, go to the |
1909 | 45 | href="/wiki">Wiki</a>. I you want to get a quick Overview, go to | 41 | <a title="General Info" href="{% url wiki_article "GeneralInfo" %}">General Info</a> |
1910 | 46 | the <a title="General Info" href="{% url wiki_article "GeneralInfo" %}">General Info</a> page. | 42 | page. |
1911 | 47 | </p> | 43 | </p> |
1912 | 48 | 44 | <p> | |
1913 | 49 | <p> | 45 | You can download the game on the |
1914 | 50 | You can download the game on the <a href="{% url wiki_article "DownloadPage" %}">DownloadPage</a>. You can also find | 46 | <a href="{% url wiki_article "DownloadPage" %}">DownloadPage</a>. You |
1915 | 51 | installation instructions and various troubleshooting hints | 47 | can also find installation instructions and various troubleshooting |
1916 | 52 | there. | 48 | hints there. |
1917 | 53 | </p> | 49 | </p> |
1918 | 54 | 50 | <p> | |
1919 | 55 | <p> | 51 | You are also invited to visit the <a href="{% url pybb_index %}">Forums</a>: |
1920 | 56 | You are also invited to visit the <a | 52 | chat with the community about the game, find playing mates for |
1921 | 57 | href="{% url pybb_index %}">Forums</a>: | 53 | multiplayer, help translating, discuss graphics, music and much more. |
1922 | 58 | chat with the community about the game, find playing mates for multiplayer, | 54 | </p> |
1896 | 59 | help translating, discuss graphics, music and much more. | ||
1897 | 60 | </p> | ||
1923 | 61 | </div> | 55 | </div> |
1924 | 62 | 56 | ||
1925 | 63 | {% get_latest_posts 3 as latest_posts_list %} | 57 | {% get_latest_posts 3 as latest_posts_list %} |
1926 | 64 | {% if latest_posts_list %} | 58 | {% if latest_posts_list %} |
1933 | 65 | <h2><a href="{% url news_index %}">Latest news:</a></h2> | 59 | <h2> |
1934 | 66 | {% for object in latest_posts_list %} | 60 | <a href="{% url news_index %}">Latest news:</a> |
1935 | 67 | {% include "news/inlines/post_detail.html" %} | 61 | </h2> |
1936 | 68 | <br /> | 62 | {% for object in latest_posts_list %} |
1937 | 69 | {% endfor %} | 63 | {% include "news/inlines/post_detail.html" %} |
1938 | 70 | <a href="{% url news_index %}">News archive</a> | 64 | <br /> |
1939 | 65 | {% endfor %} | ||
1940 | 66 | <a href="{% url news_index %}">News archive</a> | ||
1941 | 71 | {% endif %} | 67 | {% endif %} |
1942 | 72 | 68 | ||
1943 | 73 | {% endblock %} | 69 | {% endblock %} |
1944 | 74 | 70 | ||
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 | 1 | {% load wlprofile %} | 1 | {% load wlprofile %} |
1950 | 2 | 2 | ||
1951 | 3 | {% if users %} | 3 | {% if users %} |
1957 | 4 | <ul> | 4 | <h3 class="box_title">Currently online</h3> |
1958 | 5 | {% for user in users %} | 5 | <div class="box_content"> |
1959 | 6 | <li><a href="{% url profile_view user %}">{{user.username}}</a></li> | 6 | <ul> |
1960 | 7 | {% endfor %} | 7 | {% for user in users %} |
1961 | 8 | </ul> | 8 | <li><a href="{% url profile_view user %}">{{user.username}}</a></li> |
1962 | 9 | {% endfor %} | ||
1963 | 10 | </ul> | ||
1964 | 11 | </div> | ||
1965 | 9 | {% endif %} | 12 | {% endif %} |
1966 | 10 | 13 | ||
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 | 38 | <li><a href="{% url pybb_forum 12 %}">Translations & Internationalization</a></li> | 38 | <li><a href="{% url pybb_forum 12 %}">Translations & Internationalization</a></li> |
1972 | 39 | </ul> | 39 | </ul> |
1973 | 40 | </li> | 40 | </li> |
1975 | 41 | <li><a href="{% url webchat_index %}">IRC Chat</a></li> | 41 | <li> |
1976 | 42 | <a href="{% url webchat_index %}">IRC Chat</a> | ||
1977 | 43 | </li> | ||
1978 | 42 | <li> | 44 | <li> |
1979 | 43 | <a href="{% url wiki_article "DevelopmentPage" %}">Development</a> | 45 | <a href="{% url wiki_article "DevelopmentPage" %}">Development</a> |
1980 | 44 | <ul> | 46 | <ul> |
1981 | @@ -50,4 +52,16 @@ | |||
1982 | 50 | <li><a href="https://bugs.launchpad.net/widelands-website">Website Bugtracker</a></li> | 52 | <li><a href="https://bugs.launchpad.net/widelands-website">Website Bugtracker</a></li> |
1983 | 51 | </ul> | 53 | </ul> |
1984 | 52 | </li> | 54 | </li> |
1986 | 53 | 55 | <!-- | |
1987 | 56 | <li> | ||
1988 | 57 | <a href="{% url wlggz_main %}">Online Gaming</a> | ||
1989 | 58 | <ul> | ||
1990 | 59 | <li><a href="{% url wlggz_ranking %}">GGZ Ranking</a></li> | ||
1991 | 60 | <li><a href="{% url wlggz_matches %}">GGZ Matches</a></li> | ||
1992 | 61 | {% if user.is_authenticated %} | ||
1993 | 62 | <li><a href="{% url wlggz_userstats %}">GGZ Status</a></li> | ||
1994 | 63 | {% endif %} | ||
1995 | 64 | <li><a href="{% url wiki_article "InternetGaming" %}">HowTo</a></li> | ||
1996 | 65 | </ul> | ||
1997 | 66 | </li> | ||
1998 | 67 | --> | ||
1999 | 54 | 68 | ||
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 | 6 | {% endcomment %} | 6 | {% endcomment %} |
2005 | 7 | {% load threadedcommentstags %} | 7 | {% load threadedcommentstags %} |
2006 | 8 | {% load news wl_markdown tagging_tags wlprofile custom_date %} | 8 | {% load news wl_markdown tagging_tags wlprofile custom_date %} |
2054 | 9 | 9 | <div class="box_item_model border"> | |
2055 | 10 | 10 | <h3 class="title">{# TODO: categories! #} {{ object.title }}</h3> | |
2056 | 11 | <div class="news_item"> | 11 | <div class="info_line"> |
2057 | 12 | <h3 class="title">{# TODO: categories! #} {{ object.title }}</h3> | 12 | <span class="news_poster">Posted by {{object.author|user_link}}</span> |
2058 | 13 | <div class="info_line"> | 13 | <span class="news_post_date">on {{ object.publish|custom_date:user }}</span> |
2059 | 14 | <span class="news_poster">Posted by {{object.author|user_link}}</span> | 14 | </div> |
2060 | 15 | <span class="news_post_date">on {{ object.publish|custom_date:user }}</span> | 15 | <div class="content"> |
2061 | 16 | </div> | 16 | {% if object.has_image %} |
2062 | 17 | <div class="content"> | 17 | <span class="news_image"><img src='{{MEDIA_URL}}{{ object.image }}' alt='{{ object.image_alt }}' /></span> |
2063 | 18 | {% if object.has_image %} | 18 | <div class="text" style='min-height: {{ object.image.height }}px;'> |
2064 | 19 | <span class="news_image"><img src='{{MEDIA_URL}}{{ object.image }}' alt='{{ object.image_alt }}' /></span> | 19 | {% else %} |
2065 | 20 | <div class="text" style='min-height: {{ object.image.height }}px;'> | 20 | <div class="text"> |
2066 | 21 | {% else %} | 21 | {% endif %} |
2067 | 22 | <div class="text"> | 22 | {{ object.body|wl_markdown:"safe" }} |
2068 | 23 | {% endif %} | 23 | </div> |
2069 | 24 | {{ object.body|wl_markdown:"safe" }} | 24 | </div> |
2070 | 25 | </div> | 25 | |
2071 | 26 | </div> | 26 | <table class="info_line full_site"> |
2072 | 27 | 27 | <tr> | |
2073 | 28 | <table class="bottom_line" width="100%"> | 28 | {% get_comment_count for object as ccount %} |
2074 | 29 | <tr> | 29 | <td class="comments show_left"> |
2075 | 30 | {% get_comment_count for object as ccount %} | 30 | <a href="{{ object.get_absolute_url }}">{{ ccount }} comments</a> |
2076 | 31 | <td class="comments"> | 31 | </td> |
2077 | 32 | <a href="{{ object.get_absolute_url }}">{{ ccount }} comments</a> | 32 | <td class="show_center"> |
2078 | 33 | </td> | 33 | {% if perms.news %} |
2079 | 34 | 34 | {% if perms.news.post_can_add %} | |
2080 | 35 | <td class="admin"> | 35 | <a href="/admin/news/post/add/">Add New Post</a> |
2081 | 36 | {% if perms.news %} | 36 | {% endif %} |
2082 | 37 | {% if perms.news.post_can_add %}<a href="/admin/news/post/add/">Add New Post</a>{% endif %} | 37 | {% if perms.news.post_can_edit %} |
2083 | 38 | {% if perms.news.post_can_edit %}| <a href="/admin/news/post/{{object.id}}/">Edit</a>{% endif %} | 38 | | <a href="/admin/news/post/{{object.id}}/">Edit</a> |
2084 | 39 | {% if perms.news.post_can_delete %}| <a href="/admin/news/post/{{object.id}}/delete/">Delete</a>{% endif %} | 39 | {% endif %} |
2085 | 40 | {% endif %} | 40 | {% if perms.news.post_can_delete %} |
2086 | 41 | </td> | 41 | | <a href="/admin/news/post/{{object.id}}/delete/">Delete</a> |
2087 | 42 | 42 | {% endif %} | |
2088 | 43 | {% tags_for_object object as tag_list %} | 43 | {% endif %} |
2089 | 44 | <td class="tags"> | 44 | </td> |
2090 | 45 | {% if tag_list %} | 45 | {% tags_for_object object as tag_list %} |
2091 | 46 | <strong>Tags:</strong> | 46 | <td class="show_right"> |
2092 | 47 | {% for tag in tag_list %} | 47 | {% if tag_list %} |
2093 | 48 | {{ tag }}{% if not forloop.last %}, {% endif %} | 48 | <strong>Tags:</strong> |
2094 | 49 | {% endfor %} | 49 | {% for tag in tag_list %} |
2095 | 50 | {% endif %} | 50 | {{ tag }} |
2096 | 51 | </td> | 51 | {% if not forloop.last %}, {% endif %} |
2097 | 52 | </tr> | 52 | {% endfor %} |
2098 | 53 | 53 | {% endif %} | |
2099 | 54 | </table> | 54 | </td> |
2100 | 55 | </div> | 55 | </tr> |
2101 | 56 | </table> | ||
2102 | 57 | </div> | ||
2103 | 56 | 58 | ||
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 | 1 | {% extends "news/base_news.html" %} | 1 | {% extends "news/base_news.html" %} |
2109 | 2 | {% load custom_date %} | 2 | {% load custom_date %} |
2111 | 3 | 3 | {% load pagination_tags %} | |
2112 | 4 | {% block title %}Post archive for {{ day|date:"d F Y" }}{% endblock %} | 4 | {% block title %}Post archive for {{ day|date:"d F Y" }}{% endblock %} |
2113 | 5 | {% block body_class %}{{ block.super }} post_archive_day{% endblock %} | 5 | {% block body_class %}{{ block.super }} post_archive_day{% endblock %} |
2114 | 6 | 6 | ||
2115 | 7 | |||
2116 | 8 | {% block content_title %} | ||
2117 | 9 | <h2>Post archive for {{ day|date:"d F Y" }}</h2> | ||
2118 | 10 | {% endblock %} | ||
2119 | 11 | |||
2120 | 12 | |||
2121 | 13 | {% block content %} | 7 | {% block content %} |
2128 | 14 | <div class="post_list"> | 8 | {% include "django_messages/inlines/navigation.html" %} |
2129 | 15 | {% for post in object_list %} | 9 | <br /> |
2130 | 16 | <div> | 10 | <br /> |
2131 | 17 | <h3 class="title"><a href="{{ post.get_absolute_url }}">{{ post.title }}</a></h3> | 11 | <div class="muttis_liebling"> |
2132 | 18 | <p class="date">{{ post.publish|custom_date:user }}</p> | 12 | <div class="box_item_model even show_center"> |
2133 | 19 | <p class="tease">{{ post.tease }}</p> | 13 | <a href="{% url news_index %}{{ day|date:"Y" }}/{{ day|date:"m" }}">Archiv {{ day|date:"F" }}</a> |
2134 | 14 | {% autopaginate object_list 10 %} | ||
2135 | 15 | {% paginate %} | ||
2136 | 20 | </div> | 16 | </div> |
2137 | 17 | <br /> | ||
2138 | 18 | {% for object in object_list %} | ||
2139 | 19 | {% include "news/inlines/post_detail.html" %} | ||
2140 | 20 | <br /> | ||
2141 | 21 | {% endfor %} | 21 | {% endfor %} |
2143 | 22 | </div> | 22 | <br /> |
2144 | 23 | {% if page_obj.has_other_pages %} | ||
2145 | 24 | <div class="box_item_model even show_center"> | ||
2146 | 25 | {% paginate %} | ||
2147 | 26 | </div> | ||
2148 | 27 | {% endif %} | ||
2149 | 28 | </div> | ||
2150 | 23 | {% endblock %} | 29 | {% endblock %} |
2151 | 24 | 30 | ||
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 | 1 | {% extends "news/base_news.html" %} | 1 | {% extends "news/base_news.html" %} |
2157 | 2 | {% load custom_date %} | 2 | {% load custom_date %} |
2159 | 3 | 3 | {% load news %} | |
2160 | 4 | {% load pagination_tags %} | ||
2161 | 4 | 5 | ||
2162 | 5 | {% block title %}Post archive for {{ month|date:"F Y" }}{% endblock %} | 6 | {% block title %}Post archive for {{ month|date:"F Y" }}{% endblock %} |
2163 | 6 | {% block body_class %}{{ block.super }} post_archive_month{% endblock %} | 7 | {% block body_class %}{{ block.super }} post_archive_month{% endblock %} |
2164 | 7 | 8 | ||
2165 | 8 | |||
2166 | 9 | {% block content_title %} | ||
2167 | 10 | <h2>Post archive for {{ month|date:"F Y" }}</h2> | ||
2168 | 11 | {% endblock %} | ||
2169 | 12 | |||
2170 | 13 | |||
2171 | 14 | {% block content %} | 9 | {% block content %} |
2173 | 15 | <div class="post_list"> | 10 | {% load markup %} |
2174 | 11 | {% include "django_messages/inlines/navigation.html" %} | ||
2175 | 12 | <br /> | ||
2176 | 13 | <br /> | ||
2177 | 14 | <div class="muttis_liebling"> | ||
2178 | 15 | <div class="box_item_model even show_center"> | ||
2179 | 16 | <a href="{% url news_index %}{{ month|date:"Y" }}">Archiv {{ month|date:"Y" }}</a> | ||
2180 | 17 | {% for day in object_list %} | ||
2181 | 18 | {% endfor %} | ||
2182 | 19 | {% autopaginate object_list 10 %} | ||
2183 | 20 | {% paginate %} | ||
2184 | 21 | </div> | ||
2185 | 16 | <br /> | 22 | <br /> |
2186 | 17 | {% for object in object_list %} | 23 | {% for object in object_list %} |
2188 | 18 | {% include "news/inlines/post_detail.html" %} | 24 | {% include "news/inlines/post_detail.html" %} |
2189 | 19 | <br /> | 25 | <br /> |
2190 | 20 | {% endfor %} | 26 | {% endfor %} |
2192 | 21 | </div> | 27 | {% if page_obj.has_other_pages %} |
2193 | 28 | <div class="box_item_model even show_center"> | ||
2194 | 29 | {% paginate %} | ||
2195 | 30 | </div> | ||
2196 | 31 | {% endif %} | ||
2197 | 32 | </div> | ||
2198 | 22 | {% endblock %} | 33 | {% endblock %} |
2199 | 23 | 34 | ||
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 | 1 | {% extends "news/base_news.html" %} | 1 | {% extends "news/base_news.html" %} |
2205 | 2 | {% load custom_date %} | 2 | {% load custom_date %} |
2206 | 3 | {% load news %} | ||
2207 | 4 | {% load pagination_tags %} | ||
2208 | 3 | 5 | ||
2209 | 4 | 6 | ||
2210 | 5 | {% block title %}Post archive for {{ year }}{% endblock %} | 7 | {% block title %}Post archive for {{ year }}{% endblock %} |
2211 | 6 | {% block body_class %}{{ block.super }} post_archive_year{% endblock %} | 8 | {% block body_class %}{{ block.super }} post_archive_year{% endblock %} |
2212 | 7 | 9 | ||
2213 | 8 | |||
2214 | 9 | {% block content_title %} | ||
2215 | 10 | <h2>Post archive for {{ year }}</h2> | ||
2216 | 11 | {% endblock %} | ||
2217 | 12 | |||
2218 | 13 | |||
2219 | 14 | {% block content %} | 10 | {% block content %} |
2220 | 15 | {% load markup %} | 11 | {% load markup %} |
2223 | 16 | 12 | {% include "django_messages/inlines/navigation.html" %} | |
2224 | 17 | <ul class="link_list"> | 13 | <br /> |
2225 | 14 | <br /> | ||
2226 | 15 | <div class="muttis_liebling"> | ||
2227 | 16 | <div class="box_item_model even show_center"> | ||
2228 | 17 | <a href="/news/">News Archiv</a> | ||
2229 | 18 | {% for month in date_list %} | 18 | {% for month in date_list %} |
2233 | 19 | <li><a href="{% url news_index %}{{ year }}/{{ month|date:"m" }}/">{{ month|date:"F" }}</a></li> | 19 | | <a href="{% url news_index %}{{ year }}/{{ month|date:"m" }}/">{{ month|date:"F" }}</a> |
2234 | 20 | {% endfor %} | 20 | {% endfor %} |
2235 | 21 | </ul> | 21 | <br /> |
2236 | 22 | {% autopaginate object_list 10 %} | ||
2237 | 23 | {% paginate %} | ||
2238 | 24 | </div> | ||
2239 | 25 | <br /> | ||
2240 | 26 | {% for object in object_list %} | ||
2241 | 27 | {% include "news/inlines/post_detail.html" %} | ||
2242 | 28 | <br /> | ||
2243 | 29 | {% endfor %} | ||
2244 | 30 | {% if page_obj.has_other_pages %} | ||
2245 | 31 | <div class="box_item_model even show_center"> | ||
2246 | 32 | {% paginate %} | ||
2247 | 33 | </div> | ||
2248 | 34 | {% endif %} | ||
2249 | 35 | |||
2250 | 36 | </div> | ||
2251 | 22 | {% endblock %} | 37 | {% endblock %} |
2252 | 23 | 38 | ||
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 | 1 | {% extends "news/base_news.html" %} | 1 | {% extends "news/base_news.html" %} |
2258 | 2 | 2 | ||
2259 | 3 | {% load news %} | 3 | {% load news %} |
2261 | 4 | 4 | {% load custom_date %} | |
2262 | 5 | {% load pagination_tags %} | ||
2263 | 5 | {% block title %}Post archive - {{ block.super }}{% endblock %} | 6 | {% block title %}Post archive - {{ block.super }}{% endblock %} |
2264 | 6 | {% block body_class %}{{ block.super }} post_list{% endblock %} | 7 | {% block body_class %}{{ block.super }} post_list{% endblock %} |
2265 | 7 | 8 | ||
2266 | 8 | {% block content_title %} | ||
2267 | 9 | <h2>Post archive</h2> | ||
2268 | 10 | {% endblock %} | ||
2269 | 11 | |||
2270 | 12 | |||
2271 | 13 | {% block content %} | 9 | {% block content %} |
2274 | 14 | <div class="post_list"> | 10 | {% include "django_messages/inlines/navigation.html" %} |
2275 | 15 | <br /> | 11 | <br /> |
2276 | 12 | <br /> | ||
2277 | 13 | <div class=""> | ||
2278 | 14 | {% get_news_years as news_years %} | ||
2279 | 15 | <div class="box_item_model even show_center"> | ||
2280 | 16 | {% for muh in news_years %} | ||
2281 | 17 | <a href="{% url news_index %}{{ muh.year }}" >{{ muh.year }}</a> | ||
2282 | 18 | {% endfor %} | ||
2283 | 19 | {% autopaginate object_list 10 %} | ||
2284 | 20 | {% paginate %} | ||
2285 | 21 | </div> | ||
2286 | 22 | <br /> | ||
2287 | 16 | {% for object in object_list %} | 23 | {% for object in object_list %} |
2295 | 17 | {% include "news/inlines/post_detail.html" %} | 24 | {% include "news/inlines/post_detail.html" %} |
2296 | 18 | <br /> | 25 | <br /> |
2297 | 19 | {% comment %} | 26 | {% endfor %} |
2298 | 20 | <div> | 27 | <br /> |
2299 | 21 | <h3 class="title"><a href="{{ post.get_absolute_url }}">{{ post.title }}</a></h3> | 28 | {% if page_obj.has_other_pages %} |
2300 | 22 | <p class="date">{{ post.publish|date:"Y F d" }}</p> | 29 | <div class="box_item_model even show_center"> |
2301 | 23 | <p class="tease">{{ post.tease }}</p> | 30 | {% paginate %} |
2302 | 24 | </div> | 31 | </div> |
2318 | 25 | {%endcomment%} | 32 | {% endif %} |
2319 | 26 | {% endfor %} | 33 | </div> |
2305 | 27 | </div> | ||
2306 | 28 | |||
2307 | 29 | {% if is_paginated %} | ||
2308 | 30 | <p class="pagination"> | ||
2309 | 31 | {% if has_next %} | ||
2310 | 32 | <a class="older" href="?page={{ next }}">Older</a> | ||
2311 | 33 | {% endif %} | ||
2312 | 34 | {% if has_next and has_previous %} | {% endif %} | ||
2313 | 35 | {% if has_previous %} | ||
2314 | 36 | <a class="newer" href="?page={{ previous }}">Newer</a> | ||
2315 | 37 | {% endif %} | ||
2316 | 38 | </p> | ||
2317 | 39 | {% endif %} | ||
2320 | 40 | {% endblock %} | 34 | {% endblock %} |
2321 | 41 | 35 | ||
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 | 1 | {% load i18n %}{% blocktrans with topic.get_absolute_url as topic_url %} A new forum post was added under topic "{{ topic }}" by "{{ user }}". | ||
2328 | 2 | |||
2329 | 3 | http://{{ current_site }}{{ topic_url }} | ||
2330 | 4 | {% endblocktrans %} | ||
2331 | 5 | {{ topic }}: | ||
2332 | 6 | |||
2333 | 7 | {{ post.body_text }} | ||
2334 | 0 | 8 | ||
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 | 1 | {% load i18n %}{% url profile_view user.username as user_url %} | ||
2340 | 2 | {% 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 | 0 | 3 | ||
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 | 1 | {% load i18n %}{% blocktrans with topic.get_absolute_url as topic_url %}The Forum topic {{ topic }} has been created by {{ user }}. | ||
2348 | 2 | |||
2349 | 3 | http://{{ current_site }}{{ topic_url }} | ||
2350 | 4 | {% endblocktrans %} | ||
2351 | 5 | {{ topic }}: | ||
2352 | 6 | |||
2353 | 7 | {{ post.body_text }} | ||
2354 | 0 | 8 | ||
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 | 1 | {% load i18n %}{% url profile_view user.username as user_url %} | ||
2360 | 2 | {% 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 | 0 | 3 | ||
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 | 10 | 10 | ||
2367 | 11 | {% block extra_head %} | 11 | {% block extra_head %} |
2368 | 12 | <link rel="alternate" type="application/atom+xml" title="Notices Feed" href="{% url notification_feed_for_user %}" /> | 12 | <link rel="alternate" type="application/atom+xml" title="Notices Feed" href="{% url notification_feed_for_user %}" /> |
2369 | 13 | <link rel="stylesheet" type="text/css" media="all" href="{{ MEDIA_URL }}/css/notice.css" />{{ block.super}} | ||
2370 | 13 | {% endblock %} | 14 | {% endblock %} |
2371 | 14 | 15 | ||
2372 | 15 | {% block content %} | 16 | {% block content %} |
2376 | 16 | {% include "messages/inlines/navigation.html" %} | 17 | {% include "django_messages/inlines/navigation.html" %} |
2377 | 17 | 18 | <br /> | |
2378 | 18 | <h1>{% trans "Notices" %}</h1> | 19 | <br /> |
2379 | 20 | <div class="box_item_model full_site border" width="100%"> | ||
2380 | 21 | <h3 class="title">{% trans "Notices" %}</h3> | ||
2381 | 19 | 22 | ||
2382 | 20 | {% autopaginate notices %} | 23 | {% autopaginate notices %} |
2384 | 21 | 24 | ||
2385 | 22 | {% if notices %} | 25 | {% if notices %} |
2388 | 23 | <a href="{% url notification_mark_all_seen %}">{% trans "Mark all unseen notices seen" %}</a> | 26 | <div class="info_line show_center"> |
2389 | 24 | 27 | <br /> | |
2390 | 28 | <a href="{% url notification_mark_all_seen %}">{% trans "Mark all unseen notices seen" %}</a> | ||
2391 | 29 | <br /> | ||
2392 | 30 | <br /> | ||
2393 | 31 | </div> | ||
2394 | 25 | {# TODO: get timezone support working with regroup #} | 32 | {# TODO: get timezone support working with regroup #} |
2395 | 26 | {% regroup notices by added.date as notices_by_date %} | 33 | {% regroup notices by added.date as notices_by_date %} |
2396 | 27 | 34 | ||
2397 | 28 | {% for date in notices_by_date %} | 35 | {% for date in notices_by_date %} |
2400 | 29 | <h2 class="notice_date">{{ date.grouper|naturalday:_("MONTH_DAY_FORMAT")|capfirst }}</h2> | 36 | <h3 class="title notice_date">{{ date.grouper|naturalday:_("MONTH_DAY_FORMAT")|capfirst }}</h3> |
2399 | 30 | |||
2401 | 31 | {% for notice in date.list %} | 37 | {% for notice in date.list %} |
2402 | 32 | {% if notice.is_unseen %} | 38 | {% if notice.is_unseen %} |
2404 | 33 | <div class="unseen_notice"> | 39 | <div class="{% cycle "odd" "even" %} notice_unseen_notice border_top"> |
2405 | 34 | {% else %} | 40 | {% else %} |
2407 | 35 | <div class="notice"> | 41 | <div class="{% cycle "odd" "even" %} border_top"> |
2408 | 36 | {% endif %} | 42 | {% endif %} |
2410 | 37 | <span class="notice_type">[{% trans notice.notice_type.display %}]</span> | 43 | <span class="notice_type"><a href="{% url notification_notice notice.pk %} ">[{% trans notice.notice_type.display %}]</a></span> |
2411 | 38 | <span class="notice_message">{{ notice.message|safe }}</span> | 44 | <span class="notice_message">{{ notice.message|safe }}</span> |
2412 | 39 | <span class="notice_time">{{ notice.added }}</span> | 45 | <span class="notice_time">{{ notice.added }}</span> |
2413 | 40 | </div> | 46 | </div> |
2414 | 41 | {% endfor %} | 47 | {% endfor %} |
2415 | 42 | {% endfor %} | 48 | {% endfor %} |
2419 | 43 | 49 | <div class="info_line show_center"> | |
2420 | 44 | {% paginate %} | 50 | {% paginate %} |
2421 | 45 | 51 | </div> | |
2422 | 46 | {% else %} | 52 | {% else %} |
2424 | 47 | <p>{% trans "No notices." %}</p> | 53 | <div class="info_line show_center"> |
2425 | 54 | <br /> | ||
2426 | 55 | {% trans "No notices." %} | ||
2427 | 56 | <br /> | ||
2428 | 57 | <br /> | ||
2429 | 58 | </div> | ||
2430 | 48 | {% endif %} | 59 | {% endif %} |
2435 | 49 | 60 | </div> | |
2436 | 50 | 61 | <br /> | |
2437 | 51 | <div class="notice_settings"> | 62 | <br /> |
2438 | 52 | <h2>{% trans "Settings" %}</h2> | 63 | <div class="box_item_model full_site border"> |
2439 | 64 | <h3 class="title">{% trans "Settings" %}</h2> | ||
2440 | 53 | 65 | ||
2441 | 54 | {% url acct_email as email_url %} | 66 | {% url acct_email as email_url %} |
2442 | 55 | {% if user.email %} | 67 | {% if user.email %} |
2444 | 56 | <p> | 68 | <div class="info_line show_center"> |
2445 | 69 | <br /> | ||
2446 | 57 | {% trans "Primary email" %}:<br /> | 70 | {% trans "Primary email" %}:<br /> |
2447 | 58 | <b>{{ user.email }}</b><br /> | 71 | <b>{{ user.email }}</b><br /> |
2450 | 59 | (change under <a href="{% url profile_view %}">Account</a>) | 72 | (change under <a href="{% url profile_view user %}">Account</a>) |
2451 | 60 | </p> | 73 | <br /> |
2452 | 74 | <br /> | ||
2453 | 75 | </div> | ||
2454 | 61 | {% else %} | 76 | {% else %} |
2456 | 62 | <p> | 77 | <div class="info_line show_center"> |
2457 | 78 | <br /> | ||
2458 | 63 | <span class="warning">{% trans "Note" %}</span>: | 79 | <span class="warning">{% trans "Note" %}</span>: |
2461 | 64 | {% 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 %} | 80 | 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 | 65 | </p> | 81 | <br /> |
2463 | 82 | <br /> | ||
2464 | 83 | </div> | ||
2465 | 66 | {% endif %} | 84 | {% endif %} |
2466 | 67 | 85 | ||
2467 | 68 | <form method="POST" action=""> {# doubt this easy to do in uni-form #} | 86 | <form method="POST" action=""> {# doubt this easy to do in uni-form #} |
2470 | 69 | <table class="notice_settings" cellspacing="1"> | 87 | <table width="100%" class="notice_settings" cellspacing="1"> |
2471 | 70 | <tr> | 88 | <tr> |
2472 | 71 | <th>{% trans "Notification Type" %}</th> | 89 | <th>{% trans "Notification Type" %}</th> |
2473 | 72 | {% for header in notice_settings.column_headers %} | 90 | {% for header in notice_settings.column_headers %} |
2474 | 73 | <th>{{ header }}</th> | 91 | <th>{{ header }}</th> |
2475 | @@ -86,7 +104,7 @@ | |||
2476 | 86 | </tr> | 104 | </tr> |
2477 | 87 | {% endfor %} | 105 | {% endfor %} |
2478 | 88 | <tr> | 106 | <tr> |
2480 | 89 | <td><input type="submit" value="{% trans "Change" %}" /></td> | 107 | <td class="info_line show_center" colspan="2"><input type="submit" value="{% trans "Change" %}" /></td> |
2481 | 90 | </tr> | 108 | </tr> |
2482 | 91 | </table> | 109 | </table> |
2483 | 92 | </form> | 110 | </form> |
2484 | 93 | 111 | ||
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 | 1 | {% extends "notification/base.html" %} | ||
2490 | 2 | |||
2491 | 3 | {% load humanize i18n %} | ||
2492 | 4 | {% load pagination_tags %} | ||
2493 | 5 | {% load custom_date %} | ||
2494 | 6 | |||
2495 | 7 | {% block title %} | ||
2496 | 8 | {% trans "Notices "%} - Account - {{ block.super }} | ||
2497 | 9 | {% endblock %} | ||
2498 | 10 | |||
2499 | 11 | {% block extra_head %} | ||
2500 | 12 | <link rel="alternate" type="application/atom+xml" title="Notices Feed" href="{% url notification_feed_for_user %}" /> | ||
2501 | 13 | <link rel="stylesheet" type="text/css" media="all" href="{{ MEDIA_URL }}/css/notice.css" />{{ block.super}} | ||
2502 | 14 | {% endblock %} | ||
2503 | 15 | |||
2504 | 16 | {% block content %} | ||
2505 | 17 | {% include "django_messages/inlines/navigation.html" %} | ||
2506 | 18 | <br /> | ||
2507 | 19 | <br /> | ||
2508 | 20 | <div class="box_item_model fixed_site"> | ||
2509 | 21 | <h3 class="title">{% trans "Notice" %}</h3> | ||
2510 | 22 | <table width="100%"> | ||
2511 | 23 | <tr> | ||
2512 | 24 | <td class="odd">Notice:</td> | ||
2513 | 25 | <td class="odd">{{ notice.message|safe }}</td> | ||
2514 | 26 | </tr> | ||
2515 | 27 | <tr> | ||
2516 | 28 | <td class="even">Notice Type:</td> | ||
2517 | 29 | <td class="even">{{ notice.notice_type }}</td> | ||
2518 | 30 | </tr> | ||
2519 | 31 | <tr> | ||
2520 | 32 | <td class="odd">Date of Notice:</td> | ||
2521 | 33 | <td class="odd">{{ notice.added }}</td> | ||
2522 | 34 | </tr> | ||
2523 | 35 | <tr> | ||
2524 | 36 | <td class="even">Notice Unseen:</td> | ||
2525 | 37 | <td class="even">{{ notice.unseen }}</td> | ||
2526 | 38 | </tr> | ||
2527 | 39 | <tr> | ||
2528 | 40 | <td class="odd">Notice Archiv:</td> | ||
2529 | 41 | <td class="odd">{{ notice.archived }}</td> | ||
2530 | 42 | </tr> | ||
2531 | 43 | <tr> | ||
2532 | 44 | <td class="even">Notice Site:</td> | ||
2533 | 45 | <td class="even">{{ notice.on_site }}</td> | ||
2534 | 46 | </tr> | ||
2535 | 47 | </table> | ||
2536 | 48 | </div> | ||
2537 | 49 | {% endblock %} | ||
2538 | 50 | |||
2539 | 0 | 51 | ||
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 @@ | |||
2545 | 1 | {% load i18n %}{% url profile_detail username=user.username as user_url %} | 1 | {% load i18n %}{% url profile_view user.username as user_url %} |
2546 | 2 | {% 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 %} | 2 | {% 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 | 3 | 3 | ||
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 | 3 | {% load i18n %} | 3 | {% load i18n %} |
2553 | 4 | 4 | ||
2554 | 5 | {% block content %} | 5 | {% block content %} |
2559 | 6 | <br /> | 6 | {% include "django_messages/inlines/navigation.html" %} |
2560 | 7 | <br /> | 7 | <br /> |
2561 | 8 | <div class="forum_item"> | 8 | <br /> |
2562 | 9 | {% include "pybb/inlines/add_post_form.html" %} | 9 | <div class="box_item_model border"> |
2563 | 10 | {% include "pybb/inlines/add_post_form.html" %} | ||
2564 | 10 | </div> | 11 | </div> |
2565 | 11 | {% endblock %} | 12 | {% endblock %} |
2566 | 12 | 13 | ||
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 | 6 | {% endblock %} | 6 | {% endblock %} |
2572 | 7 | 7 | ||
2573 | 8 | {% block content %} | 8 | {% block content %} |
2576 | 9 | <h1>{% trans "Are you sure you want to delete this message?" %}</h1> | 9 | {% include "django_messages/inlines/navigation.html" %} |
2577 | 10 | <p class="post-preview"> | 10 | <br /> |
2578 | 11 | <br /> | ||
2579 | 12 | <div class="box_item_model fixed_site border"> | ||
2580 | 13 | <h3 class="title">{% trans "Are you sure you want to delete this message?" %}</h3> | ||
2581 | 14 | <div class="even"> | ||
2582 | 15 | <p class="post-preview"> | ||
2583 | 11 | {{ post.body_html|safe }} | 16 | {{ post.body_html|safe }} |
2588 | 12 | </p> | 17 | </p> |
2589 | 13 | <form method="post"> | 18 | </div> |
2590 | 14 | <p><input type="submit" value="{% trans "Yes, I am sure." %}" /></p> | 19 | <form method="post"> |
2591 | 15 | </form> | 20 | <div class="info_line"> |
2592 | 21 | <input type="submit" value="{% trans "Yes, I am sure." %}" /> | ||
2593 | 22 | </div> | ||
2594 | 23 | </form> | ||
2595 | 24 | </div> | ||
2596 | 16 | {% endblock %} | 25 | {% endblock %} |
2597 | 17 | 26 | ||
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 | 7 | {% endblock %} | 7 | {% endblock %} |
2603 | 8 | 8 | ||
2604 | 9 | {% block content %} | 9 | {% block content %} |
2609 | 10 | <br /> | 10 | {% include "django_messages/inlines/navigation.html" %} |
2610 | 11 | <br /> | 11 | <br /> |
2611 | 12 | <div class="forum_item"> | 12 | <br /> |
2612 | 13 | {% include "pybb/inlines/add_post_form.html" %} | 13 | <div class="box_item_model border"> |
2613 | 14 | {% include "pybb/inlines/add_post_form.html" %} | ||
2614 | 14 | </div> | 15 | </div> |
2615 | 15 | {% endblock %} | 16 | {% endblock %} |
2616 | 16 | 17 | ||
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 | 13 | {% endblock %} | 13 | {% endblock %} |
2622 | 14 | 14 | ||
2623 | 15 | {% block content %} | 15 | {% block content %} |
2624 | 16 | {% include "django_messages/inlines/navigation.html" %} | ||
2625 | 17 | <br /> | ||
2626 | 18 | <br /> | ||
2627 | 19 | <div class="box_item_model"> | ||
2628 | 16 | <div class="forum-list"> | 20 | <div class="forum-list"> |
2631 | 17 | <span class="title">{{ forum }}</span> | 21 | <span class="title"><a href="/forum/">Forum</a> ⇒ {{ forum }}</span> |
2632 | 18 | 22 | <br /> | |
2633 | 19 | <div class="index_forum"> | 23 | <div class="index_forum"> |
2661 | 20 | {% pybb_pagination _('Topics') %} | 24 | <table width="100%"> |
2662 | 21 | <div class="controls"> | 25 | <tr> |
2663 | 22 | <a href="{% url pybb_add_topic forum.id %}">{% trans "New topic" %}</a> | 26 | <td> |
2664 | 23 | </div> | 27 | {% pybb_pagination _('Topics') %} |
2665 | 24 | 28 | </td> | |
2666 | 25 | <table cellspacing="1" width="100%"> | 29 | <td> |
2667 | 26 | <tr align="center"> | 30 | <div class="controls"> |
2668 | 27 | <th width="5%"> </th> | 31 | <a href="{% url pybb_add_topic forum.id %}"> |
2669 | 28 | <th width="40%" nowrap="nowrap" align="left">Topic</th> | 32 | <img src="{{MEDIA_URL}}/forum/img/en/new_topic.png" height="25" alt ="{% trans "New Topic" %}" style="float:right" /> |
2670 | 29 | <th nowrap="nowrap">Creator</th> | 33 | </a> |
2671 | 30 | <th nowrap="nowrap">At</th> | 34 | </div> |
2672 | 31 | <th nowrap="nowrap">Posts</th> | 35 | </td> |
2673 | 32 | <th nowrap="nowrap">Views</th> | 36 | </tr> |
2674 | 33 | <th width="20%" nowrap="nowrap">Last Post</th> | 37 | </table> |
2675 | 34 | </tr> | 38 | <table cellspacing="1" width="100%"> |
2676 | 35 | 39 | <tr align="center"> | |
2677 | 36 | {# List all forums #} | 40 | <th width="5%"> </th> |
2678 | 37 | {% for topic in topics %} | 41 | <th width="40%" nowrap="nowrap" align="left">Topic</th> |
2679 | 38 | {% include "pybb/inlines/topic_row.html" %} | 42 | <th nowrap="nowrap">Creator</th> |
2680 | 39 | {% endfor %} | 43 | <th nowrap="nowrap">At</th> |
2681 | 40 | </table> | 44 | <th nowrap="nowrap">Posts</th> |
2682 | 41 | 45 | <th nowrap="nowrap">Views</th> | |
2683 | 42 | {% pybb_pagination _('Topics') %} | 46 | <th width="20%" nowrap="nowrap">Last Post</th> |
2684 | 43 | <div class="controls"> | 47 | </tr> |
2685 | 44 | <a href="{% url pybb_add_topic forum.id %}">{% trans "New topic" %}</a> | 48 | |
2686 | 45 | </div> | 49 | {# List all forums #} |
2687 | 46 | 50 | {% for topic in topics %} | |
2688 | 51 | {% include "pybb/inlines/topic_row.html" %} | ||
2689 | 52 | {% endfor %} | ||
2690 | 53 | </table> | ||
2691 | 54 | <table width="100%"> | ||
2692 | 55 | <tr> | ||
2693 | 56 | <td> | ||
2694 | 57 | {% pybb_pagination _('Topics') %} | ||
2695 | 58 | </td> | ||
2696 | 59 | <td> | ||
2697 | 60 | <div class="controls"> | ||
2698 | 61 | <a href="{% url pybb_add_topic forum.id %}"> | ||
2699 | 62 | <img src="{{MEDIA_URL}}/forum/img/en/new_topic.png" height="25" alt ="{% trans "New Topic" %}" style="float:right"/> | ||
2700 | 63 | </a> | ||
2701 | 64 | </div> | ||
2702 | 65 | </td> | ||
2703 | 66 | </tr> | ||
2704 | 67 | </table> | ||
2705 | 47 | </div> | 68 | </div> |
2706 | 48 | 69 | ||
2707 | 49 | <table class="legend"> | 70 | <table class="legend"> |
2717 | 50 | <tr> | 71 | <tr> |
2718 | 51 | <td> | 72 | <td> |
2719 | 52 | <img src="{{MEDIA_URL}}/forum/img/folder_new.png" style=":" alt="" align="middle" /> | 73 | <img src="{{MEDIA_URL}}/forum/img/folder_new.png" style=":" alt="" align="middle" /> |
2720 | 53 | </td><td>= Unread posts</td> | 74 | </td> |
2721 | 54 | <td> | 75 | <td>= Unread posts</td> |
2722 | 55 | <img src="{{MEDIA_URL}}/forum/img/folder.png" style="" alt="" align="middle" /> | 76 | <td> |
2723 | 56 | </td><td>= No unread posts</td> | 77 | <img src="{{MEDIA_URL}}/forum/img/folder.png" style="" alt="" align="middle" /> |
2724 | 57 | <td> | 78 | </td> |
2725 | 58 | </tr> | 79 | <td>= No unread posts</td> |
2726 | 80 | <td> | ||
2727 | 81 | </tr> | ||
2728 | 59 | </table> | 82 | </table> |
2729 | 60 | </div> | 83 | </div> |
2731 | 61 | 84 | </div> | |
2732 | 62 | {% endblock %} | 85 | {% endblock %} |
2733 | 63 | 86 | ||
2734 | 64 | {% comment %} | 87 | {% comment %} |
2735 | 65 | 88 | ||
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 | 2 | {% load pybb_extras %} | 2 | {% load pybb_extras %} |
2741 | 3 | 3 | ||
2742 | 4 | {% block content %} | 4 | {% block content %} |
2744 | 5 | {% for category in cats %} | 5 | {% include "django_messages/inlines/navigation.html" %} |
2745 | 6 | <br /> | ||
2746 | 7 | <br /> | ||
2747 | 8 | <div class="box_item_model"> | ||
2748 | 9 | {% for category in cats %} | ||
2749 | 6 | {% include 'pybb/inlines/display_category.html' %} | 10 | {% include 'pybb/inlines/display_category.html' %} |
2751 | 7 | {% endfor %} | 11 | {% endfor %} |
2752 | 8 | 12 | ||
2753 | 9 | <table class="legend"> | 13 | <table class="legend"> |
2754 | 10 | <tr> | 14 | <tr> |
2755 | @@ -27,6 +31,6 @@ | |||
2756 | 27 | </tr> | 31 | </tr> |
2757 | 28 | {% endcomment %} | 32 | {% endcomment %} |
2758 | 29 | </table> | 33 | </table> |
2760 | 30 | 34 | <div> | |
2761 | 31 | {% endblock %} | 35 | {% endblock %} |
2762 | 32 | 36 | ||
2763 | 33 | 37 | ||
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 | 1 | {% load i18n %} | 1 | {% load i18n %} |
2769 | 2 | |||
2770 | 3 | {% block extra_head %} | 2 | {% block extra_head %} |
2771 | 4 | <script type="text/javascript" src="/wlmedia/js/disableOnSubmit.js"></script> | 3 | <script type="text/javascript" src="/wlmedia/js/disableOnSubmit.js"></script> |
2772 | 5 | <script type="text/javascript"> | 4 | <script type="text/javascript"> |
2773 | @@ -7,42 +6,35 @@ | |||
2774 | 7 | $('form').disableOnSubmit(); | 6 | $('form').disableOnSubmit(); |
2775 | 8 | }); | 7 | }); |
2776 | 9 | </script> | 8 | </script> |
2777 | 10 | |||
2778 | 11 | {{ block.super }} | 9 | {{ block.super }} |
2779 | 12 | {% endblock %} | 10 | {% endblock %} |
2813 | 13 | <form class="post-form" action="{{ form_url }}" method="post" enctype="multipart/form-data"> | 11 | <form class="post-form" action="{{ form_url }}" method="post" enctype="multipart/form-data"> |
2814 | 14 | <div class="preview-box" style="display: none"> | 12 | <div class="preview-box" style="display: none"> |
2815 | 15 | <div class="header"><h3 class="title">{% trans "Preview" %}</h3></div> | 13 | <div class="header"> |
2816 | 16 | <div class="content"></div> | 14 | <h3 class="title">{% trans "Preview" %}</h3> |
2817 | 17 | </div> | 15 | </div> |
2818 | 18 | <h3 class="title">{% if forum %} | 16 | <div class="content"> |
2819 | 19 | {% trans "New topic" %} | 17 | </div> |
2820 | 20 | {% else %} | 18 | </div> |
2821 | 21 | {%if post %} | 19 | <h3 class="title"> |
2822 | 22 | {% trans "Edit reply" %} | 20 | {% if forum %} |
2823 | 23 | {% else %} | 21 | {% trans "New topic" %} |
2824 | 24 | {% trans "New reply" %} | 22 | {% else %} |
2825 | 25 | {% endif %} | 23 | {%if post %} |
2826 | 26 | {% endif %}</h3> | 24 | {% trans "Edit reply" %} |
2827 | 27 | <div class="content"> | 25 | {% else %} |
2828 | 28 | <table width="100%" colspan="1" class="text"> | 26 | {% trans "New reply" %} |
2829 | 29 | <tr> | 27 | {% endif %} |
2830 | 30 | <td width="99%"> | 28 | {% endif %} |
2831 | 31 | {{ form.as_p }} | 29 | </h3> |
2832 | 32 | </td> | 30 | <div class="content"> |
2833 | 33 | <td width="1%"> </td> | 31 | {{ form.as_p }} |
2834 | 34 | </tr> | 32 | </div> |
2835 | 35 | </table> | 33 | <div class="info_line show_left"> |
2836 | 36 | </div> | 34 | <input type="submit" class="button_send" value="" /> |
2837 | 37 | <table class="bottom_line" width="100%"> | 35 | <input class="preview-button button_preview" type="button" value="" /> |
2838 | 38 | <tr> | 36 | </div> |
2839 | 39 | <td> | 37 | </form> |
2807 | 40 | <input type="submit" value="{% trans "Submit" %}" /> | ||
2808 | 41 | <input class="preview-button" type="button" value="{% trans "Preview" %}" /> | ||
2809 | 42 | </td> | ||
2810 | 43 | </tr> | ||
2811 | 44 | </table> | ||
2812 | 45 | </form> | ||
2840 | 46 | <script type="text/javascript"> | 38 | <script type="text/javascript"> |
2841 | 47 | $(function() { | 39 | $(function() { |
2842 | 48 | $('.post-form .preview-button').click(function() { | 40 | $('.post-form .preview-button').click(function() { |
2843 | 49 | 41 | ||
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 | 3 | 3 | ||
2849 | 4 | How to display a Forum list in the index page | 4 | How to display a Forum list in the index page |
2850 | 5 | {% endcomment %} | 5 | {% endcomment %} |
2863 | 6 | 6 | <div class="box_item_model index_category"> | |
2864 | 7 | <div class="index_category"> | 7 | <h3 class="title">{{category.cat}} </h3> |
2865 | 8 | 8 | <table class="full_site" cellspacing="1"> | |
2866 | 9 | <span class="title"> {{category.cat}} </span> | 9 | <tr class="show_center" cellspacing="0"> |
2867 | 10 | 10 | <td width="5%" class="info_line show_left"> </td> | |
2868 | 11 | <table cellspacing="1" width="100%"> | 11 | <td width="57%" nowrap="nowrap" class="info_line show_left">Forum</td> |
2869 | 12 | <tr align="center"> | 12 | <td width="9%" nowrap="nowrap" class="info_line show_left">Topics</td> |
2870 | 13 | <th width="5%"> </th> | 13 | <td width="9%" nowrap="nowrap" class="info_line show_left">Posts</td> |
2871 | 14 | <th width="57%" nowrap="nowrap" align="left">Forum</th> | 14 | <td width="20%" nowrap="nowrap" class="info_line show_left">Last Post</td> |
2860 | 15 | <th width="9%" nowrap="nowrap">Topics</th> | ||
2861 | 16 | <th width="9%" nowrap="nowrap">Posts</th> | ||
2862 | 17 | <th width="20%" nowrap="nowrap">Last Post</th> | ||
2872 | 18 | </tr> | 15 | </tr> |
2873 | 19 | |||
2874 | 20 | {# List all forums #} | 16 | {# List all forums #} |
2875 | 21 | {% for forum in category.forums %} | 17 | {% for forum in category.forums %} |
2876 | 22 | {% include 'pybb/inlines/forum_row.html' %} | 18 | {% include 'pybb/inlines/forum_row.html' %} |
2877 | 23 | {% endfor %} | 19 | {% endfor %} |
2878 | 24 | |||
2879 | 25 | </table> | 20 | </table> |
2880 | 26 | |||
2881 | 27 | </div> | 21 | </div> |
2882 | 28 | 22 | ||
2883 | 29 | 23 | ||
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 | 1 | {% comment %} | 1 | {% comment %} |
2889 | 2 | vim:ft=htmldjango: | 2 | vim:ft=htmldjango: |
2890 | 3 | {% endcomment %} | 3 | {% endcomment %} |
2891 | 4 | |||
2892 | 5 | {% load humanize %} | 4 | {% load humanize %} |
2893 | 6 | {% load pybb_extras %} | 5 | {% load pybb_extras %} |
2894 | 7 | {% load wlprofile %} | 6 | {% load wlprofile %} |
2895 | 8 | {% load custom_date %} | 7 | {% load custom_date %} |
2896 | 9 | |||
2897 | 10 | <tr> | 8 | <tr> |
2898 | 11 | <td class="even" align="center" valign="middle"> | 9 | <td class="even" align="center" valign="middle"> |
2899 | 12 | {% if forum|pybb_has_unreads:user %} | 10 | {% if forum|pybb_has_unreads:user %} |
2900 | 13 | 11 | ||
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 | 8 | {% load wiki %} | 8 | {% load wiki %} |
2906 | 9 | {% load wlprofile %} | 9 | {% load wlprofile %} |
2907 | 10 | {% load custom_date %} | 10 | {% load custom_date %} |
2908 | 11 | |||
2909 | 12 | <a name="post-{{ post.id }}"></a> | 11 | <a name="post-{{ post.id }}"></a> |
2910 | 13 | <table class="{% cycle "odd" "even" %}" width="100%"> | 12 | <table class="{% cycle "odd" "even" %}" width="100%"> |
2911 | 14 | <tr> | 13 | <tr> |
2912 | @@ -17,7 +16,9 @@ | |||
2913 | 17 | <table width="100%" cellpadding="0" cellspacing="0" style="table-layout: fixed; border: 0px;"> | 16 | <table width="100%" cellpadding="0" cellspacing="0" style="table-layout: fixed; border: 0px;"> |
2914 | 18 | <tr> | 17 | <tr> |
2915 | 19 | <td style="text-align: left; border: 0px;"> | 18 | <td style="text-align: left; border: 0px;"> |
2917 | 20 | <a href="{{post.get_absolute_url}}">Permalink</a> | 19 | <a href="{{post.get_absolute_url}}"> |
2918 | 20 | <img src="{{MEDIA_URL}}/forum/img/en/permalink.png" height="25" alt ="{% trans "Permalink" %}" /> | ||
2919 | 21 | </a> | ||
2920 | 21 | </td> | 22 | </td> |
2921 | 22 | <td style="text-align: right; border: 0px;"> | 23 | <td style="text-align: right; border: 0px;"> |
2922 | 23 | <strong>Posted at:</strong> {{ post.created|custom_date:user}} | 24 | <strong>Posted at:</strong> {{ post.created|custom_date:user}} |
2923 | @@ -36,21 +37,40 @@ | |||
2924 | 36 | </a> | 37 | </a> |
2925 | 37 | </div> | 38 | </div> |
2926 | 38 | {% endif %} | 39 | {% endif %} |
2932 | 39 | <strong>Joined:</strong> {{ post.user.date_joined|custom_date:user|title }}<br /> | 40 | <strong>Joined:</strong> {{ post.user.date_joined|custom_date:user|title }}<br /> |
2933 | 40 | <strong>Posts:</strong> {{ post.user.wlprofile.post_count }}<br /> | 41 | <strong>Posts:</strong> {{ post.user.wlprofile.post_count }}<br /> |
2934 | 41 | {% if post.user.wlprofile.location %} | 42 | <img src="{{ MEDIA_URL }}img/{{ post.user.wlprofile.user_status.image }}" alt="Ranking" /> |
2935 | 42 | <strong>Location:</strong> {{ post.user.wlprofile.location }}<br /> | 43 | <br /> |
2936 | 43 | {% endif %} | 44 | <strong>{{ post.user.wlprofile.user_status.text }}</strong><br /> |
2937 | 45 | {% if post.user.wlprofile.location %} | ||
2938 | 46 | <strong>Location:</strong> {{ post.user.wlprofile.location }}<br /> | ||
2939 | 47 | {% endif %} | ||
2940 | 48 | {% if post.user.wlprofile.get_ggzstats and post.user.wlprofile.get_ggzstats.ranking %} | ||
2941 | 49 | <strong>GGZ ranking:</strong> {{ post.user.wlprofile.get_ggzstats.ranking|floatformat }}<br /> | ||
2942 | 50 | <strong>GGZ rating:</strong> {{ post.user.wlprofile.get_ggzstats.rating|floatformat }}<br /> | ||
2943 | 51 | <strong>GGZ win:</strong> {{ post.user.wlprofile.get_ggzstats.wins|floatformat }}<br /> | ||
2944 | 52 | <strong>GGZ loses:</strong> {{ post.user.wlprofile.get_ggzstats.losses|floatformat }}<br /> | ||
2945 | 53 | {% endif %} | ||
2946 | 44 | </div> | 54 | </div> |
2947 | 45 | </td> | 55 | </td> |
2956 | 46 | <td width="85%" class="content"> | 56 | <td width="85%" class="content top"> |
2957 | 47 | {{ post.body_html|safe }} | 57 | {{ post.body_html|safe|linebreaks }} |
2958 | 48 | {% if not user.is_authenticated or user.pybb_profile.show_signatures %} | 58 | {% if user.is_authenticated %} |
2959 | 49 | {% if post.user.pybb_profile.signature %} | 59 | {% ifequal user.wlprofile.show_signatures 1 %} |
2960 | 50 | <div class="signature"> | 60 | {% if post.user.wlprofile.signature %} |
2961 | 51 | {{ post.user.pybb_profile.signature|urlize|linebreaks }} | 61 | <div class="signature"> |
2962 | 52 | </div> | 62 | <span class="line">__________________</span> |
2963 | 53 | {% endif %} | 63 | {{ post.user.wlprofile.signature|urlize|linebreaks }} |
2964 | 64 | </div> | ||
2965 | 65 | {% endif %} | ||
2966 | 66 | {% endifequal %} | ||
2967 | 67 | {% else %} | ||
2968 | 68 | {% if post.user.wlprofile.signature %} | ||
2969 | 69 | <div class="signature"> | ||
2970 | 70 | <span class="line">__________________</span> | ||
2971 | 71 | {{ post.user.wlprofile.signature|urlize|linebreaks }} | ||
2972 | 72 | </div> | ||
2973 | 73 | {% endif %} | ||
2974 | 54 | {% endif %} | 74 | {% endif %} |
2975 | 55 | {% if post.updated %} | 75 | {% if post.updated %} |
2976 | 56 | <div class="updated-message"><strong>{% trans "Edited" %}:</strong> {{ post.updated|custom_date:user|title}}</div> | 76 | <div class="updated-message"><strong>{% trans "Edited" %}:</strong> {{ post.updated|custom_date:user|title}}</div> |
2977 | @@ -65,7 +85,9 @@ | |||
2978 | 65 | </tr> | 85 | </tr> |
2979 | 66 | <tr> | 86 | <tr> |
2980 | 67 | <td class="toplink"> | 87 | <td class="toplink"> |
2982 | 68 | <a href="#top">Top</a> | 88 | <a href="#top"> |
2983 | 89 | <img src="{{MEDIA_URL}}/forum/img/en/top.png" height="25" alt ="{% trans "Top" %}" /> | ||
2984 | 90 | </a> | ||
2985 | 69 | </td> | 91 | </td> |
2986 | 70 | 92 | ||
2987 | 71 | <td> | 93 | <td> |
2988 | @@ -73,78 +95,28 @@ | |||
2989 | 73 | {% if user.is_authenticated %} | 95 | {% if user.is_authenticated %} |
2990 | 74 | {% ifnotequal user post.user %} | 96 | {% ifnotequal user post.user %} |
2991 | 75 | <a href="{% url messages_compose_to post.user %}"> | 97 | <a href="{% url messages_compose_to post.user %}"> |
2993 | 76 | Send PM | 98 | <img src="{{MEDIA_URL}}/forum/img/en/send_pm.png" height="25" alt ="{% trans "Send PM" %}" /> |
2994 | 77 | </a> | 99 | </a> |
2995 | 78 | {% endifnotequal %} | 100 | {% endifnotequal %} |
2996 | 79 | {% endif %} | 101 | {% endif %} |
2997 | 80 | {% if moderator or post|pybb_posted_by:user %} | 102 | {% if moderator or post|pybb_posted_by:user %} |
2998 | 81 | <a href="{% url pybb_edit_post post.id %}"> | 103 | <a href="{% url pybb_edit_post post.id %}"> |
3000 | 82 | <img src="{{MEDIA_URL}}/forum/img/en/p_edit.png" height="26" alt ="{% trans "Edit" %}" /> | 104 | <img src="{{MEDIA_URL}}/forum/img/en/edit.png" height="25" alt ="{% trans "Edit" %}" /> |
3001 | 83 | </a> | 105 | </a> |
3002 | 84 | {% endif %} | 106 | {% endif %} |
3003 | 85 | {% if moderator or post|pybb_equal_to:last_post %} | 107 | {% if moderator or post|pybb_equal_to:last_post %} |
3004 | 86 | {% if moderator or post.user|pybb_equal_to:user %} | 108 | {% if moderator or post.user|pybb_equal_to:user %} |
3005 | 87 | <a href="{% url pybb_delete_post post.id %}"> | 109 | <a href="{% url pybb_delete_post post.id %}"> |
3007 | 88 | <img src="{{MEDIA_URL}}/forum/img/en/p_delete.png" height="26" alt ="{% trans "Delete" %}" /> | 110 | <img src="{{MEDIA_URL}}/forum/img/en/delete.png" height="25" alt ="{% trans "Delete" %}" /> |
3008 | 89 | </a> | 111 | </a> |
3009 | 90 | {% endif %} | 112 | {% endif %} |
3010 | 91 | {% endif %} | ||
3011 | 92 | </div> | 113 | </div> |
3012 | 93 | <div class="tools" style="float: right;"> | 114 | <div class="tools" style="float: right;"> |
3013 | 94 | <a href="{% url pybb_add_post topic.id %}?quote_id={{ post.id }}"> | 115 | <a href="{% url pybb_add_post topic.id %}?quote_id={{ post.id }}"> |
3015 | 95 | <img src="{{MEDIA_URL}}/forum/img/en/p_quote.png" height="26" alt ="{% trans "Quote" %}" /> | 116 | <img src="{{MEDIA_URL}}/forum/img/en/quote.png" height="25" alt ="{% trans "Quote" %}" /> |
3016 | 96 | </a> | 117 | </a> |
3017 | 118 | {% endif %} | ||
3018 | 97 | </div> | 119 | </div> |
3019 | 98 | </td> | 120 | </td> |
3020 | 99 | </tr> | 121 | </tr> |
3021 | 100 | </table> | 122 | </table> |
3022 | 101 | |||
3023 | 102 | {% comment %} | ||
3024 | 103 | {% if post.user.pybb_profile.avatar %} | ||
3025 | 104 | <div class="avatar"> | ||
3026 | 105 | <a href="{% url pybb_profile post.user %}"> | ||
3027 | 106 | <img src="{{ post.user.pybb_profile.avatar.url }}" /> | ||
3028 | 107 | </a> | ||
3029 | 108 | </div> | ||
3030 | 109 | {% endif %} | ||
3031 | 110 | <div class="bottom"> | ||
3032 | 111 | <a class="permalink" href="{{ post.get_absolute_url }}">#</a> | ||
3033 | 112 | <span class="updated">{% pybb_time post.created %}</span> | ||
3034 | 113 | </div> | ||
3035 | 114 | {% if user.is_authenticated %} | ||
3036 | 115 | <div class="pm-link"> | ||
3037 | 116 | <a href="{% url pybb_create_pm %}?recipient={{ post.user.username }}">{% trans "Send PM" %}</a> | ||
3038 | 117 | </div> | ||
3039 | 118 | {% endif %} | ||
3040 | 119 | </div> | ||
3041 | 120 | </td> | ||
3042 | 121 | <td class="content" width="85%"> | ||
3043 | 122 | {{ post.body_html|safe }} | ||
3044 | 123 | {% if not user.is_authenticated or user.pybb_profile.show_signatures %} | ||
3045 | 124 | {% if post.user.pybb_profile.signature %} | ||
3046 | 125 | <div class="signature"> | ||
3047 | 126 | {{ post.user.pybb_profile.signature|urlize|linebreaks }} | ||
3048 | 127 | </div> | ||
3049 | 128 | {% endif %} | ||
3050 | 129 | {% endif %} | ||
3051 | 130 | {% if post.updated %} | ||
3052 | 131 | <div class="updated-message">{% trans "Edited" %} {% pybb_time post.updated %}</div> | ||
3053 | 132 | {% endif %} | ||
3054 | 133 | |||
3055 | 134 | {% if post.attachment_cache %} | ||
3056 | 135 | {% for attach in post.attachment_cache %} | ||
3057 | 136 | {% trans "Attachment" %}: <a href="{{ attach.get_absolute_url }}">{{ attach.name }}</a> ({{ attach.size_display }}) | ||
3058 | 137 | {% endfor %} | ||
3059 | 138 | {% endif %} | ||
3060 | 139 | |||
3061 | 140 | <div class="post-related"> | ||
3062 | 141 | <a href="{% url pybb_add_post topic.id %}?quote_id={{ post.id }}">{% trans "quote" %}</a> | ||
3063 | 142 | </div> | ||
3064 | 143 | |||
3065 | 144 | </td> | ||
3066 | 145 | </tr> | ||
3067 | 146 | </table> | ||
3068 | 147 | <!--<div style="clear: both"></div>--> | ||
3069 | 148 | </div> | ||
3070 | 149 | </div> | ||
3071 | 150 | {% endcomment%} | ||
3072 | 151 | 123 | ||
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 | 1 | {% comment %} | 1 | {% comment %} |
3078 | 2 | vim:ft=htmldjango: | 2 | vim:ft=htmldjango: |
3079 | 3 | {% endcomment %} | 3 | {% endcomment %} |
3080 | 4 | |||
3081 | 5 | {% load humanize %} | 4 | {% load humanize %} |
3082 | 6 | {% load pybb_extras %} | 5 | {% load pybb_extras %} |
3083 | 7 | {% load wlprofile %} | 6 | {% load wlprofile %} |
3084 | 8 | {% load custom_date %} | 7 | {% load custom_date %} |
3085 | 9 | |||
3086 | 10 | <tr class="topic_description {% cycle "odd" "even" %}"> | 8 | <tr class="topic_description {% cycle "odd" "even" %}"> |
3087 | 11 | <td align="center" valign="middle"> | 9 | <td align="center" valign="middle"> |
3088 | 12 | {% if topic|pybb_has_unreads:user %} | 10 | {% if topic|pybb_has_unreads:user %} |
3089 | @@ -16,7 +14,17 @@ | |||
3090 | 16 | {% endif %} | 14 | {% endif %} |
3091 | 17 | </td> | 15 | </td> |
3092 | 18 | <td id="name"> | 16 | <td id="name"> |
3094 | 19 | <span class="name"><a href="{{ topic.get_absolute_url }}">{{ topic.name }}</a></span> | 17 | <span class="name"> |
3095 | 18 | <a href="{{ topic.get_absolute_url }}"> | ||
3096 | 19 | {% comment %} | ||
3097 | 20 | oehm ja, geht nicht weil ka muss ich guggn, die frage ist. soll es fuer alle gelten oder nur fuer eine topic | ||
3098 | 21 | {% endcomment %} | ||
3099 | 22 | {% if subscribed %}<img src="{{MEDIA_URL}}/forum/img/en/subscribe_small.png" height="20" alt="subscribe" style="float:left" />{% endif %} | ||
3100 | 23 | {% if topic.sticky %}<img src="{{MEDIA_URL}}/forum/img/en/stick_topic_small.png" height="20" alt ="Sticky" style="float:left;" /> {% endif %} | ||
3101 | 24 | {% if topic.closed %}<img src="{{MEDIA_URL}}/forum/img/en/close_small.png" height="20" alt ="Closed" style="float:left; " /> {% endif %} | ||
3102 | 25 | {{ topic.name }} | ||
3103 | 26 | </a> | ||
3104 | 27 | </span> | ||
3105 | 20 | </td> | 28 | </td> |
3106 | 21 | <td><span class="creator">{{ topic.user|user_link }}</span></td> | 29 | <td><span class="creator">{{ topic.user|user_link }}</span></td> |
3107 | 22 | <td><span class="at">{{ topic.created|custom_date:user }}</span></td> | 30 | <td><span class="at">{{ topic.created|custom_date:user }}</span></td> |
3108 | 23 | 31 | ||
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 | 1 | {% load i18n %} | ||
3114 | 2 | {% load wlprofile %} | ||
3115 | 3 | {% load custom_date %} | ||
3116 | 4 | {% load pybb_extras %} | ||
3117 | 5 | |||
3118 | 6 | <div> | ||
3119 | 7 | <br /> | ||
3120 | 8 | {% for post in posts %} | ||
3121 | 9 | <table> | ||
3122 | 10 | <tr> | ||
3123 | 11 | <td> | ||
3124 | 12 | <a href="{{ post.get_absolute_url }}" title="{{ post.topic.name }}">{{ post.topic.name|pybb_cut_string:21 }}</a> @<br /> | ||
3125 | 13 | <a href="{{ post.topic.get_absolute_url}}" title="{{ post.topic.forum.name }}">{{ post.topic.forum.name|pybb_cut_string:23 }}</a><br /> | ||
3126 | 14 | by {{ post.user|user_link }} at {{ post.created|custom_date:user }} | ||
3127 | 15 | <br /> | ||
3128 | 16 | <br /> | ||
3129 | 17 | </td> | ||
3130 | 18 | </tr> | ||
3131 | 19 | </table> | ||
3132 | 20 | {% endfor %} | ||
3133 | 21 | <div> | ||
3134 | 0 | 22 | ||
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 | 1 | {% load i18n %} | 1 | {% load i18n %} |
3142 | 2 | <div class="pagination"> | 2 | <div class="pagination" style="float:left"> |
3143 | 3 | 3 | <span class="summary">{{ label }} <strong>{{ page.start_index }}</strong>—<strong>{{ page.end_index }}</strong> {% trans "of" %} <strong>{{ paginator.count }}</strong> {{ label }} </span> | |
3144 | 4 | {% if page.has_previous %} | 4 | {% if page.has_previous %} |
3146 | 5 | <a href="{{ page.previous_link }}"><{% trans "Back" %}</a> | 5 | {% ifequal page.previous_page_number 1 %} |
3147 | 6 | <a href="?page={{ page.previous_page_number }}" class="prev">‹‹ </a> | ||
3148 | 7 | {% else %} | ||
3149 | 8 | <a href="?page=1" class="prev">‹‹‹‹ </a> | ||
3150 | 9 | <a href="?page={{ page.previous_page_number }}" class="prev">‹‹ </a> | ||
3151 | 10 | {% endifequal %} | ||
3152 | 11 | {% else %} | ||
3153 | 12 | {% ifnotequal paginator.num_pages 1 %} | ||
3154 | 13 | <span class="disabled prev">‹‹ </span> | ||
3155 | 14 | {% endifnotequal %} | ||
3156 | 6 | {% endif %} | 15 | {% endif %} |
3165 | 7 | 16 | {% for pages in paginator.page_range %} | |
3166 | 8 | <span class="summary">{{ label }} <strong>{{ page.start_index }}</strong>—<strong>{{ page.end_index }}</strong> {% trans "of" %} <strong>{{ paginator.count }}</strong> {{ label }} | 17 | {% if pages %} |
3167 | 9 | {% if page.has_other_pages %} | 18 | {% ifequal paginator.num_pages 1 %} |
3168 | 10 | {% trans "in" %} <strong>{{ paginator.num_pages }}</strong> | 19 | ... |
3169 | 11 | {% trans "pages" %} | 20 | {% else %} |
3170 | 12 | {% endif %} | 21 | {% ifequal pages page.number %} |
3171 | 13 | </span> | 22 | <span class="current page">| {{ page.number }} |</span> |
3172 | 14 | 23 | {% else %} | |
3173 | 24 | <a href="?page={{ pages }}" class="page">{{ pages }}</a> | ||
3174 | 25 | {% endifequal %} | ||
3175 | 26 | {% endifequal %} | ||
3176 | 27 | {% endif %} | ||
3177 | 28 | {% endfor %} | ||
3178 | 15 | {% if page.has_next %} | 29 | {% if page.has_next %} |
3180 | 16 | <a href="{{ page.next_link }}">{% trans "Forward" %}></a> | 30 | {% ifequal page.next_page_number paginator.num_pages %} |
3181 | 31 | <a href="?page={{ page.next_page_number }}" class="next"> ››</a> | ||
3182 | 32 | {% else %} | ||
3183 | 33 | <a href="?page={{ page.next_page_number }}" class="next"> ››</a> | ||
3184 | 34 | <a href="?page={{ paginator.num_pages }}" class="next"> ››››</a> | ||
3185 | 35 | {% endifequal %} | ||
3186 | 36 | {% else %} | ||
3187 | 37 | {% ifnotequal paginator.num_pages 1 %} | ||
3188 | 38 | <span class="disabled next"> ››</span> | ||
3189 | 39 | {% endifnotequal %} | ||
3190 | 17 | {% endif %} | 40 | {% endif %} |
3191 | 18 | |||
3192 | 19 | |||
3193 | 20 | </div> | 41 | </div> |
3194 | 21 | 42 | ||
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 | 13 | {% endblock %} | 13 | {% endblock %} |
3200 | 14 | 14 | ||
3201 | 15 | {% block content %} | 15 | {% block content %} |
3232 | 16 | 16 | {% include "django_messages/inlines/navigation.html" %} | |
3233 | 17 | {% pybb_pagination _('Posts') %} | 17 | <br /> |
3234 | 18 | 18 | <br /> | |
3235 | 19 | <div class="posts"> | 19 | <div class="box_item_model"> |
3236 | 20 | <a name="top" id="top"></a> | 20 | <span class="title"><a href="/forum/">Forum</a> ⇒ <a href="{{ topic.forum.get_absolute_url }}">{{ topic.forum.name }}</a> ⇒ {{ topic }}</span> |
3237 | 21 | <table cellspacing="1" width="100%"> | 21 | <br /> |
3238 | 22 | <tr align="center"> | 22 | {% pybb_pagination _('Posts') %} |
3239 | 23 | <th>Author</th> | 23 | <div class="posts" style="clear:left"> |
3240 | 24 | <th width="85%" nowrap="nowrap">Message</th> | 24 | <a name="top" id="top"></a> |
3241 | 25 | </tr> | 25 | <table cellspacing="1" width="100%"> |
3242 | 26 | </table> | 26 | <tr align="center"> |
3243 | 27 | 27 | <th>Author</th> | |
3244 | 28 | {% if first_post %} | 28 | <th width="85%" nowrap="nowrap">Message</th> |
3245 | 29 | {% ifnotequal first_post posts.0 %} | 29 | </tr> |
3246 | 30 | {% with first_post as post %} | 30 | </table> |
3247 | 31 | <div class="post first_post"> | 31 | |
3248 | 32 | {% include "pybb/inlines/post.html" %} | 32 | {% if first_post %} |
3249 | 33 | </div> | 33 | {% ifnotequal first_post posts.0 %} |
3250 | 34 | {% endwith %} | 34 | {% with first_post as post %} |
3251 | 35 | {% endifnotequal %} | 35 | <div class="post first_post"> |
3252 | 36 | {% endif %} | 36 | {% include "pybb/inlines/post.html" %} |
3253 | 37 | {% for post in posts %} | 37 | </div> |
3254 | 38 | <div class="post"> | 38 | {% endwith %} |
3255 | 39 | {% include "pybb/inlines/post.html" %} | 39 | {% endifnotequal %} |
3256 | 40 | </div> | 40 | {% endif %} |
3257 | 41 | {% endfor %} | 41 | {% for post in posts %} |
3258 | 42 | </div> | 42 | <div class="post"> |
3259 | 43 | 43 | {% include "pybb/inlines/post.html" %} | |
3260 | 44 | {% pybb_pagination _('Posts') %} | 44 | </div> |
3261 | 45 | <div class="controls"> | 45 | {% endfor %} |
3262 | 46 | </div> | ||
3263 | 47 | {% pybb_pagination _('Posts') %} | ||
3264 | 48 | <br /> | ||
3265 | 49 | <div class="controls"> | ||
3266 | 50 | <br /> | ||
3267 | 46 | {% if moderator %} | 51 | {% if moderator %} |
3283 | 47 | {% if topic.sticky %} | 52 | {% if topic.sticky %} |
3284 | 48 | <a href="{% url pybb_unstick_topic topic.id %}">{% trans "Unstick topic" %}</a> | 53 | <a href="{% url pybb_unstick_topic topic.id %}"> |
3285 | 49 | {% else %} | 54 | <img src="{{MEDIA_URL}}/forum/img/en/unstick_topic.png" height="25" alr="{% trans "Unstick topic" %}" /> |
3286 | 50 | <a href="{% url pybb_stick_topic topic.id %}">{% trans "Stick topic" %}</a> | 55 | </a> |
3287 | 51 | {% endif %} | 56 | {% else %} |
3288 | 52 | | | 57 | <a href="{% url pybb_stick_topic topic.id %}"> |
3289 | 53 | {% if topic.closed %} | 58 | <img src="{{MEDIA_URL}}/forum/img/en/stick_topic.png" height="25" alt ="{% trans "Stick Topic" %}" /> |
3290 | 54 | <a href="{% url pybb_open_topic topic.id %}">{% trans "Open topic" %}</a> | 59 | </a> |
3291 | 55 | {% else %} | 60 | {% endif %} |
3292 | 56 | <a href="{% url pybb_close_topic topic.id %}">{% trans "Close topic" %}</a> | 61 | {% if topic.closed %} |
3293 | 57 | {% endif %} | 62 | <a href="{% url pybb_open_topic topic.id %}"> |
3294 | 58 | | | 63 | <img src="{{MEDIA_URL}}/forum/img/en/open_topic.png" height="25" alt="{% trans "Open topic" %}" /> |
3295 | 59 | {% endif %} | 64 | </a> |
3296 | 60 | {% comment %} | 65 | {% else %} |
3297 | 61 | TODO: subscribe | 66 | <a href="{% url pybb_close_topic topic.id %}"> |
3298 | 67 | <img src="{{MEDIA_URL}}/forum/img/en/close_topic.png" height="25" alt ="{% trans "Close Topic" %}" /> | ||
3299 | 68 | </a> | ||
3300 | 69 | {% endif %} | ||
3301 | 70 | {% endif %} | ||
3302 | 71 | |||
3303 | 72 | |||
3304 | 62 | {% if user.is_authenticated %} | 73 | {% if user.is_authenticated %} |
3312 | 63 | {% if subscribed %} | 74 | {% if subscribed %} |
3313 | 64 | <a href="{% url pybb_delete_subscription topic.id %}?from_topic">{% trans "Unsubscribe" %}</a> | 75 | <a href="{% url pybb_delete_subscription topic.id %}?from_topic"> |
3314 | 65 | {% else %} | 76 | <img src="{{MEDIA_URL}}/forum/img/en/unsubscribe.png" height="25" alt ="{% trans "Unsubscribe" %}" /> |
3315 | 66 | <a href="{% url pybb_add_subscription topic.id %}">{% trans "Subscribe" %}</a> | 77 | </a> |
3316 | 67 | {% endif %} | 78 | {% else %} |
3317 | 68 | {% endif %} | 79 | <a href="{% url pybb_add_subscription topic.id %}"> |
3318 | 69 | {% endcomment %} | 80 | <img src="{{MEDIA_URL}}/forum/img/en/subscribe.png" height="25" alt="{% trans "Subscribe" %}" /></a> |
3319 | 81 | {% endif %} | ||
3320 | 82 | {% endif %} | ||
3321 | 83 | |||
3322 | 84 | </div> | ||
3323 | 70 | </div> | 85 | </div> |
3324 | 71 | |||
3325 | 72 | {% if user.is_authenticated %} | 86 | {% if user.is_authenticated %} |
3331 | 73 | {% if not topic.closed %} | 87 | {% if not topic.closed %} |
3332 | 74 | <br /> | 88 | <br /> |
3333 | 75 | <br /> | 89 | <br /> |
3334 | 76 | <div class="forum_item"> | 90 | <div class="box_item_model border"> |
3335 | 77 | {% include "pybb/inlines/add_post_form.html" %} | 91 | {% include "pybb/inlines/add_post_form.html" %} |
3336 | 78 | </div> | 92 | </div> |
3338 | 79 | {% endif %} | 93 | {% endif %} |
3339 | 80 | {% endif %} | 94 | {% endif %} |
3340 | 81 | 95 | ||
3341 | 82 | {% endblock %} | 96 | {% endblock %} |
3342 | 83 | 97 | ||
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 | 1 | {% extends "base.html" %} | ||
3348 | 2 | {% comment %} | ||
3349 | 3 | vim:ft=htmldjango | ||
3350 | 4 | {% endcomment %} | ||
3351 | 5 | |||
3352 | 6 | {% block extra_head %} | ||
3353 | 7 | <link rel="stylesheet" type="text/css" media="all" href="{{ MEDIA_URL }}/css/register.css" />{{ block.super}} | ||
3354 | 8 | {% endblock %} | ||
3355 | 0 | 9 | ||
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 | 1 | {% extends "registration/base.html" %} | ||
3361 | 1 | 2 | ||
3363 | 2 | {% extends "base.html" %} | 3 | {% block title %} |
3364 | 4 | {{ block.super }} - Login | ||
3365 | 5 | {% endblock %} | ||
3366 | 3 | 6 | ||
3367 | 4 | {% block content %} | 7 | {% block content %} |
3369 | 5 | 8 | {% include "django_messages/inlines/navigation.html" %} | |
3370 | 9 | <br /> | ||
3371 | 10 | <br /> | ||
3372 | 11 | <div class="box_item_model fixed_site border"> | ||
3373 | 12 | <h3 class="title">Login</h3> | ||
3374 | 6 | {% if form.errors %} | 13 | {% if form.errors %} |
3376 | 7 | <p>Your username and password didn't match. Please try again.</p> | 14 | <div class="info_line show_center errormessage"> |
3377 | 15 | <br /> | ||
3378 | 16 | Your username and password didn't match. | ||
3379 | 17 | <br /> | ||
3380 | 18 | Please try again. | ||
3381 | 19 | <br /> | ||
3382 | 20 | <br /> | ||
3383 | 21 | </div> | ||
3384 | 8 | {% endif %} | 22 | {% endif %} |
3402 | 9 | 23 | <div class="info_line show_center"> | |
3403 | 10 | <form method="post" action="."> | 24 | <br /> |
3404 | 11 | <table> | 25 | <form method="post" action="."> |
3405 | 12 | <tr> | 26 | <table> |
3406 | 13 | <td>{{ form.username.label_tag }}</td> | 27 | <tr> |
3407 | 14 | <td>{{ form.username }}</td> | 28 | <td> |
3408 | 15 | </tr> | 29 | {{ form.username.label_tag }}: |
3409 | 16 | <tr> | 30 | </td> |
3410 | 17 | <td>{{ form.password.label_tag }}</td> | 31 | <td> |
3411 | 18 | <td>{{ form.password }}</td> | 32 | {{ form.username }} |
3412 | 19 | </tr> | 33 | </td> |
3413 | 20 | </table> | 34 | </tr> |
3414 | 21 | 35 | <tr> | |
3415 | 22 | <input type="submit" value="login" /> | 36 | <td> |
3416 | 23 | <input type="hidden" name="next" value="{{ next }}" /> | 37 | {{ form.password.label_tag }}: |
3417 | 24 | </form> | 38 | </td> |
3418 | 25 | 39 | <td> | |
3419 | 40 | {{ form.password }} | ||
3420 | 41 | </td> | ||
3421 | 42 | </tr> | ||
3422 | 43 | <tr> | ||
3423 | 44 | <td></td> | ||
3424 | 45 | <td class="show_right"> | ||
3425 | 46 | <input type="submit" value="login" /> | ||
3426 | 47 | <input type="hidden" name="next" value="{{ next }}" /> | ||
3427 | 48 | </td> | ||
3428 | 49 | </tr> | ||
3429 | 50 | </table> | ||
3430 | 51 | </form> | ||
3431 | 52 | <br /> | ||
3432 | 53 | </div> | ||
3433 | 54 | </div> | ||
3434 | 26 | {% endblock %} | 55 | {% endblock %} |
3435 | 27 | 56 | ||
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 @@ | |||
3441 | 1 | {% extends "base.html" %} | 1 | {% extends "registration/base.html" %} |
3442 | 2 | {% comment %} | ||
3443 | 3 | vim:ft=htmldjango: | ||
3444 | 4 | {% endcomment %} | ||
3445 | 5 | |||
3446 | 6 | {% block title %} | ||
3447 | 7 | {{ block.super }} - Change Password | ||
3448 | 8 | {% endblock %} | ||
3449 | 9 | |||
3450 | 2 | {% load i18n %} | 10 | {% load i18n %} |
3451 | 3 | 11 | ||
3452 | 4 | {% block title %}{% trans 'Password change successful' %} - {{ block.super }}{% endblock %} | ||
3453 | 5 | |||
3454 | 6 | {% block content %} | 12 | {% block content %} |
3460 | 7 | 13 | {% include "django_messages/inlines/navigation.html" %} | |
3461 | 8 | <h1>{% trans 'Password change successful' %}</h1> | 14 | |
3462 | 9 | 15 | <br /> | |
3463 | 10 | <p>{% trans 'Your password was changed.' %}</p> | 16 | <br /> |
3464 | 11 | 17 | <div class="box_item_model fixed_site border"> | |
3465 | 18 | <h3 class="title">Password change successful </h3> | ||
3466 | 19 | <div class="info_line"> | ||
3467 | 20 | <br /> | ||
3468 | 21 | <div class="show_center errormessage"> | ||
3469 | 22 | Your password was changed. | ||
3470 | 23 | </div> | ||
3471 | 24 | <br /> | ||
3472 | 25 | </div> | ||
3473 | 26 | </div> | ||
3474 | 12 | {% endblock %} | 27 | {% endblock %} |
3475 | 13 | 28 | ||
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 @@ | |||
3481 | 1 | {% extends "base.html" %} | 1 | {% extends "registration/base.html" %} |
3482 | 2 | {% comment %} | ||
3483 | 3 | vim:ft=htmldjango: | ||
3484 | 4 | {% endcomment %} | ||
3485 | 5 | |||
3486 | 6 | {% block title %} | ||
3487 | 7 | {{ block.super }} - Change Password | ||
3488 | 8 | {% endblock %} | ||
3489 | 9 | |||
3490 | 2 | {% load i18n %} | 10 | {% load i18n %} |
3491 | 3 | 11 | ||
3492 | 4 | {% block title %}{% trans 'Password change' %} - {{block.super}}{% endblock %} | ||
3493 | 5 | |||
3494 | 6 | {% block content %} | 12 | {% block content %} |
3512 | 7 | 13 | {% include "django_messages/inlines/navigation.html" %} | |
3513 | 8 | <h1>{% trans 'Password change' %}</h1> | 14 | |
3514 | 9 | 15 | <br /> | |
3515 | 10 | <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> | 16 | <br /> |
3516 | 11 | 17 | <div class="box_item_model fixed_site border"> | |
3517 | 12 | <form action="" method="post"> | 18 | <h3 class="title">Password change</h3> |
3518 | 13 | 19 | <div class="info_line"> | |
3519 | 14 | {{ form.old_password.errors }} | 20 | <br /> |
3520 | 15 | <p class="aligned wide"><label for="id_old_password">{% trans 'Old password:' %}</label>{{ form.old_password }}</p> | 21 | <div class="show_center errormessage"> |
3521 | 16 | {{ form.new_password1.errors }} | 22 | Please enter your old password, |
3522 | 17 | <p class="aligned wide"><label for="id_new_password1">{% trans 'New password:' %}</label>{{ form.new_password1 }}</p> | 23 | <br /> |
3523 | 18 | {{ form.new_password2.errors }} | 24 | for security's sake, and then enter your new password twice so we can verify you typed it in correctly. |
3524 | 19 | <p class="aligned wide"><label for="id_new_password2">{% trans 'Confirm password:' %}</label>{{ form.new_password2 }}</p> | 25 | </div> |
3525 | 20 | 26 | <div > | |
3526 | 21 | <p><input type="submit" value="{% trans 'Change my password' %}" /></p> | 27 | <br /> |
3527 | 22 | </form> | 28 | <form action="" method="post"> |
3528 | 23 | 29 | <table> | |
3529 | 30 | <tr> | ||
3530 | 31 | <td class="show_right" width="120"> | ||
3531 | 32 | <label for="id_old_password">{% trans 'Old password:' %}</label> | ||
3532 | 33 | </td> | ||
3533 | 34 | <td> | ||
3534 | 35 | {{ form.old_password }} | ||
3535 | 36 | <span class="errormessage">{{ form.old_password.errors }}</span> | ||
3536 | 37 | </td> | ||
3537 | 38 | </tr> | ||
3538 | 39 | <tr> | ||
3539 | 40 | <td class="show_right"> | ||
3540 | 41 | <label for="id_new_password1">{% trans 'New password:' %}</label> | ||
3541 | 42 | </td> | ||
3542 | 43 | <td> | ||
3543 | 44 | {{ form.new_password1 }} | ||
3544 | 45 | <span class="errormessage">{{ form.new_password1.errors }}</span> | ||
3545 | 46 | </td> | ||
3546 | 47 | </tr> | ||
3547 | 48 | <tr> | ||
3548 | 49 | <td class="show_right"> | ||
3549 | 50 | <label for="id_new_password2">{% trans 'Confirm password:' %}</label> | ||
3550 | 51 | </td> | ||
3551 | 52 | <td> | ||
3552 | 53 | {{ form.new_password2 }} | ||
3553 | 54 | <span class="errormessage">{{ form.new_password2.errors }}</span> | ||
3554 | 55 | </td> | ||
3555 | 56 | </tr> | ||
3556 | 57 | <tr> | ||
3557 | 58 | <td> </td> | ||
3558 | 59 | <td> | ||
3559 | 60 | <input type="submit" value="{% trans 'Change my password' %}" /> | ||
3560 | 61 | </td> | ||
3561 | 62 | </tr> | ||
3562 | 63 | </table> | ||
3563 | 64 | </form> | ||
3564 | 65 | <br /> | ||
3565 | 66 | </div> | ||
3566 | 67 | </div> | ||
3567 | 68 | </div> | ||
3568 | 24 | {% endblock %} | 69 | {% endblock %} |
3569 | 25 | 70 | ||
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 @@ | |||
3575 | 1 | {% extends "base.html" %} | 1 | {% extends "registration/base.html" %} |
3576 | 2 | {% comment %} | ||
3577 | 3 | vim:ft=htmldjango: | ||
3578 | 4 | {% endcomment %} | ||
3579 | 5 | |||
3580 | 6 | {% block title %} | ||
3581 | 7 | {{ block.super }} - Change Password | ||
3582 | 8 | {% endblock %} | ||
3583 | 9 | |||
3584 | 2 | {% load i18n %} | 10 | {% load i18n %} |
3585 | 3 | 11 | ||
3586 | 4 | {% block title %}{% trans 'Password reset complete' %}{% endblock %} | ||
3587 | 5 | |||
3588 | 6 | {% block content %} | 12 | {% block content %} |
3594 | 7 | 13 | {% include "django_messages/inlines/navigation.html" %} | |
3595 | 8 | <h1>{% trans 'Password reset complete' %}</h1> | 14 | |
3596 | 9 | 15 | <br /> | |
3597 | 10 | <p>{% trans "Your password has been set. You may go ahead and log in now." %}</p> | 16 | <br /> |
3598 | 11 | 17 | <div class="box_item_model fixed_site border"> | |
3599 | 18 | <h3 class="title">Password reset complete</h3> | ||
3600 | 19 | <div class="info_line"> | ||
3601 | 20 | <br /> | ||
3602 | 21 | <div> | ||
3603 | 22 | Your password has been set. You may go ahead and log in now. | ||
3604 | 23 | </div> | ||
3605 | 24 | <br /> | ||
3606 | 25 | </div> | ||
3607 | 26 | </div> | ||
3608 | 12 | {% endblock %} | 27 | {% endblock %} |
3609 | 13 | 28 | ||
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 | 1 | {% extends "base.html" %} | 1 | {% extends "base.html" %} |
3615 | 2 | {% extends "registration/base.html" %} | ||
3616 | 3 | {% comment %} | ||
3617 | 4 | vim:ft=htmldjango: | ||
3618 | 5 | {% endcomment %} | ||
3619 | 6 | |||
3620 | 7 | {% block title %} | ||
3621 | 8 | {{ block.super }} - Reset Password | ||
3622 | 9 | {% endblock %} | ||
3623 | 10 | |||
3624 | 2 | {% load i18n %} | 11 | {% load i18n %} |
3625 | 3 | 12 | ||
3626 | 4 | {% block title %}{% trans 'Password reset' %}{% endblock %} | ||
3627 | 5 | |||
3628 | 6 | {% block content %} | 13 | {% block content %} |
3629 | 14 | {% include "django_messages/inlines/navigation.html" %} | ||
3630 | 7 | 15 | ||
3631 | 16 | <br /> | ||
3632 | 17 | <br /> | ||
3633 | 18 | <div class="box_item_model fixed_site border"> | ||
3634 | 19 | <h3 class="title">Password reset</h3> | ||
3635 | 20 | <div class="info_line"> | ||
3636 | 21 | <br /> | ||
3637 | 8 | {% if validlink %} | 22 | {% if validlink %} |
3651 | 9 | 23 | <div class="show_center errormessage"> | |
3652 | 10 | <h1>{% trans 'Enter new password' %}</h1> | 24 | Please enter your new password twice so we can verify you typed it in correctly. |
3653 | 11 | 25 | </div> | |
3654 | 12 | <p>{% trans "Please enter your new password twice so we can verify you typed it in correctly." %}</p> | 26 | <div> |
3655 | 13 | 27 | <br /> | |
3656 | 14 | <form action="" method="post"> | 28 | <form action="" method="post"> |
3657 | 15 | {{ form.new_password1.errors }} | 29 | {{ form.new_password1.errors }} |
3658 | 16 | <p class="aligned wide"><label for="id_new_password1">{% trans 'New password:' %}</label>{{ form.new_password1 }}</p> | 30 | <p class="aligned wide"><label for="id_new_password1">{% trans 'New password:' %}</label>{{ form.new_password1 }}</p> |
3659 | 17 | {{ form.new_password2.errors }} | 31 | {{ form.new_password2.errors }} |
3660 | 18 | <p class="aligned wide"><label for="id_new_password2">{% trans 'Confirm password:' %}</label>{{ form.new_password2 }}</p> | 32 | <p class="aligned wide"><label for="id_new_password2">{% trans 'Confirm password:' %}</label>{{ form.new_password2 }}</p> |
3661 | 19 | <p><input type="submit" value="{% trans 'Change my password' %}" /></p> | 33 | <p><input type="submit" value="{% trans 'Change my password' %}" /></p> |
3662 | 20 | </form> | 34 | </form> |
3663 | 21 | 35 | <br /> | |
3664 | 36 | </div> | ||
3665 | 22 | {% else %} | 37 | {% else %} |
3671 | 23 | 38 | <div class="show_center errormessage"> | |
3672 | 24 | <h1>{% trans 'Password reset unsuccessful' %}</h1> | 39 | The password reset link was invalid, possibly because it has already been used. Please request a new password reset. |
3673 | 25 | 40 | </div> | |
3669 | 26 | <p>{% trans "The password reset link was invalid, possibly because it has already been used. Please request a new password reset." %}</p> | ||
3670 | 27 | |||
3674 | 28 | {% endif %} | 41 | {% endif %} |
3676 | 29 | 42 | </div> | |
3677 | 43 | </div> | ||
3678 | 30 | {% endblock %} | 44 | {% endblock %} |
3679 | 31 | 45 | ||
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 @@ | |||
3685 | 1 | {% extends "base.html" %} | 1 | {% extends "registration/base.html" %} |
3686 | 2 | {% comment %} | ||
3687 | 3 | vim:ft=htmldjango: | ||
3688 | 4 | {% endcomment %} | ||
3689 | 5 | |||
3690 | 6 | {% block title %} | ||
3691 | 7 | {{ block.super }} - Reset Password | ||
3692 | 8 | {% endblock %} | ||
3693 | 9 | |||
3694 | 2 | {% load i18n %} | 10 | {% load i18n %} |
3695 | 3 | 11 | ||
3696 | 4 | {% block title %}{% trans 'Password reset successful' %}{% endblock %} | ||
3697 | 5 | |||
3698 | 6 | {% block content %} | 12 | {% block content %} |
3704 | 7 | 13 | {% include "django_messages/inlines/navigation.html" %} | |
3705 | 8 | <h1>{% trans 'Password reset successful' %}</h1> | 14 | |
3706 | 9 | 15 | <br /> | |
3707 | 10 | <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> | 16 | <br /> |
3708 | 11 | 17 | <div class="box_item_model fixed_site border"> | |
3709 | 18 | <h3 class="title">Password reset successful</h3> | ||
3710 | 19 | <div class="info_line"> | ||
3711 | 20 | <br /> | ||
3712 | 21 | <div class="show_center errormessage"> | ||
3713 | 22 | We've e-mailed you instructions for setting your password to the e-mail address you submitted. You should be receiving it shortly. | ||
3714 | 23 | </div> | ||
3715 | 24 | <br /> | ||
3716 | 25 | </div> | ||
3717 | 26 | </div> | ||
3718 | 12 | {% endblock %} | 27 | {% endblock %} |
3719 | 13 | 28 | ||
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 @@ | |||
3725 | 1 | {% extends "base.html" %} | 1 | {% extends "registration/base.html" %} |
3726 | 2 | {% comment %} | ||
3727 | 3 | vim:ft=htmldjango: | ||
3728 | 4 | {% endcomment %} | ||
3729 | 5 | |||
3730 | 6 | {% block title %} | ||
3731 | 7 | {{ block.super }} - Register | ||
3732 | 8 | {% endblock %} | ||
3733 | 9 | |||
3734 | 2 | {% load i18n %} | 10 | {% load i18n %} |
3735 | 3 | 11 | ||
3736 | 4 | {% block breadcrumbs %}<div class="breadcrumbs"><a href="../">{% trans 'Home' %}</a> › {% trans 'Password reset' %}</div>{% endblock %} | ||
3737 | 5 | |||
3738 | 6 | {% block title %}{% trans "Password reset" %}{% endblock %} | ||
3739 | 7 | |||
3740 | 8 | {% block content %} | 12 | {% block content %} |
3750 | 9 | 13 | {% include "django_messages/inlines/navigation.html" %} | |
3751 | 10 | <h1>{% trans "Password reset" %}</h1> | 14 | |
3752 | 11 | 15 | <br /> | |
3753 | 12 | <p>{% trans "Forgotten your password? Enter your e-mail address below, and we'll e-mail instructions for setting a new one." %}</p> | 16 | <br /> |
3754 | 13 | 17 | <div class="box_item_model fixed_site border"> | |
3755 | 14 | <form action="" method="post"> | 18 | <h3 class="title">Password reset</h3> |
3756 | 15 | {{ form.email.errors }} | 19 | <div class="info_line"> |
3757 | 16 | <p><label for="id_email">{% trans 'E-mail address:' %}</label> {{ form.email }} <input type="submit" value="{% trans 'Reset my password' %}" /></p> | 20 | <br /> |
3758 | 17 | </form> | 21 | <div class="show_center errormessage"> |
3759 | 22 | Forgotten your password? | ||
3760 | 23 | <br /> | ||
3761 | 24 | Enter your e-mail address below, | ||
3762 | 25 | <br /> | ||
3763 | 26 | and we'll e-mail instructions for setting a new one. | ||
3764 | 27 | </div> | ||
3765 | 28 | <div class="show_right"> | ||
3766 | 29 | <br /> | ||
3767 | 30 | <form action="" method="post"> | ||
3768 | 31 | {{ form.email.errors }} | ||
3769 | 32 | <label for="id_email">{% trans 'E-mail address:' %}</label> {{ form.email }} | ||
3770 | 33 | <input type="submit" value="{% trans 'Reset my password' %}" /> | ||
3771 | 34 | </form> | ||
3772 | 35 | <br /> | ||
3773 | 36 | </div> | ||
3774 | 37 | </div> | ||
3775 | 38 | </div> | ||
3776 | 18 | 39 | ||
3777 | 19 | {% endblock %} | 40 | {% endblock %} |
3778 | 20 | 41 | ||
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 @@ | |||
3784 | 1 | {% extends "base.html" %} | 1 | {% extends "registration/base.html" %} |
3785 | 2 | {% comment %} | ||
3786 | 3 | vim:ft=htmldjango: | ||
3787 | 4 | {% endcomment %} | ||
3788 | 2 | 5 | ||
3789 | 3 | {% block title %} | 6 | {% block title %} |
3795 | 4 | registration_complete.html | {{ block.super }} | 7 | {{ block.super }} - Registration complete |
3791 | 5 | {% endblock %} | ||
3792 | 6 | |||
3793 | 7 | {% block header %} | ||
3794 | 8 | <h1>registration_complete.html</h1> | ||
3796 | 9 | {% endblock %} | 8 | {% endblock %} |
3797 | 10 | 9 | ||
3798 | 11 | {% block content %} | 10 | {% block content %} |
3799 | 12 | Thank you for signing up. An email with the activation code has been send to your inbox. | ||
3800 | 13 | {% endblock %} | ||
3801 | 14 | \ No newline at end of file | 11 | \ No newline at end of file |
3802 | 12 | {% include "django_messages/inlines/navigation.html" %} | ||
3803 | 13 | |||
3804 | 14 | <br /> | ||
3805 | 15 | <br /> | ||
3806 | 16 | <div class="box_item_model fixed_site border"> | ||
3807 | 17 | <h3 class="title">Registration</h3> | ||
3808 | 18 | <div class="info_line"> | ||
3809 | 19 | <br /> | ||
3810 | 20 | <div class="show_center errormessage"> | ||
3811 | 21 | Thank you for signing up. An email with the activation code has been send to your inbox. | ||
3812 | 22 | </div> | ||
3813 | 23 | </div> | ||
3814 | 24 | </div> | ||
3815 | 25 | {% endblock %} | ||
3816 | 15 | 26 | ||
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 @@ | |||
3822 | 1 | {% extends "base.html" %} | 1 | {% extends "registration/base.html" %} |
3823 | 2 | {% comment %} | 2 | {% comment %} |
3824 | 3 | vim:ft=htmldjango: | 3 | vim:ft=htmldjango: |
3825 | 4 | {% endcomment %} | 4 | {% endcomment %} |
3826 | @@ -8,57 +8,85 @@ | |||
3827 | 8 | {% endblock %} | 8 | {% endblock %} |
3828 | 9 | 9 | ||
3829 | 10 | {% block content %} | 10 | {% block content %} |
3883 | 11 | <form action="{% url registration_register %}" method="POST"> | 11 | {% include "django_messages/inlines/navigation.html" %} |
3884 | 12 | <table> | 12 | |
3885 | 13 | <tr> | 13 | <br /> |
3886 | 14 | <td align="right" valign="top">Username:</td> | 14 | <br /> |
3887 | 15 | <td> | 15 | <div class="box_item_model fixed_site border"> |
3888 | 16 | {{ registration_form.username }} <br/> | 16 | <h3 class="title">Registration</h3> |
3889 | 17 | {% for error in registration_form.username.errors %} | 17 | <div class="info_line"> |
3890 | 18 | <span class="errormessage">{{ error }}</span> | 18 | <br /> |
3891 | 19 | {% endfor %} | 19 | <form action="{% url registration_register %}" method="POST"> |
3892 | 20 | </td> | 20 | <table> |
3893 | 21 | </tr> | 21 | <tr> |
3894 | 22 | <tr> | 22 | <td class="show_right">Username:</td> |
3895 | 23 | <td align="right" valign="top">Email:</td> | 23 | <td class="show_left"> |
3896 | 24 | <td> | 24 | {{ registration_form.username }} |
3897 | 25 | {{ registration_form.email }} <br/> | 25 | <br/> |
3898 | 26 | {% for error in registration_form.email.errors %} | 26 | {% for error in registration_form.username.errors %} |
3899 | 27 | <span class="errormessage">{{ error }}</span> | 27 | <span class="errormessage"> |
3900 | 28 | {% endfor %} | 28 | {{ error }} |
3901 | 29 | </td> | 29 | </span> |
3902 | 30 | </tr> | 30 | {% endfor %} |
3903 | 31 | <tr> | 31 | </td> |
3904 | 32 | <td align="right" valign="top">Password:</td> | 32 | </tr> |
3905 | 33 | <td> | 33 | <tr> |
3906 | 34 | {{ registration_form.password1 }} <br/> | 34 | <td class="show_right">Email:</td> |
3907 | 35 | {% for error in registration_form.password1.errors %} | 35 | <td class="show_left"> |
3908 | 36 | <span class="errormessage">{{ error }}</span> | 36 | {{ registration_form.email }} |
3909 | 37 | {% endfor %} | 37 | <br/> |
3910 | 38 | </td> | 38 | {% for error in registration_form.email.errors %} |
3911 | 39 | </tr> | 39 | <span class="errormessage"> |
3912 | 40 | <tr> | 40 | {{ error }} |
3913 | 41 | <td align="right" valign="top">Password (again):</td> | 41 | </span> |
3914 | 42 | <td> | 42 | {% endfor %} |
3915 | 43 | {{ registration_form.password2 }} <br/> | 43 | </td> |
3916 | 44 | {% for error in registration_form.password2.errors %} | 44 | </tr> |
3917 | 45 | <span class="errormessage">{{ error }}</span> | 45 | <tr> |
3918 | 46 | {% endfor %} | 46 | <td class="show_right">Password:</td> |
3919 | 47 | </td> | 47 | <td class="show_left"> |
3920 | 48 | </tr> | 48 | {{ registration_form.password1 }} |
3921 | 49 | <tr align="right"> | 49 | <br/> |
3922 | 50 | <td align="right" valign="top">Prove that you're no spambot:</td> | 50 | {% for error in registration_form.password1.errors %} |
3923 | 51 | <td> | 51 | <span class="errormessage"> |
3924 | 52 | {{ registration_form.captcha|safe }} <br/> | 52 | {{ error }} |
3925 | 53 | {% for error in registration_form.captcha.errors %} | 53 | </span> |
3926 | 54 | <span class="errormessage">{{ error }}</span> | 54 | {% endfor %} |
3927 | 55 | {% endfor %} | 55 | </td> |
3928 | 56 | </td> | 56 | </tr> |
3929 | 57 | </tr> | 57 | <tr> |
3930 | 58 | <tr> | 58 | <td class="show_right">Password (again):</td> |
3931 | 59 | <td> </td> | 59 | <td class="show_left"> |
3932 | 60 | <td><input type="submit" value="Register" /></td> | 60 | {{ registration_form.password2 }} |
3933 | 61 | </tr> | 61 | <br/> |
3934 | 62 | </table> | 62 | {% for error in registration_form.password2.errors %} |
3935 | 63 | </form> | 63 | <span class="errormessage"> |
3936 | 64 | {{ error }} | ||
3937 | 65 | </span> | ||
3938 | 66 | {% endfor %} | ||
3939 | 67 | </td> | ||
3940 | 68 | </tr> | ||
3941 | 69 | <tr> | ||
3942 | 70 | <td class="show_right">Prove that you're no spambot:</td> | ||
3943 | 71 | <td class="show_left"> | ||
3944 | 72 | {{ registration_form.captcha|safe }} | ||
3945 | 73 | <br/> | ||
3946 | 74 | {% for error in registration_form.captcha.errors %} | ||
3947 | 75 | <span class="errormessage"> | ||
3948 | 76 | {{ error }} | ||
3949 | 77 | </span> | ||
3950 | 78 | {% endfor %} | ||
3951 | 79 | </td> | ||
3952 | 80 | </tr> | ||
3953 | 81 | <tr> | ||
3954 | 82 | <td class="show_right"> </td> | ||
3955 | 83 | <td class="show_left"> | ||
3956 | 84 | <input type="submit" value="Register" /> | ||
3957 | 85 | </td> | ||
3958 | 86 | </tr> | ||
3959 | 87 | </table> | ||
3960 | 88 | </form> | ||
3961 | 89 | <br /> | ||
3962 | 90 | </div> | ||
3963 | 91 | </div> | ||
3964 | 64 | {% endblock %} | 92 | {% endblock %} |
3965 | 65 | 93 | ||
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 | 3 | 3 | ||
3971 | 4 | This file is included by mainpage and contains all the left menu boxes | 4 | This file is included by mainpage and contains all the left menu boxes |
3972 | 5 | on the site | 5 | on the site |
3973 | 6 | |||
3974 | 7 | {% endcomment %} | 6 | {% endcomment %} |
3975 | 8 | {% load inbox %} | 7 | {% load inbox %} |
3976 | 9 | {% load i18n %} | 8 | {% load i18n %} |
3978 | 10 | {% load wlprofile wlpoll wlevents %} | 9 | {% load wlprofile wlpoll wlevents%} |
3979 | 10 | {% load pybb_extras %} | ||
3980 | 11 | 11 | ||
3981 | 12 | <!-- Search Box --> | 12 | <!-- Search Box --> |
3982 | 13 | <h3 class="box_title">Search</h3> | 13 | <h3 class="box_title">Search</h3> |
3983 | @@ -29,10 +29,10 @@ | |||
3984 | 29 | Help us to pay our Server!<br/>(: Consider a donation :) <br/><br/> | 29 | Help us to pay our Server!<br/>(: Consider a donation :) <br/><br/> |
3985 | 30 | <div> | 30 | <div> |
3986 | 31 | <form action="https://www.paypal.com/cgi-bin/webscr" method="post"> | 31 | <form action="https://www.paypal.com/cgi-bin/webscr" method="post"> |
3991 | 32 | <input type="hidden" name="cmd" value="_s-xclick"> | 32 | <input type="hidden" name="cmd" value="_s-xclick" /> |
3992 | 33 | <input type="hidden" name="hosted_button_id" value="JH5R7YHSVRMRG"> | 33 | <input type="hidden" name="hosted_button_id" value="JH5R7YHSVRMRG" /> |
3993 | 34 | <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!"> | 34 | <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 | 35 | <img alt="" border="0" src="https://www.paypal.com/de_DE/i/scr/pixel.gif" width="1" height="1"> | 35 | <img alt="" src="https://www.paypal.com/de_DE/i/scr/pixel.gif" width="1" height="1" /> |
3995 | 36 | </form> | 36 | </form> |
3996 | 37 | </div> | 37 | </div> |
3997 | 38 | </div> | 38 | </div> |
3998 | @@ -40,20 +40,22 @@ | |||
3999 | 40 | <!-- Login Block / User informations --> | 40 | <!-- Login Block / User informations --> |
4000 | 41 | {% if user.is_authenticated %} | 41 | {% if user.is_authenticated %} |
4001 | 42 | <h3 class="box_title">Account</h3> | 42 | <h3 class="box_title">Account</h3> |
4016 | 43 | <div class="box_content" align="center"> | 43 | <div class="box_content"> |
4017 | 44 | <p> | 44 | <p align="center"> |
4018 | 45 | You are logged in as<br/> | 45 | Welcome <b>{{ user|user_link }}</b>,<br /> |
4019 | 46 | <b>{{ user|user_link }}</b> | 46 | you've <a href="{% url messages_inbox %}">{% inbox_count %}</a> new messages |
4020 | 47 | </p> | 47 | </p> |
4021 | 48 | 48 | <ul> | |
4022 | 49 | <p> | 49 | <li> |
4023 | 50 | <a href="{% url messages_inbox %}">{% inbox_count %} {% trans "new messages" %}</a> | 50 | <a href="{% url profile_edit %}">Edit Profile</a> |
4024 | 51 | </p> | 51 | </li> |
4025 | 52 | 52 | <li> | |
4026 | 53 | <p> | 53 | <a href="{% url notification_notices %} ">Notifications</a> |
4027 | 54 | <a href="/accounts/logout/next={{request.path}}">Logout</a> | 54 | </li> |
4028 | 55 | </p> | 55 | <li> |
4029 | 56 | 56 | <a href="/accounts/logout/next={{ request.path }}">Logout</a> | |
4030 | 57 | </li> | ||
4031 | 58 | </ul> | ||
4032 | 57 | </div> | 59 | </div> |
4033 | 58 | {% else %} | 60 | {% else %} |
4034 | 59 | <h3 class="box_title">Login</h3> | 61 | <h3 class="box_title">Login</h3> |
4035 | @@ -75,7 +77,6 @@ | |||
4036 | 75 | </center> | 77 | </center> |
4037 | 76 | </div> | 78 | </div> |
4038 | 77 | {% endif %} | 79 | {% endif %} |
4039 | 78 | |||
4040 | 79 | <!-- Current polls if any --> | 80 | <!-- Current polls if any --> |
4041 | 80 | {% get_open_polls as polls %} | 81 | {% get_open_polls as polls %} |
4042 | 81 | {% if polls.count %} | 82 | {% if polls.count %} |
4043 | @@ -122,10 +123,10 @@ | |||
4044 | 122 | 123 | ||
4045 | 123 | <!-- Logged in users --> | 124 | <!-- Logged in users --> |
4046 | 124 | {%load online_users %} | 125 | {%load online_users %} |
4050 | 125 | <h3 class="box_title">Currently online</h3> | 126 | {% online_users 10 %} |
4051 | 126 | <div class="box_content"> | 127 | <!-- Placeholder for The Last 5 Forum Posts --> |
4052 | 127 | {% online_users 10 %} | 128 | <h3 class="box_title">Last 5 Forum Posts</h3> |
4053 | 129 | <div class="box_content"> | ||
4054 | 130 | {% pybb_last_posts %} | ||
4055 | 128 | </div> | 131 | </div> |
4056 | 129 | |||
4057 | 130 | |||
4058 | 131 | 132 | ||
4059 | 132 | 133 | ||
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 | 27 | {% endif %} | 27 | {% endif %} |
4065 | 28 | </div> | 28 | </div> |
4066 | 29 | {% endfor %} | 29 | {% endfor %} |
4067 | 30 | {% if user.is_authenticated %} | ||
4068 | 31 | <br /> | 30 | <br /> |
4069 | 32 | <br /> | 31 | <br /> |
4095 | 33 | <div class="news_item"> | 32 | <div class="box_item_model fixed_site border"> |
4096 | 34 | <h3 class="title">Reply to Original:</h3> | 33 | {% if user.is_authenticated %} |
4097 | 35 | <form method="POST" action="{% get_comment_url object %}?next={{object.get_absolute_url}}"> | 34 | <h3 class="title">Reply to Original:</h3> |
4098 | 36 | <div class="content"> | 35 | <form method="POST" action="{% get_comment_url object %}?next={{object.get_absolute_url}}"> |
4099 | 37 | <table class="text" width="100%"> | 36 | <div class="content"> |
4100 | 38 | <tr> | 37 | <table class="text full_site"> |
4101 | 39 | <td width="99%"> | 38 | <tr> |
4102 | 40 | <span class=errorclass">{{ form.comment.errors }}</span> | 39 | <td width="99%"> |
4103 | 41 | {{ form.comment }} | 40 | <span class="errormessage">{{ form.comment.errors }}</span> |
4104 | 42 | </td> | 41 | {{ form.comment }} |
4105 | 43 | <td width="1%"></td> | 42 | </td> |
4106 | 44 | </tr> | 43 | <td width="1%"></td> |
4107 | 45 | </table> | 44 | </tr> |
4108 | 46 | </div> | 45 | </table> |
4109 | 47 | <table class="bottom_line" width="100%"> | 46 | </div> |
4110 | 48 | <tr> | 47 | <table class="info_line full_site"> |
4111 | 49 | <td class="admin"> | 48 | <tr> |
4112 | 50 | <input type="hidden" name="markup" value="1" /> | 49 | <td class="show_center"> |
4113 | 51 | <input type="hidden" value="next" value="{{ object.get_absolute_url }}" /> | 50 | <input type="hidden" name="markup" value="1" /> |
4114 | 52 | <input type="submit" value="Submit Comment" /> | 51 | <input type="hidden" value="next" value="{{ object.get_absolute_url }}" /> |
4115 | 53 | </td> | 52 | <input type="submit" value="Submit Comment" /> |
4116 | 54 | </tr> | 53 | </td> |
4117 | 55 | </table> | 54 | </tr> |
4118 | 56 | </form> | 55 | </table> |
4119 | 57 | </div> | 56 | </form> |
4120 | 58 | {% else %} | 57 | {% else %} |
4122 | 59 | <p>Log in to post comments</p> | 58 | <h3 class="title">Comments</h3> |
4123 | 59 | <div class="info_line errormessage show_center"> | ||
4124 | 60 | <br /> | ||
4125 | 61 | !!! Log in to post comments !!! | ||
4126 | 62 | <br /> | ||
4127 | 63 | <br /> | ||
4128 | 64 | </div> | ||
4129 | 60 | {% endif %} | 65 | {% endif %} |
4130 | 66 | </div> | ||
4131 | 61 | 67 | ||
4132 | 62 | 68 | ||
4133 | 63 | 69 | ||
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 | 7 | <div id="comment_preview">{% auto_transform_markup comment %}</div> | 7 | <div id="comment_preview">{% auto_transform_markup comment %}</div> |
4139 | 8 | {% endif %} | 8 | {% endif %} |
4140 | 9 | <form method="POST" action=""> | 9 | <form method="POST" action=""> |
4142 | 10 | <div class="content"> | 10 | <div class="content"> |
4143 | 11 | <table class="text" width="100%"> | 11 | <table class="text" width="100%"> |
4151 | 12 | <tr> | 12 | <tr> |
4152 | 13 | <td width="99%"> | 13 | <td width="99%"> |
4153 | 14 | <span class=errorclass">{{ form.comment.errors }}</span> | 14 | <span class="errormessage">{{ form.comment.errors }}</span> |
4154 | 15 | {{ form.comment }} | 15 | {{ form.comment }} |
4155 | 16 | </td> | 16 | </td> |
4156 | 17 | <td width="1%"></td> | 17 | <td width="1%"></td> |
4157 | 18 | </tr> | 18 | </tr> |
4158 | 19 | <tr> | ||
4159 | 20 | <td class="bottom_line show_center"> | ||
4160 | 21 | <input type="hidden" name="markup" value="1" /> | ||
4161 | 22 | <input type="submit" value="Submit Comment" /> | ||
4162 | 23 | </td> | ||
4163 | 24 | </tr> | ||
4164 | 19 | </table> | 25 | </table> |
4175 | 20 | </div> | 26 | </div> |
4176 | 21 | <table class="bottom_line" width="100%"> | 27 | </form> |
4167 | 22 | <tr> | ||
4168 | 23 | <td class="admin"> | ||
4169 | 24 | <input type="hidden" name="markup" value="1" /> | ||
4170 | 25 | <input type="submit" value="Submit Comment" /> | ||
4171 | 26 | </td> | ||
4172 | 27 | </tr> | ||
4173 | 28 | </table> | ||
4174 | 29 | </form> | ||
4177 | 30 | {% endblock %} | 28 | {% endblock %} |
4178 | 31 | 29 | ||
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 | 1 | {% extends "base.html" %} | ||
4185 | 2 | {% comment %} | ||
4186 | 3 | vim:ft=htmldjango | ||
4187 | 4 | {% endcomment %} | ||
4188 | 5 | |||
4189 | 6 | {% block title %} | ||
4190 | 7 | GGZ statistics - {{ block.super }} | ||
4191 | 8 | {% endblock %} | ||
4192 | 9 | |||
4193 | 10 | {% block extra_head %} | ||
4194 | 11 | <link rel="stylesheet" type="text/css" media="all" href="{{ MEDIA_URL }}/css/ggz.css" />{{ block.super}} | ||
4195 | 12 | {% endblock %} | ||
4196 | 0 | 13 | ||
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 | 1 | {% extends "wlggz/base.html" %} | ||
4202 | 2 | |||
4203 | 3 | {% load i18n %} | ||
4204 | 4 | |||
4205 | 5 | {% block content %} | ||
4206 | 6 | {% include "django_messages/inlines/navigation.html" %} | ||
4207 | 7 | <br /> | ||
4208 | 8 | <br /> | ||
4209 | 9 | <div class="box_item_model fixed_site border"> | ||
4210 | 10 | <h3 class="title">{% trans "Set GGZ password" %}</h3> | ||
4211 | 11 | <form method="post" enctype="multipart/form-data"> | ||
4212 | 12 | <div class="content"> | ||
4213 | 13 | <table cellspacing="1" class="text full_site"> | ||
4214 | 14 | {% if profile_form.errors %} | ||
4215 | 15 | <tr> | ||
4216 | 16 | <td class="even" colspan="2">{{ profile_form.errors }}</td> | ||
4217 | 17 | </tr> | ||
4218 | 18 | {% endif %} | ||
4219 | 19 | {% for field in ggz_form %} | ||
4220 | 20 | <tr> | ||
4221 | 21 | {% if field.errors %} | ||
4222 | 22 | <td colspan="2" class="{% cycle "odd" "even" %}"> | ||
4223 | 23 | <div class="errormessage">{{ field.errors }}</div> | ||
4224 | 24 | </td> | ||
4225 | 25 | </tr> | ||
4226 | 26 | <tr> | ||
4227 | 27 | {% endif %} | ||
4228 | 28 | <td class="{% cycle "odd" "even" %}">{{ field.label_tag }}:</td> | ||
4229 | 29 | <td class="{% cycle "odd" "even" %}">{{ field }} | ||
4230 | 30 | {% ifequal field.name "time_display" %} | ||
4231 | 31 | <a href="/wiki/HomepageDocuTimeDisplay">Documented here</a> | ||
4232 | 32 | {% endifequal %} | ||
4233 | 33 | </td> | ||
4234 | 34 | </tr> | ||
4235 | 35 | {% endfor %} | ||
4236 | 36 | </table> | ||
4237 | 37 | </div> | ||
4238 | 38 | <div class="info_line"> | ||
4239 | 39 | <input type="submit" value="{% trans "Save" %}" /> | ||
4240 | 40 | </div> | ||
4241 | 41 | </form> | ||
4242 | 42 | </div> | ||
4243 | 43 | {% endblock %} | ||
4244 | 0 | 44 | ||
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 | 1 | {% extends "wlggz/base.html" %} | ||
4250 | 2 | |||
4251 | 3 | {% load i18n %} | ||
4252 | 4 | |||
4253 | 5 | {% block content %} | ||
4254 | 6 | {% load custom_date %} | ||
4255 | 7 | {% load wlprofile %} | ||
4256 | 8 | |||
4257 | 9 | {% include "django_messages/inlines/navigation.html" %} | ||
4258 | 10 | |||
4259 | 11 | <br /> | ||
4260 | 12 | <br /> | ||
4261 | 13 | <div class="box_item_model fixed_site border"> | ||
4262 | 14 | <h3 class="title">Top ten widelands players</h3> | ||
4263 | 15 | <table cellspacing="1" class="text full_site"> | ||
4264 | 16 | <tr> | ||
4265 | 17 | <td>User</td> | ||
4266 | 18 | <td>ranking</td> | ||
4267 | 19 | <td>rating</td> | ||
4268 | 20 | <td>wins</td> | ||
4269 | 21 | <td>losses</td> | ||
4270 | 22 | </tr> | ||
4271 | 23 | {% for userstat in ggzstats %} | ||
4272 | 24 | <tr> | ||
4273 | 25 | <td class="{% cycle "odd" "even" %}"><a href="{% url wlggz_userstats userstat.handle %}">{{ userstat.handle }}</a></td> | ||
4274 | 26 | <td class="{% cycle "odd" "even" %}"> {{ userstat.ranking|floatformat }} </td> | ||
4275 | 27 | <td class="{% cycle "odd" "even" %}"> {{ userstat.rating|floatformat }} </td> | ||
4276 | 28 | <td class="{% cycle "odd" "even" %}"> {{ userstat.wins|floatformat }} </td> | ||
4277 | 29 | <td class="{% cycle "odd" "even" %}"> {{ userstat.losses|floatformat }} </td> | ||
4278 | 30 | </tr> | ||
4279 | 31 | {% empty %} | ||
4280 | 32 | <tr> | ||
4281 | 33 | <td class="even show_center" colspan="5"> | ||
4282 | 34 | <br /> | ||
4283 | 35 | <b>Sorry, no ranking yet</b> | ||
4284 | 36 | <br /> | ||
4285 | 37 | <br /> | ||
4286 | 38 | </td> | ||
4287 | 39 | </tr> | ||
4288 | 40 | {% endfor %} | ||
4289 | 41 | </table> | ||
4290 | 42 | </div> | ||
4291 | 43 | {% endblock %} | ||
4292 | 0 | 44 | ||
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 | 1 | {% extends "wlggz/base.html" %} | ||
4298 | 2 | |||
4299 | 3 | {% load i18n %} | ||
4300 | 4 | |||
4301 | 5 | {% block content %} | ||
4302 | 6 | {% load custom_date %} | ||
4303 | 7 | {% load wlprofile %} | ||
4304 | 8 | |||
4305 | 9 | {% include "django_messages/inlines/navigation.html" %} | ||
4306 | 10 | |||
4307 | 11 | <br /> | ||
4308 | 12 | <br /> | ||
4309 | 13 | <div class="box_item_model fixed_site border"> | ||
4310 | 14 | <h3 class="title">Last 10 matches</h3> | ||
4311 | 15 | <table cellspacing="1" class="text full_site"> | ||
4312 | 16 | <tr> | ||
4313 | 17 | <td class="ggz_date">Date</td> | ||
4314 | 18 | <td class="ggz_winner">Winner</td> | ||
4315 | 19 | <td class="ggz_vs">Participants</td> | ||
4316 | 20 | </tr> | ||
4317 | 21 | {% for match in ggzmatches %} | ||
4318 | 22 | <tr> | ||
4319 | 23 | <td class="{% cycle "odd" "even" %}">{{ match.date_date }}</td> | ||
4320 | 24 | <td class="{% cycle "odd" "even" %}"> | ||
4321 | 25 | {{ match.winner_as_userlink }} | ||
4322 | 26 | </td> | ||
4323 | 27 | <td class="{% cycle "odd" "even" %}"> | ||
4324 | 28 | {% for player in match.wlggz_matchplayers.all %} | ||
4325 | 29 | {{ player.handle_as_userlink }}({{ player.result }}, {{ player.points }}) | ||
4326 | 30 | {% endfor %} | ||
4327 | 31 | </td> | ||
4328 | 32 | </tr> | ||
4329 | 33 | {% empty %} | ||
4330 | 34 | <tr> | ||
4331 | 35 | <td class="even show_center" colspan="3"> | ||
4332 | 36 | <br /> | ||
4333 | 37 | <b>Sorry, no matches yet</b> | ||
4334 | 38 | <br /> | ||
4335 | 39 | <br /> | ||
4336 | 40 | </td> | ||
4337 | 41 | </tr> | ||
4338 | 42 | {% endfor %} | ||
4339 | 43 | </table> | ||
4340 | 44 | </div> | ||
4341 | 45 | {% endblock %} | ||
4342 | 0 | 46 | ||
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 | 1 | {% extends "wlggz/base.html" %} | ||
4348 | 2 | |||
4349 | 3 | {% load i18n %} | ||
4350 | 4 | |||
4351 | 5 | {% block content %} | ||
4352 | 6 | {% load custom_date %} | ||
4353 | 7 | |||
4354 | 8 | {% include "django_messages/inlines/navigation.html" %} | ||
4355 | 9 | <br /> | ||
4356 | 10 | <br /> | ||
4357 | 11 | <div class="box_item_model fixed_site border"> | ||
4358 | 12 | <h3 class="title">{% trans "Available Links" %}</h3> | ||
4359 | 13 | <div class="info_line show_left"> | ||
4360 | 14 | <br /> | ||
4361 | 15 | <a href="{% url wlggz_matches %}">Last matches</a><br /> | ||
4362 | 16 | <a href="{% url wlggz_ranking %}">GGZ ranking</a><br /> | ||
4363 | 17 | <br /> | ||
4364 | 18 | {% if user.is_authenticated %} | ||
4365 | 19 | <a href="{% url wlggz_userstats %}">View your ggz statistics</a><br /> | ||
4366 | 20 | <a href="{% url wlggz_userinfo %}">About your ggz account</a><br /> | ||
4367 | 21 | <a href="{% url wlggz_changepw %}">Change your ggz password</a><br /> | ||
4368 | 22 | <br /> | ||
4369 | 23 | {% endif %} | ||
4370 | 24 | </div> | ||
4371 | 25 | </div> | ||
4372 | 26 | |||
4373 | 27 | {% endblock %} | ||
4374 | 0 | 28 | ||
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 | 1 | {% extends "wlggz/base.html" %} | ||
4380 | 2 | |||
4381 | 3 | {% load i18n %} | ||
4382 | 4 | |||
4383 | 5 | {% block content %} | ||
4384 | 6 | {% load custom_date %} | ||
4385 | 7 | {% load wlprofile %} | ||
4386 | 8 | |||
4387 | 9 | {% include "django_messages/inlines/navigation.html" %} | ||
4388 | 10 | |||
4389 | 11 | <br /> | ||
4390 | 12 | <br /> | ||
4391 | 13 | |||
4392 | 14 | {% if ggzauth.user %} | ||
4393 | 15 | <div class="box_item_model fixed_site border"> | ||
4394 | 16 | <h3 class="title">{% trans "GGZ results for" %} {{ ggzauth.user.username }}</h3> | ||
4395 | 17 | <table class="info_line full_site"> | ||
4396 | 18 | <tr><td class="ggz_stats">Last ggz login:</td><td class="show_left"> {{ ggzauth.lastlogin }}</td></tr> | ||
4397 | 19 | <tr><td class="ggz_stats">Ranking:</td><td class="show_left"> {{ ggzstats.ranking }}</td></tr> | ||
4398 | 20 | <tr><td class="ggz_stats">Rating:</td><td class="show_left"> {{ ggzstats.rating|floatformat }}</td></tr> | ||
4399 | 21 | <tr><td class="ggz_stats">wins:</td><td class="show_left"> {{ ggzstats.wins }}</td></tr> | ||
4400 | 22 | <tr><td class="ggz_stats">losses:</td><td class="show_left"> {{ ggzstats.losses }}</td></tr> | ||
4401 | 23 | </table> | ||
4402 | 24 | </div> | ||
4403 | 25 | <br /> | ||
4404 | 26 | <br /> | ||
4405 | 27 | |||
4406 | 28 | <div class="box_item_model fixed_site border"> | ||
4407 | 29 | <h3 class="title">Last 10 matches of {{ ggzauth.user.username }}</h3> | ||
4408 | 30 | {% if ggzmatches %} | ||
4409 | 31 | <table width="100%" cellspacing="1" class="text"> | ||
4410 | 32 | <tr> | ||
4411 | 33 | <td class="ggz_date">Date</td> | ||
4412 | 34 | <td class="ggz_winner">Winner</td> | ||
4413 | 35 | <td class="ggz_vs">Participants</td> | ||
4414 | 36 | </tr> | ||
4415 | 37 | {% for match in ggzmatches %} | ||
4416 | 38 | <tr> | ||
4417 | 39 | <td class="{% cycle "odd" "even" %}">{{ match.match.date_date }}</td> | ||
4418 | 40 | <td class="{% cycle "odd" "even" %}"> | ||
4419 | 41 | {% if match.match.winner %} | ||
4420 | 42 | {{ match.match.winner_as_userlink }} | ||
4421 | 43 | {% endif %} | ||
4422 | 44 | </td> | ||
4423 | 45 | <td class="{% cycle "odd" "even" %}"> | ||
4424 | 46 | {% for player in match.match.wlggz_matchplayers.all %} | ||
4425 | 47 | {{ player.handle_as_userlink }} | ||
4426 | 48 | {% endfor %} | ||
4427 | 49 | </td class="{% cycle "odd" "even" %}"> | ||
4428 | 50 | </tr> | ||
4429 | 51 | {% endfor %} | ||
4430 | 52 | </table> | ||
4431 | 53 | {% else %} | ||
4432 | 54 | <div class="info_line show_center"> | ||
4433 | 55 | <br /> | ||
4434 | 56 | <b>User has not participated in any matches</b> | ||
4435 | 57 | <br /> | ||
4436 | 58 | <br /> | ||
4437 | 59 | </div> | ||
4438 | 60 | {% endif %} | ||
4439 | 61 | </div> | ||
4440 | 62 | <br /> | ||
4441 | 63 | <br /> | ||
4442 | 64 | <div class="box_item_model fixed_site border"> | ||
4443 | 65 | <h3 class="title">Last 10 matches {{ ggzauth.user.username }} won</h3> | ||
4444 | 66 | {% if ggzwonmatches %} | ||
4445 | 67 | <table cellspacing="1" class="text full_site"> | ||
4446 | 68 | <tr> | ||
4447 | 69 | <td class="ggz_date">Date</td> | ||
4448 | 70 | <td class="ggz_winner">Winner</td> | ||
4449 | 71 | <td class="ggz_vs">Participants</td> | ||
4450 | 72 | </tr> | ||
4451 | 73 | {% for match in ggzwonmatches %} | ||
4452 | 74 | <tr> | ||
4453 | 75 | <td class="{% cycle "odd" "even" %}">{{ match.date_date }}</td> | ||
4454 | 76 | <td class="{% cycle "odd" "even" %}">{{ match.winner_as_userlink }}</td> | ||
4455 | 77 | <td class="{% cycle "odd" "even" %}"> | ||
4456 | 78 | {% for player in match.wlggz_matchplayers.all %} | ||
4457 | 79 | {{ player.handle_as_userlink }} | ||
4458 | 80 | {% endfor %} | ||
4459 | 81 | </td> | ||
4460 | 82 | </tr> | ||
4461 | 83 | {% endfor %} | ||
4462 | 84 | </table> | ||
4463 | 85 | {% else %} | ||
4464 | 86 | <div class="info_line show_center"> | ||
4465 | 87 | <br /> | ||
4466 | 88 | <b>User has won no matches</b> | ||
4467 | 89 | <br /> | ||
4468 | 90 | <br /> | ||
4469 | 91 | </div> | ||
4470 | 92 | {% endif %} | ||
4471 | 93 | </div> | ||
4472 | 94 | {% else %} | ||
4473 | 95 | <div class="box_item_model"> | ||
4474 | 96 | <h3 class="title">{% trans "GGZ results for" %} {{ ggzauth.user.username }}</h3> | ||
4475 | 97 | <div class="info_line show_center"> | ||
4476 | 98 | <br /> | ||
4477 | 99 | <b class="errormessage">User does not exist or has no ggz account | ||
4478 | 100 | <br /> | ||
4479 | 101 | <br /> | ||
4480 | 102 | </table> | ||
4481 | 103 | </div> | ||
4482 | 104 | {% endif %} | ||
4483 | 105 | |||
4484 | 106 | {% endblock %} | ||
4485 | 0 | 107 | ||
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 | 4 | 4 | ||
4491 | 5 | {% block content %} | 5 | {% block content %} |
4492 | 6 | {% ifequal user profile.user %} | 6 | {% ifequal user profile.user %} |
4494 | 7 | {% include "messages/inlines/navigation.html" %} | 7 | {% include "django_messages/inlines/navigation.html" %} |
4495 | 8 | {% endifequal %} | 8 | {% endifequal %} |
4496 | 9 | <br /> | 9 | <br /> |
4497 | 10 | <br /> | 10 | <br /> |
4499 | 11 | <div class="profile_item"> | 11 | <div class="box_item_model fixed_site border"> |
4500 | 12 | <h3 class="title">{% trans "Profile editing" %}</h3> | 12 | <h3 class="title">{% trans "Profile editing" %}</h3> |
4501 | 13 | <div class="content"> | 13 | <div class="content"> |
4502 | 14 | {% if profile.avatar %} | 14 | {% if profile.avatar %} |
4503 | @@ -25,29 +25,54 @@ | |||
4504 | 25 | {% endif %} | 25 | {% endif %} |
4505 | 26 | 26 | ||
4506 | 27 | {% for field in profile_form %} | 27 | {% for field in profile_form %} |
4507 | 28 | {% if field.errors %} | ||
4508 | 28 | <tr> | 29 | <tr> |
4509 | 29 | {% if field.errors %} | ||
4510 | 30 | <td colspan="2" class="{% cycle "odd" "even" %}"> | 30 | <td colspan="2" class="{% cycle "odd" "even" %}"> |
4511 | 31 | <div class="errormessage">{{ field.errors }}</div> | 31 | <div class="errormessage">{{ field.errors }}</div> |
4512 | 32 | </td> | 32 | </td> |
4513 | 33 | </tr> | 33 | </tr> |
4514 | 34 | {% endif %} | ||
4515 | 35 | {% ifequal field.name "delete_avatar" %} | ||
4516 | 36 | {% if profile.avatar %} | ||
4517 | 34 | <tr> | 37 | <tr> |
4518 | 38 | <td class="{% cycle "odd" "even" %}">{{ field.label_tag }}:</td> | ||
4519 | 39 | <td class="{% cycle "odd" "even" %}">{{ field }} | ||
4520 | 40 | </tr> | ||
4521 | 35 | {% endif %} | 41 | {% endif %} |
4524 | 36 | <td {% ifequal field.name "signature" %} valign="top" {% endifequal %}class="{% cycle "odd" "even" %}">{{ field.label_tag }}:</td> | 42 | {% else %} |
4525 | 37 | <td class="{% cycle "odd" "even" %}">{{ field }} | 43 | <tr> |
4526 | 44 | <td class="{% cycle "odd" "even" %} {%ifequal field.name "signature" %}show_left{% endifequal %}">{{ field.label_tag }}:</td> | ||
4527 | 45 | <td class="{% cycle "odd" "even" %}">{{ field }} | ||
4528 | 38 | {% ifequal field.name "time_display" %} | 46 | {% ifequal field.name "time_display" %} |
4529 | 39 | <a href="/wiki/HomepageDocuTimeDisplay">Documented here</a> | 47 | <a href="/wiki/HomepageDocuTimeDisplay">Documented here</a> |
4530 | 40 | {% endifequal %} | 48 | {% endifequal %} |
4531 | 41 | </td> | 49 | </td> |
4532 | 42 | </tr> | 50 | </tr> |
4533 | 51 | {% endifequal %} | ||
4534 | 43 | {% endfor %} | 52 | {% endfor %} |
4535 | 44 | </table> | 53 | </table> |
4542 | 45 | </div> | 54 | </div> |
4543 | 46 | <table class="bottom_line" width="100%"> | 55 | <div class="info_line"> |
4544 | 47 | <tr> | 56 | <input type="submit" value="{% trans "Save" %}" /> |
4545 | 48 | <td><input type="submit" value="{% trans "Save" %}" /></td> | 57 | </div> |
4540 | 49 | </tr> | ||
4541 | 50 | </table> | ||
4546 | 51 | </form> | 58 | </form> |
4547 | 52 | </div> | 59 | </div> |
4548 | 60 | <br /> | ||
4549 | 61 | <div class="box_item_model fixed_site border"> | ||
4550 | 62 | <div class="info_line show_left"> | ||
4551 | 63 | <a href="{% url auth_change_password %}">Change website password</a> | ||
4552 | 64 | <br /> | ||
4553 | 65 | <br /> | ||
4554 | 66 | <b class="errormessage">WARNING: Passwords are transmitted in cleartext.</b> | ||
4555 | 67 | </div> | ||
4556 | 68 | </div> | ||
4557 | 69 | <br /> | ||
4558 | 70 | <div class="box_item_model fixed_site border"> | ||
4559 | 71 | <div class="info_line show_left"> | ||
4560 | 72 | <a href="{% url wlggz_changepw %}">Change online lobby password</a> | ||
4561 | 73 | <br /> | ||
4562 | 74 | <br /> | ||
4563 | 75 | <b class="errormessage">WARNING: GGZ transmitts the password in cleartext. Choose a different password for online gaming.</b> | ||
4564 | 76 | </div> | ||
4565 | 77 | </div> | ||
4566 | 53 | {% endblock %} | 78 | {% endblock %} |
4567 | 54 | 79 | ||
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 | 5 | {% block content %} | 5 | {% block content %} |
4573 | 6 | {% load custom_date %} | 6 | {% load custom_date %} |
4574 | 7 | 7 | ||
4581 | 8 | {% ifequal user profile.user %} | 8 | {% include "django_messages/inlines/navigation.html" %} |
4582 | 9 | {% include "messages/inlines/navigation.html" %} | 9 | |
4583 | 10 | {%endifequal%} | 10 | <br /> |
4584 | 11 | <br /> | 11 | <br /> |
4585 | 12 | <br /> | 12 | <div class="box_item_model fixed_site border"> |
4580 | 13 | <div class="profile_item"> | ||
4586 | 14 | <h3 class="title">{% trans "View Profile" %}</h3> | 13 | <h3 class="title">{% trans "View Profile" %}</h3> |
4587 | 15 | <div class="content"> | 14 | <div class="content"> |
4588 | 16 | {% if profile.avatar %} | 15 | {% if profile.avatar %} |
4589 | 17 | <img src="{{ profile.avatar.url }}" /> | 16 | <img src="{{ profile.avatar.url }}" /> |
4590 | 18 | {% endif %} | 17 | {% endif %} |
4592 | 19 | <table width="100%" cellspacing="1" class="text"> | 18 | <table cellspacing="1" class="text full_site"> |
4593 | 20 | <tr> | 19 | <tr> |
4594 | 21 | <td class="odd">User:</td> | 20 | <td class="odd">User:</td> |
4595 | 22 | <td class="odd">{{ profile.user.username }}</td> | 21 | <td class="odd">{{ profile.user.username }}</td> |
4596 | @@ -57,14 +56,19 @@ | |||
4597 | 57 | <td class="even">Yahoo:</td> | 56 | <td class="even">Yahoo:</td> |
4598 | 58 | <td class="even">{{ profile.yahoo }}</td> | 57 | <td class="even">{{ profile.yahoo }}</td> |
4599 | 59 | </tr> | 58 | </tr> |
4600 | 59 | <tr> | ||
4601 | 60 | <td class="odd show_left">Signature:</td> | ||
4602 | 61 | <td class="odd show_left">{{ profile.signature|urlize|linebreaks }}</td> | ||
4603 | 62 | </tr> | ||
4604 | 60 | {% ifequal user profile.user %} | 63 | {% ifequal user profile.user %} |
4605 | 61 | <tr> | 64 | <tr> |
4608 | 62 | <td class="odd">Email:</td> | 65 | <td class="even">Email:</td> |
4609 | 63 | <td class="odd">{{ profile.user.email }}</td> | 66 | <td class="even">{{ profile.user.email }}</td> |
4610 | 64 | </tr> | 67 | </tr> |
4611 | 65 | {% endifequal %} | 68 | {% endifequal %} |
4612 | 66 | </table> | 69 | </table> |
4613 | 67 | </div> | 70 | </div> |
4614 | 71 | {% comment %} | ||
4615 | 68 | <table class="bottom_line" width="100%"> | 72 | <table class="bottom_line" width="100%"> |
4616 | 69 | <tr> | 73 | <tr> |
4617 | 70 | <td> | 74 | <td> |
4618 | @@ -76,5 +80,13 @@ | |||
4619 | 76 | </td> | 80 | </td> |
4620 | 77 | </tr> | 81 | </tr> |
4621 | 78 | </table> | 82 | </table> |
4622 | 83 | <table class="bottom_line" width="100%"> | ||
4623 | 84 | <tr> | ||
4624 | 85 | <td> | ||
4625 | 86 | <a href="{% url wlggz_userstats profile.user %}">View GGZ Statistics of this user</a> | ||
4626 | 87 | </td> | ||
4627 | 88 | </tr> | ||
4628 | 89 | </table> | ||
4629 | 90 | {% endcomment %} | ||
4630 | 79 | </div> | 91 | </div> |
4631 | 80 | {% endblock %} | 92 | {% endblock %} |
4632 | 81 | 93 | ||
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 | 18 | 18 | ||
4638 | 19 | <!-- Start of Webchat --> | 19 | <!-- Start of Webchat --> |
4639 | 20 | {% if user.is_anonymous %} | 20 | {% if user.is_anonymous %} |
4641 | 21 | <iframe src="http://webchat.freenode.net?nick=guest&channels=widelands&uio=d4" width="647" height="400"></iframe> | 21 | <iframe src="http://webchat.freenode.net?nick=widelands_.&channels=widelands&uio=d4" width="647" height="400"></iframe> |
4642 | 22 | {% else %} | 22 | {% else %} |
4643 | 23 | <iframe src="http://webchat.freenode.net?nick={{ user.username }}&channels=widelands&uio=d4" width="100%" height="400"></iframe> | 23 | <iframe src="http://webchat.freenode.net?nick={{ user.username }}&channels=widelands&uio=d4" width="100%" height="400"></iframe> |
4644 | 24 | {% endif %} | 24 | {% endif %} |
4645 | 25 | 25 | ||
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 | 22 | # Django builtin / Registration | 22 | # Django builtin / Registration |
4651 | 23 | (r'^accounts/logout/(next=(?P<next_page>.*))?$', 'django.contrib.auth.views.logout'), | 23 | (r'^accounts/logout/(next=(?P<next_page>.*))?$', 'django.contrib.auth.views.logout'), |
4652 | 24 | url (r'^accounts/register/$', 'mainpage.views.register', name='registration_register'), | 24 | url (r'^accounts/register/$', 'mainpage.views.register', name='registration_register'), |
4653 | 25 | url(r'^accounts/changepw/$', 'django.contrib.auth.views.password_change', name="auth_change_password"), | ||
4654 | 25 | (r'^accounts/', include('registration.backends.default.urls')), | 26 | (r'^accounts/', include('registration.backends.default.urls')), |
4655 | 26 | (r'^feeds/(?P<url>.*)/$', 'django.contrib.syndication.views.feed', {'feed_dict': feeds}), | 27 | (r'^feeds/(?P<url>.*)/$', 'django.contrib.syndication.views.feed', {'feed_dict': feeds}), |
4656 | 27 | 28 | ||
4657 | @@ -49,6 +50,7 @@ | |||
4658 | 49 | url(r'^poll/', include("wlpoll.urls")), | 50 | url(r'^poll/', include("wlpoll.urls")), |
4659 | 50 | url(r'^maps/', include("wlmaps.urls")), | 51 | url(r'^maps/', include("wlmaps.urls")), |
4660 | 51 | url(r'^screenshots/', include("wlscreens.urls")), | 52 | url(r'^screenshots/', include("wlscreens.urls")), |
4661 | 53 | url(r'^ggz/', include("wlggz.urls")), | ||
4662 | 52 | ) | 54 | ) |
4663 | 53 | 55 | ||
4664 | 54 | try: | 56 | try: |
4665 | 55 | 57 | ||
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 | 9 | from django.template.loader import get_template | 9 | from django.template.loader import get_template |
4671 | 10 | from wiki.models import ChangeSet, Article | 10 | from wiki.models import ChangeSet, Article |
4672 | 11 | from wiki.utils import get_ct | 11 | from wiki.utils import get_ct |
4674 | 12 | import notification.atomformat as atom | 12 | from django.utils.feedgenerator import Atom1Feed, Rss201rev2Feed |
4675 | 13 | 13 | ||
4676 | 14 | ALL_ARTICLES = Article.objects.all() | 14 | ALL_ARTICLES = Article.objects.all() |
4677 | 15 | ALL_CHANGES = ChangeSet.objects.all() | 15 | ALL_CHANGES = ChangeSet.objects.all() |
4678 | 16 | 16 | ||
4679 | 17 | class RssHistoryFeed(Feed): | 17 | class RssHistoryFeed(Feed): |
4680 | 18 | 18 | ||
4681 | 19 | feed_type = Rss201rev2Feed | ||
4682 | 19 | title = 'History for all articles' | 20 | title = 'History for all articles' |
4684 | 20 | link = '/wiki/' | 21 | link = '/wiki/feeds/rss' |
4685 | 21 | description = 'Recent changes in wiki' | 22 | description = 'Recent changes in wiki' |
4686 | 22 | 23 | ||
4687 | 23 | def __init__(self, request, | 24 | def __init__(self, request, |
4688 | @@ -49,37 +50,21 @@ | |||
4689 | 49 | """ | 50 | """ |
4690 | 50 | return item.modified | 51 | return item.modified |
4691 | 51 | 52 | ||
4696 | 52 | 53 | def item_author_name(self, item): | |
4697 | 53 | class AtomHistoryFeed(atom.Feed): | 54 | """ |
4698 | 54 | 55 | Takes the object returned by get_object and returns the feeds's | |
4699 | 55 | feed_title = 'History for all articles' | 56 | auhor's name as a Python string |
4700 | 57 | """ | ||
4701 | 58 | if item.is_anonymous_change(): | ||
4702 | 59 | return _("Anonymous") | ||
4703 | 60 | return item.editor.username | ||
4704 | 61 | |||
4705 | 62 | |||
4706 | 63 | class AtomHistoryFeed(RssHistoryFeed): | ||
4707 | 64 | |||
4708 | 65 | feed_type = Atom1Feed | ||
4709 | 56 | feed_subtitle = 'Recent changes in wiki' | 66 | feed_subtitle = 'Recent changes in wiki' |
4736 | 57 | 67 | link = '/wiki/feeds/atom' | |
4711 | 58 | def __init__(self, request, | ||
4712 | 59 | group_slug=None, group_slug_field=None, group_qs=None, | ||
4713 | 60 | article_qs=ALL_ARTICLES, changes_qs=ALL_CHANGES, | ||
4714 | 61 | extra_context=None, | ||
4715 | 62 | title_template = u'feeds/history_title.html', | ||
4716 | 63 | description_template = u'feeds/history_description.html', | ||
4717 | 64 | *args, **kw): | ||
4718 | 65 | |||
4719 | 66 | if group_slug is not None: | ||
4720 | 67 | group = get_object_or_404(group_qs, | ||
4721 | 68 | **{group_slug_field : group_slug}) | ||
4722 | 69 | self.changes_qs = changes_qs.filter(article__content_type=get_ct(group), | ||
4723 | 70 | article__object_id=group.id) | ||
4724 | 71 | else: | ||
4725 | 72 | self.changes_qs = changes_qs | ||
4726 | 73 | |||
4727 | 74 | self.title_template = get_template(title_template) | ||
4728 | 75 | self.description_template = get_template(description_template) | ||
4729 | 76 | super(AtomHistoryFeed, self).__init__('', request) | ||
4730 | 77 | |||
4731 | 78 | def feed_id(self): | ||
4732 | 79 | return "feed_id" | ||
4733 | 80 | |||
4734 | 81 | def items(self): | ||
4735 | 82 | return self.changes_qs.order_by('-modified')[:30] | ||
4737 | 83 | 68 | ||
4738 | 84 | def item_id(self, item): | 69 | def item_id(self, item): |
4739 | 85 | return "%s" % item.id | 70 | return "%s" % item.id |
4740 | @@ -103,9 +88,19 @@ | |||
4741 | 103 | c = Context({'obj' : item,}) | 88 | c = Context({'obj' : item,}) |
4742 | 104 | return ({'type': 'html'}, self.description_template.render(c)) | 89 | return ({'type': 'html'}, self.description_template.render(c)) |
4743 | 105 | 90 | ||
4744 | 91 | def item_author_name(self, item): | ||
4745 | 92 | """ | ||
4746 | 93 | Takes the object returned by get_object and returns the feeds's | ||
4747 | 94 | auhor's name as a Python string | ||
4748 | 95 | """ | ||
4749 | 96 | if item.is_anonymous_change(): | ||
4750 | 97 | return _("Anonymous") | ||
4751 | 98 | return item.editor.username | ||
4752 | 99 | |||
4753 | 106 | 100 | ||
4754 | 107 | class RssArticleHistoryFeed(Feed): | 101 | class RssArticleHistoryFeed(Feed): |
4755 | 108 | 102 | ||
4756 | 103 | feed_type = Rss201rev2Feed | ||
4757 | 109 | def __init__(self, title, request, | 104 | def __init__(self, title, request, |
4758 | 110 | group_slug=None, group_slug_field=None, group_qs=None, | 105 | group_slug=None, group_slug_field=None, group_qs=None, |
4759 | 111 | article_qs=ALL_ARTICLES, changes_qs=ALL_CHANGES, | 106 | article_qs=ALL_ARTICLES, changes_qs=ALL_CHANGES, |
4760 | @@ -150,27 +145,8 @@ | |||
4761 | 150 | return item.modified | 145 | return item.modified |
4762 | 151 | 146 | ||
4763 | 152 | 147 | ||
4785 | 153 | class AtomArticleHistoryFeed(atom.Feed): | 148 | class AtomArticleHistoryFeed(RssArticleHistoryFeed): |
4786 | 154 | 149 | feed_type = Atom1Feed | |
4766 | 155 | def __init__(self, title, request, | ||
4767 | 156 | group_slug=None, group_slug_field=None, group_qs=None, | ||
4768 | 157 | article_qs=ALL_ARTICLES, changes_qs=ALL_CHANGES, | ||
4769 | 158 | extra_context=None, | ||
4770 | 159 | title_template = u'feeds/history_title.html', | ||
4771 | 160 | description_template = u'feeds/history_description.html', | ||
4772 | 161 | *args, **kw): | ||
4773 | 162 | |||
4774 | 163 | if group_slug is not None: | ||
4775 | 164 | group = get_object_or_404(group_qs, | ||
4776 | 165 | **{group_slug_field : group_slug}) | ||
4777 | 166 | self.article_qs = article_qs.filter(content_type=get_ct(group), | ||
4778 | 167 | object_id=group.id) | ||
4779 | 168 | else: | ||
4780 | 169 | self.article_qs = article_qs | ||
4781 | 170 | |||
4782 | 171 | self.title_template = get_template(title_template) | ||
4783 | 172 | self.description_template = get_template(description_template) | ||
4784 | 173 | super(AtomArticleHistoryFeed, self).__init__('', request) | ||
4787 | 174 | 150 | ||
4788 | 175 | def get_object(self, bits): | 151 | def get_object(self, bits): |
4789 | 176 | # We work around a bug here which is likely in atomformat.py; | 152 | # We work around a bug here which is likely in atomformat.py; |
4790 | @@ -190,9 +166,6 @@ | |||
4791 | 190 | def feed_id(self): | 166 | def feed_id(self): |
4792 | 191 | return "feed_id" | 167 | return "feed_id" |
4793 | 192 | 168 | ||
4794 | 193 | def items(self, obj): | ||
4795 | 194 | return ChangeSet.objects.filter(article__id__exact=obj.id).order_by('-modified')[:30] | ||
4796 | 195 | |||
4797 | 196 | def item_id(self, item): | 169 | def item_id(self, item): |
4798 | 197 | return "%s" % item.id | 170 | return "%s" % item.id |
4799 | 198 | 171 | ||
4800 | 199 | 172 | ||
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 | 1 | #!/usr/bin/env python -tt | ||
4808 | 2 | # encoding: utf-8 | ||
4809 | 3 | # | ||
4810 | 4 | # File: wlggz/admin.py | ||
4811 | 5 | # | ||
4812 | 6 | # Created 2010-06-03 by Timo Wingender <timo.wingender@gmx.de> | ||
4813 | 7 | # | ||
4814 | 8 | # Last Modified: $Date$ | ||
4815 | 9 | # | ||
4816 | 10 | |||
4817 | 11 | from django.utils.translation import ugettext_lazy as _ | ||
4818 | 12 | from django.contrib import admin | ||
4819 | 13 | from models import GGZAuth | ||
4820 | 14 | |||
4821 | 15 | class GGZAdmin(admin.ModelAdmin): | ||
4822 | 16 | list_display = ['user', 'password', 'permissions', 'lastlogin'] | ||
4823 | 17 | list_per_page = 20 | ||
4824 | 18 | ordering = ['-user'] | ||
4825 | 19 | search_fields = ['user__username', 'user__first_name', 'user__last_name'] | ||
4826 | 20 | fieldsets = ( | ||
4827 | 21 | (None, { | ||
4828 | 22 | 'fields': ('user', 'password', 'permissions') | ||
4829 | 23 | } | ||
4830 | 24 | ), | ||
4831 | 25 | ) | ||
4832 | 26 | |||
4833 | 27 | admin.site.register(GGZAuth, GGZAdmin) | ||
4834 | 0 | 28 | ||
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 | 1 | """ | ||
4840 | 2 | Details about AutoOneToOneField: | ||
4841 | 3 | http://softwaremaniacs.org/blog/2007/03/07/auto-one-to-one-field/ | ||
4842 | 4 | """ | ||
4843 | 5 | |||
4844 | 6 | from StringIO import StringIO | ||
4845 | 7 | import logging | ||
4846 | 8 | |||
4847 | 9 | from django.db.models import OneToOneField | ||
4848 | 10 | from django.db.models.fields.related import SingleRelatedObjectDescriptor | ||
4849 | 11 | from django.db import models | ||
4850 | 12 | from django.core.files.uploadedfile import SimpleUploadedFile | ||
4851 | 13 | |||
4852 | 14 | |||
4853 | 15 | class AutoSingleRelatedObjectDescriptor(SingleRelatedObjectDescriptor): | ||
4854 | 16 | def __get__(self, instance, instance_type=None): | ||
4855 | 17 | try: | ||
4856 | 18 | return super(AutoSingleRelatedObjectDescriptor, self).__get__(instance, instance_type) | ||
4857 | 19 | except self.related.model.DoesNotExist: | ||
4858 | 20 | obj = self.related.model(**{self.related.field.name: instance}) | ||
4859 | 21 | obj.save() | ||
4860 | 22 | return obj | ||
4861 | 23 | |||
4862 | 24 | |||
4863 | 25 | class AutoOneToOneField(OneToOneField): | ||
4864 | 26 | """ | ||
4865 | 27 | OneToOneField creates dependent object on first request from parent object | ||
4866 | 28 | if dependent oject has not created yet. | ||
4867 | 29 | """ | ||
4868 | 30 | |||
4869 | 31 | def contribute_to_related_class(self, cls, related): | ||
4870 | 32 | setattr(cls, related.get_accessor_name(), AutoSingleRelatedObjectDescriptor(related)) | ||
4871 | 33 | #if not cls._meta.one_to_one_field: | ||
4872 | 34 | #cls._meta.one_to_one_field = self | ||
4873 | 35 | |||
4874 | 36 | |||
4875 | 37 | class ExtendedImageField(models.ImageField): | ||
4876 | 38 | """ | ||
4877 | 39 | Extended ImageField that can resize image before saving it. | ||
4878 | 40 | """ | ||
4879 | 41 | def __init__(self, *args, **kwargs): | ||
4880 | 42 | self.width = kwargs.pop('width', None) | ||
4881 | 43 | self.height = kwargs.pop('height', None) | ||
4882 | 44 | super(ExtendedImageField, self).__init__(*args, **kwargs) | ||
4883 | 45 | |||
4884 | 46 | |||
4885 | 47 | def save_form_data(self, instance, data): | ||
4886 | 48 | if data and self.width and self.height: | ||
4887 | 49 | if instance.avatar: | ||
4888 | 50 | instance.avatar.delete() | ||
4889 | 51 | |||
4890 | 52 | content = self.resize_image(data.read(), width=self.width, height=self.height) | ||
4891 | 53 | data = SimpleUploadedFile(instance.user.username + ".png", content, data.content_type) | ||
4892 | 54 | super(ExtendedImageField, self).save_form_data(instance, data) | ||
4893 | 55 | |||
4894 | 56 | |||
4895 | 57 | def resize_image(self, rawdata, width, height): | ||
4896 | 58 | """ | ||
4897 | 59 | Resize image to fit it into (width, height) box. | ||
4898 | 60 | """ | ||
4899 | 61 | |||
4900 | 62 | try: | ||
4901 | 63 | import Image | ||
4902 | 64 | except ImportError: | ||
4903 | 65 | from PIL import Image | ||
4904 | 66 | |||
4905 | 67 | image = Image.open(StringIO(rawdata)) | ||
4906 | 68 | try: | ||
4907 | 69 | oldw, oldh = image.size | ||
4908 | 70 | |||
4909 | 71 | if oldw > width or oldh > height: | ||
4910 | 72 | if oldw >= oldh: | ||
4911 | 73 | x = int(round((oldw - oldh) / 2.0)) | ||
4912 | 74 | image = image.crop((x, 0, (x + oldh) - 1, oldh - 1)) | ||
4913 | 75 | else: | ||
4914 | 76 | y = int(round((oldh - oldw) / 2.0)) | ||
4915 | 77 | image = image.crop((0, y, oldw - 1, (y + oldw) - 1)) | ||
4916 | 78 | image = image.resize((width, height), resample=Image.ANTIALIAS) | ||
4917 | 79 | except Exception, err: | ||
4918 | 80 | logging.error(err) | ||
4919 | 81 | return '' | ||
4920 | 82 | |||
4921 | 83 | string = StringIO() | ||
4922 | 84 | image.save(string, format='PNG') | ||
4923 | 85 | return string.getvalue() | ||
4924 | 0 | 86 | ||
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 | 1 | #!/usr/bin/env python -tt | ||
4930 | 2 | # encoding: utf-8 | ||
4931 | 3 | # | ||
4932 | 4 | # Created by Timo Wingender <timo.wingender@gmx.de> on 2010-06-02. | ||
4933 | 5 | # | ||
4934 | 6 | # Last Modified: $Date$ | ||
4935 | 7 | # | ||
4936 | 8 | |||
4937 | 9 | from django import forms | ||
4938 | 10 | from models import GGZAuth | ||
4939 | 11 | from django.utils.translation import ugettext_lazy as _ | ||
4940 | 12 | |||
4941 | 13 | import hashlib | ||
4942 | 14 | import base64 | ||
4943 | 15 | import settings | ||
4944 | 16 | import re | ||
4945 | 17 | |||
4946 | 18 | class EditGGZForm(forms.ModelForm): | ||
4947 | 19 | password = forms.CharField(label=_(u'GGZ password'), widget = forms.PasswordInput(render_value = False), required=True) | ||
4948 | 20 | |||
4949 | 21 | class Meta: | ||
4950 | 22 | model = GGZAuth | ||
4951 | 23 | fields = [ 'password', ] | ||
4952 | 24 | |||
4953 | 25 | def __init__(self, *args, **kwargs): | ||
4954 | 26 | instance = kwargs.pop("instance") | ||
4955 | 27 | |||
4956 | 28 | print "instance: %s, kwargs: %s" % (instance, kwargs) | ||
4957 | 29 | super(EditGGZForm, self).__init__(instance=instance, *args,**kwargs) | ||
4958 | 30 | |||
4959 | 31 | def clean_password(self): | ||
4960 | 32 | pw = self.cleaned_data['password'] | ||
4961 | 33 | print "pw: %s" % (pw) | ||
4962 | 34 | pw_hash = hashlib.sha1(pw).digest() | ||
4963 | 35 | pw_base64 = base64.standard_b64encode(pw_hash) | ||
4964 | 36 | print "sha1: %s" % (pw_hash) | ||
4965 | 37 | print "base: %s" % (pw_base64) | ||
4966 | 38 | return pw_base64 | ||
4967 | 39 | |||
4968 | 40 | |||
4969 | 41 | def save(self): | ||
4970 | 42 | super(EditGGZForm, self).save() | ||
4971 | 43 | |||
4972 | 0 | 44 | ||
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 | 1 | #!/usr/bin/env python -tt | ||
4978 | 2 | # encoding: utf-8 | ||
4979 | 3 | # | ||
4980 | 4 | # Created by Timo Wingender <timo.wingender@gmx.de> on 2010-06-03. | ||
4981 | 5 | # | ||
4982 | 6 | # Last Modified: $Date$ | ||
4983 | 7 | # | ||
4984 | 8 | |||
4985 | 9 | |||
4986 | 10 | # This is an auto-generated and eddited representation for the ggzd tables. | ||
4987 | 11 | # | ||
4988 | 12 | |||
4989 | 13 | from django.db import models | ||
4990 | 14 | from django.db.models import OneToOneField, ForeignKey | ||
4991 | 15 | from django.contrib.auth.models import User | ||
4992 | 16 | from django.core.urlresolvers import reverse | ||
4993 | 17 | from django.utils.safestring import mark_safe | ||
4994 | 18 | |||
4995 | 19 | import datetime | ||
4996 | 20 | |||
4997 | 21 | def ggz_userlink(user): | ||
4998 | 22 | data = u'<a href="%s">%s</a>' % (\ | ||
4999 | 23 | reverse('wlggz_userstats', args=[user.username]), user.username) | ||
5000 | 24 | return mark_safe(data) |