Skip to content
This repository
  • 4 commits
  • 9 files changed
  • 0 comments
  • 1 contributor
0  __init__.py b/djiki/contrib/__init__.py
No changes.
10  djiki/contrib/views.py
... ...
@@ -0,0 +1,10 @@
  1
+from django.db.models import Max
  2
+from django.template.response import TemplateResponse
  3
+
  4
+from .. import models
  5
+
  6
+def latest_changes(request, limit=50):
  7
+	latest = models.Page.objects\
  8
+			.annotate(latest_change=Max('revisions__created'))\
  9
+			.order_by('-latest_change')[:limit]
  10
+	return TemplateResponse(request, 'djiki/latest_changes.html', {'latest': latest})
BIN  djiki/locale/pl/LC_MESSAGES/django.mo
Binary file not shown
81  djiki/locale/pl/LC_MESSAGES/django.po
@@ -7,8 +7,8 @@ msgid ""
7 7
 msgstr ""
8 8
 "Project-Id-Version: djiki\n"
9 9
 "Report-Msgid-Bugs-To: \n"
10  
-"POT-Creation-Date: 2011-03-20 04:24+0100\n"
11  
-"PO-Revision-Date: 2011-03-20 04:24+0100\n"
  10
+"POT-Creation-Date: 2013-03-11 21:01+0100\n"
  11
+"PO-Revision-Date: 2013-03-11 21:02+0100\n"
12 12
 "Last-Translator: Michał Sałaban <michal@salaban.info>\n"
13 13
 "Language-Team: Michał Sałaban <michal@salaban.info>\n"
14 14
 "Language: \n"
@@ -20,7 +20,7 @@ msgstr ""
20 20
 
21 21
 #: forms.py:40
22 22
 msgid "Somebody else has modified this page in the meantime. It is not possible to merge all the changes automatically. Stash your version somewhere else and reapply with the latest revision."
23  
-msgstr "Podczas Twojej edycji ktoś dokonal zmian na tej stronie. Nie było możliwe automatyczne połączenie obu wersji. Zachowaj wprowadzoną treść w innym miejscu, a następnie nanieś swoje zmiany ręcznie biorąc ostatnią wersję jako podstawę."
  23
+msgstr "Podczas Twojej edycji ktoś dokonał zmian na tej stronie. Nie było możliwe automatyczne połączenie obu wersji. Zachowaj wprowadzoną treść w innym miejscu, a następnie nanieś swoje zmiany ręcznie biorąc ostatnią wersję jako podstawę."
24 24
 
25 25
 #: forms.py:76
26 26
 msgid "Somebody else has modified this image in the meantime. Please review these changes before uploading your version."
@@ -44,14 +44,16 @@ msgid "Created"
44 44
 msgstr "Utworzono"
45 45
 
46 46
 #: models.py:26
47  
-#: templates/djiki/history.html:14
  47
+#: templates/djiki/history.html:15
48 48
 #: templates/djiki/image_history.html:12
  49
+#: templates/djiki/latest_changes.html:13
49 50
 msgid "Author"
50 51
 msgstr "Autor"
51 52
 
52 53
 #: models.py:27
53  
-#: templates/djiki/history.html:15
  54
+#: templates/djiki/history.html:16
54 55
 #: templates/djiki/image_history.html:14
  56
+#: templates/djiki/latest_changes.html:14
55 57
 msgid "Description"
56 58
 msgstr "Opis"
57 59
 
@@ -67,68 +69,69 @@ msgstr "Treść"
67 69
 msgid "File"
68 70
 msgstr "Plik"
69 71
 
70  
-#: views.py:32
  72
+#: views.py:38
71 73
 #, python-format
72 74
 msgid "The version you are viewing is not the latest one, but represents an older revision of this page, which may have been significantly modified. If it is not what you intended to view, <a href=\"%(url)s\">proceed to the latest version</a>."
73 75
 msgstr "Wersja, którą oglądasz, nie jest najnowszą, lecz przedstawia historyczny obraz tej strony. Od tego czasu treść mogła zostać znacząco zmieniona. Jeśli chcesz obejrzeć aktualną treść, <a href=\"%(url)s\">przejdź do najnowszej wersji</a>."
74 76
 
75  
-#: views.py:71
  77
+#: views.py:80
76 78
 msgid "The content you see on this page is shown only as a preview. <strong>No changes have been saved yet.</strong> Please review the modifications and use the <em>Save</em> button to store them permanently."
77 79
 msgstr "Treść przedstawiona na tej stronie ma formę podglądu. <strong>Twoje zmiany nie zostały jeszcze zapisane.</strong> Sprawdź poprawność swoich modyfikacji, a następnie użyj przycisku <em>Zapisz</em> by zachować je na stałe."
78 80
 
79  
-#: views.py:126
  81
+#: views.py:145
80 82
 #, python-format
81 83
 msgid "Reverted to revision of %(time)s by %(user)s."
82 84
 msgstr "Cofnięto do wersji z %(time)s autorstwa %(user)s."
83 85
 
84  
-#: views.py:129
  86
+#: views.py:148
85 87
 #, python-format
86 88
 msgid "Reverted to anonymous revision of %(time)s."
87 89
 msgstr "Cofnięto do anonimowej wersji z %(time)s."
88 90
 
89  
-#: views.py:155
  91
+#: views.py:175
90 92
 #, python-format
91 93
 msgid "Undid revision of %(time)s by %(user)s."
92 94
 msgstr "Cofnięto zmiany z %(time)s autorstwa %(user)s."
93 95
 
94  
-#: views.py:158
  96
+#: views.py:178
95 97
 #, python-format
96 98
 msgid "Undid anonymous revision of %(time)s."
97 99
 msgstr "Cofnięto anonimowe zmiany z %(time)s."
98 100
 
99  
-#: views.py:170
  101
+#: views.py:190
100 102
 msgid "It was impossible to automatically undo the change you have selected. Perhaps the page has been modified too much in the meantime. Review the following content comparison, which represents the change you tried to undo, and apply the changes manually to the latest revision."
101 103
 msgstr "Nie dało się automatycznie wycofać wskazanej przez Ciebie zmiany. Najprawdopodobniej od momentu ich wprowadzenia treść strony uległa zbyt dużym modyfikacjom. Przejrzyj poniższe zestawienie, będące obrazem zmiany wskazanej przez Ciebie do usunięcia, a następnie nanieś poprawki ręcznie na najświeższej wersji strony."
102 104
 
103  
-#: templates/djiki/base_image.html:3
104  
-#: templates/djiki/base_image.html.py:6
  105
+#: templates/djiki/base_image.html:4
  106
+#: templates/djiki/base_image.html.py:7
105 107
 msgid "Image"
106 108
 msgstr "Obraz"
107 109
 
108  
-#: templates/djiki/base_image.html:7
  110
+#: templates/djiki/base_image.html:8
109 111
 msgid "Edit image"
110 112
 msgstr "Edytuj obraz"
111 113
 
112  
-#: templates/djiki/base_image.html:8
113  
-#: templates/djiki/base_page.html:8
  114
+#: templates/djiki/base_image.html:9
  115
+#: templates/djiki/base_page.html:9
114 116
 msgid "History"
115 117
 msgstr "Historia"
116 118
 
117  
-#: templates/djiki/base_image.html:9
118  
-#: templates/djiki/base_page.html:10
  119
+#: templates/djiki/base_image.html:10
  120
+#: templates/djiki/base_page.html:11
119 121
 msgid "Upload"
120 122
 msgstr "Wyślij plik"
121 123
 
122  
-#: templates/djiki/base_page.html:6
  124
+#: templates/djiki/base_page.html:7
  125
+#: templates/djiki/latest_changes.html:11
123 126
 msgid "Page"
124 127
 msgstr "Strona"
125 128
 
126  
-#: templates/djiki/base_page.html:7
  129
+#: templates/djiki/base_page.html:8
127 130
 #: templates/djiki/edit.html:3
128 131
 msgid "Edit page"
129 132
 msgstr "Edytuj stronę"
130 133
 
131  
-#: templates/djiki/base_page.html:9
  134
+#: templates/djiki/base_page.html:10
132 135
 msgid "Get source"
133 136
 msgstr "Pobierz źródło"
134 137
 
@@ -154,50 +157,53 @@ msgstr "Zapisz"
154 157
 msgid "Preview"
155 158
 msgstr "Podgląd"
156 159
 
157  
-#: templates/djiki/history.html:3
  160
+#: templates/djiki/history.html:4
158 161
 msgid "Page history"
159 162
 msgstr "Historia strony"
160 163
 
161  
-#: templates/djiki/history.html:12
  164
+#: templates/djiki/history.html:13
162 165
 #: templates/djiki/image_history.html:11
  166
+#: templates/djiki/latest_changes.html:12
163 167
 msgid "Modification time"
164 168
 msgstr "Czas modyfikacji"
165 169
 
166  
-#: templates/djiki/history.html:13
  170
+#: templates/djiki/history.html:14
167 171
 msgid "Compare"
168 172
 msgstr "Porównaj"
169 173
 
170  
-#: templates/djiki/history.html:16
  174
+#: templates/djiki/history.html:17
171 175
 msgid "Operations"
172 176
 msgstr "Operacje"
173 177
 
174  
-#: templates/djiki/history.html:23
  178
+#: templates/djiki/history.html:24
175 179
 msgid "View"
176 180
 msgstr "Obejrzyj"
177 181
 
178  
-#: templates/djiki/history.html:25
  182
+#: templates/djiki/history.html:26
  183
+#: templates/djiki/latest_changes.html:24
179 184
 #, python-format
180 185
 msgid "%(timesince)s ago"
181 186
 msgstr "%(timesince)s temu"
182 187
 
183  
-#: templates/djiki/history.html:33
  188
+#: templates/djiki/history.html:34
184 189
 #: templates/djiki/image_history.html:23
  190
+#: templates/djiki/latest_changes.html:28
185 191
 msgid "anonymous"
186 192
 msgstr "anonim"
187 193
 
188  
-#: templates/djiki/history.html:37
  194
+#: templates/djiki/history.html:38
189 195
 msgid "Revert to this version by discarding all later modifications."
190 196
 msgstr "Przywróć tą wersję odrzucając wszystkie późniejsze zmiany."
191 197
 
192  
-#: templates/djiki/history.html:37
  198
+#: templates/djiki/history.html:38
193 199
 msgid "revert"
194 200
 msgstr "przywróć"
195 201
 
196  
-#: templates/djiki/history.html:38
  202
+#: templates/djiki/history.html:39
197 203
 msgid "Undo this revision."
198 204
 msgstr "Cofnij tą zmianę."
199 205
 
200  
-#: templates/djiki/history.html:38
  206
+#: templates/djiki/history.html:39
201 207
 msgid "undo"
202 208
 msgstr "cofnij"
203 209
 
@@ -214,14 +220,19 @@ msgstr "Historia obrazu"
214 220
 msgid "Thumbnail"
215 221
 msgstr "Miniatura"
216 222
 
217  
-#: templates/djiki/not_found.html:5
  223
+#: templates/djiki/latest_changes.html:3
  224
+#: templates/djiki/latest_changes.html:7
  225
+msgid "Latest changes"
  226
+msgstr "Ostatnie zmiany"
  227
+
  228
+#: templates/djiki/not_found.html:6
218 229
 #, python-format
219 230
 msgid ""
220 231
 "The page with title <strong>%(title)s</strong> does not exist.\n"
221 232
 "Please make sure your spelling is correct.\n"
222 233
 msgstr "Strona o tytule <strong>%(title)s</strong> nie istnieje. Upewnij się, że podany tytuł jest prawidłowy.\n"
223 234
 
224  
-#: templates/djiki/not_found.html:10
  235
+#: templates/djiki/not_found.html:11
225 236
 #, python-format
226 237
 msgid ""
227 238
 "You may also <a href=\"%(edit_url)s\">create a new page</a>\n"
37  djiki/templates/djiki/latest_changes.html
... ...
@@ -0,0 +1,37 @@
  1
+{% extends 'djiki/base.html' %}
  2
+{% load i18n djiki_tags %}
  3
+{% block title %}{% trans "Latest changes" %} | {{ block.super }}{% endblock %}
  4
+{% block djiki_main %}
  5
+<div class="page latest grid_12">
  6
+	<div class="content">
  7
+		<h1>{% trans "Latest changes" %}</h1>
  8
+		<table>
  9
+			<thead>
  10
+				<tr>
  11
+					<th>{% trans "Page" %}</th>
  12
+					<th>{% trans "Modification time" %}</th>
  13
+					<th>{% trans "Author" %}</th>
  14
+					<th>{% trans "Description" %}</th>
  15
+				</tr>
  16
+			</thead>
  17
+			<tbody>
  18
+				{% for page in latest %}
  19
+				<tr>
  20
+					<td>
  21
+						<a href="{% url 'djiki-page-view' page.title|urlize_title %}">{{ page.title }}</a>
  22
+					</td>
  23
+					<td>
  24
+						{% blocktrans with page.latest_change|timesince as timesince %}{{ timesince }} ago{% endblocktrans %}
  25
+					</td>
  26
+					<td>
  27
+						{% if revision.author %}{{ page.last_revision.author }}
  28
+						{% else %}<em>{% trans "anonymous" %}</em>{% endif %}
  29
+					</td>
  30
+					<td>{{ page.last_revision.description }}</td>
  31
+				</tr>
  32
+				{% endfor %}
  33
+			</tbody>
  34
+		</table>
  35
+	</div>
  36
+</div>
  37
+{% endblock %}
2  djiki/views.py
@@ -2,7 +2,7 @@
2 2
 from django.contrib import messages
3 3
 from django.core.exceptions import PermissionDenied
4 4
 from django.core.urlresolvers import reverse
5  
-from django.http import HttpResponse, HttpResponseRedirect, HttpResponseForbidden, HttpResponseNotFound
  5
+from django.http import HttpResponse, HttpResponseRedirect, HttpResponseNotFound
6 6
 from django.shortcuts import get_object_or_404
7 7
 from django.template import RequestContext, loader
8 8
 from django.template.response import TemplateResponse
17  media/css/styles.css
@@ -100,15 +100,16 @@ fieldset {
100 100
 }
101 101
 
102 102
 /* styles for history screen */
103  
-.djiki .page.history .content table {
  103
+.djiki .page.history .content table, .djiki .latest .content table {
104 104
 	border-collapse: collapse;
105 105
 }
106  
-	.djiki .page.history .content table tr {
  106
+	.djiki .page.history .content table th,
  107
+	.djiki .page.history .content table td,
  108
+	.djiki .latest .content table th,
  109
+	.djiki .latest .content table td {
  110
+		padding: 1px 10px;
  111
+		border: 1px solid #eee;
107 112
 	}
108  
-		.djiki .page.history .content table th, .djiki .page.history .content table td {
109  
-			padding: 1px 10px;
110  
-			border: 1px solid #eee;
111  
-		}
112 113
 
113 114
 .djiki .page.diff .content .diff {
114 115
 	padding: 10px 20px;
@@ -138,3 +139,7 @@ fieldset {
138 139
 		padding: 0;
139 140
 		font-size: 80%;
140 141
 	}
  142
+#footer {
  143
+	padding-top: 1em;
  144
+	font-size: 75%;
  145
+}
5  templates/base.html
@@ -38,6 +38,11 @@
38 38
 	{% endif %}
39 39
 	{% endblock %}
40 40
 {% block page %}{% endblock %}
  41
+	<div id="footer" class="container_12">
  42
+		<div class="prefix_5 grid_2">
  43
+			[<a href="{% url 'latest-changes' %}">latest changes</a>]
  44
+		</div>
  45
+	</div>
41 46
 {% block google-analytics %}
42 47
 {% if GOOGLE_ANALYTICS_ID %}
43 48
 <script type="text/javascript">
3  urls.py
... ...
@@ -1,10 +1,11 @@
1 1
 from django.conf import settings
2  
-from django.conf.urls import patterns, include
  2
+from django.conf.urls import patterns, include, url
3 3
 from django.views.generic import RedirectView
4 4
 
5 5
 urlpatterns = patterns('',
6 6
 	(r'^$', RedirectView.as_view(url=u'/wiki/Main_Page')),
7 7
 	(r'^wiki/', include('djiki.urls')),
  8
+	url(r'^latest/', 'djiki.contrib.views.latest_changes', name='latest-changes'),
8 9
 	(r'^login/$', 'django.contrib.auth.views.login', {'template_name': 'login.html'}),
9 10
 )
10 11
 

No commit comments for this range

Something went wrong with that request. Please try again.