0001-misc-remove-django-reversion-dependency-41641.patch
debian/control | ||
---|---|---|
12 | 12 |
python3-gadjo, |
13 | 13 |
python3-requests (>= 2.11), |
14 | 14 |
python3-django-haystack (>= 2.4.0), |
15 |
python3-django-reversion (>= 2.0.12), |
|
16 | 15 |
python3-django-taggit (>= 0.17.4), |
17 | 16 |
libjs-pdf (<< 1.1) |
18 | 17 |
Recommends: python3-django-mellon |
requirements.txt | ||
---|---|---|
3 | 3 |
django-select2 |
4 | 4 |
-e git+https://git.entrouvert.org/debian/django-ckeditor.git#egg=django_ckeditor |
5 | 5 |
django-haystack |
6 |
django-reversion |
|
7 | 6 |
django-taggit |
setup.py | ||
---|---|---|
112 | 112 |
'gadjo', |
113 | 113 |
'django-ckeditor<4.5.4', |
114 | 114 |
'django-haystack<2.8', |
115 |
'django-reversion>=2.0,<3', |
|
116 | 115 |
'django-taggit', |
117 | 116 |
'djangorestframework>=3.3, <3.8', |
118 | 117 |
'requests', |
welco/kb/models.py | ||
---|---|---|
19 | 19 |
from django.utils.translation import ugettext_lazy as _ |
20 | 20 | |
21 | 21 |
from ckeditor.fields import RichTextField |
22 |
import reversion |
|
23 | 22 |
from taggit.managers import TaggableManager |
24 | 23 | |
25 | 24 | |
26 |
@reversion.register |
|
27 | 25 |
class Page(models.Model): |
28 | 26 |
title = models.CharField(_('Title'), max_length=200) |
29 | 27 |
slug = models.SlugField(_('Slug')) |
welco/kb/templates/kb/page_detail.html | ||
---|---|---|
5 | 5 |
<h2>{% trans 'Knowledge Base' %} - {{ object.title }}</h2> |
6 | 6 |
{% if can_manage %} |
7 | 7 |
<a rel="popup" href="{% url 'kb-page-delete' slug=object.slug %}">{% trans 'Delete' %}</a> |
8 |
<a href="{% url 'kb-page-history' slug=object.slug %}">{% trans 'History' %}</a> |
|
9 | 8 |
<a href="{% url 'kb-page-edit' slug=object.slug %}">{% trans 'Edit' %}</a> |
10 | 9 |
{% endif %} |
11 | 10 |
{% endblock %} |
welco/kb/templates/kb/page_history.html | ||
---|---|---|
1 |
{% extends "kb/page_detail.html" %} |
|
2 |
{% load i18n %} |
|
3 | ||
4 |
{% block appbar %} |
|
5 |
<h2>{% trans 'Knowledge Base' %} - {{ object.title }}</h2> |
|
6 |
<a href="{% url 'kb-page-view' slug=object.slug %}">{% trans 'Back to page' %}</a> |
|
7 |
{% endblock %} |
|
8 | ||
9 |
{% block breadcrumb %} |
|
10 |
{{ block.super }} |
|
11 |
<a href=".">{% trans 'History' %}</a> |
|
12 |
{% endblock %} |
|
13 | ||
14 |
{% block content %} |
|
15 | ||
16 |
<div id="page-history"> |
|
17 |
<ul> |
|
18 |
{% for version in versions_list %} |
|
19 |
<li>{{ version.revision.date_created }}, <a href="{% url 'kb-page-version' slug=object.slug version=version.id %}">{% trans 'view' %}</a></li> |
|
20 |
{% endfor %} |
|
21 |
</ul> |
|
22 |
</div> |
|
23 | ||
24 |
{% endblock %} |
welco/kb/templates/kb/page_version.html | ||
---|---|---|
1 |
{% extends "kb/page_detail.html" %} |
|
2 |
{% load i18n %} |
|
3 | ||
4 |
{% block appbar %} |
|
5 |
<h2>{% trans 'Knowledge Base' %} - {{ object.title }}</h2> |
|
6 |
<a href="{% url 'kb-page-view' slug=object.slug %}">{% trans 'Back to page' %}</a> |
|
7 |
<a href="{% url 'kb-page-history' slug=object.slug %}">{% trans 'History' %}</a> |
|
8 |
{% endblock %} |
|
9 | ||
10 |
{% block content %} |
|
11 | ||
12 |
<div class="old-version warning-notice"> |
|
13 |
<p> |
|
14 |
{% trans 'Warning: this is an old version of this page.' %} |
|
15 |
</p> |
|
16 | ||
17 |
<form method="POST"> |
|
18 |
{% csrf_token %} |
|
19 |
<button>{% trans 'Revert to this version' %}</button> |
|
20 |
</form> |
|
21 |
</div> |
|
22 | ||
23 |
{{block.super}} |
|
24 | ||
25 |
{% endblock %} |
|
26 |
welco/kb/views.py | ||
---|---|---|
31 | 31 |
from haystack.forms import SearchForm |
32 | 32 |
from haystack.generic_views import SearchView |
33 | 33 |
from haystack.query import SearchQuerySet |
34 |
from reversion.models import Version |
|
35 | 34 |
from taggit.models import Tag |
36 | 35 | |
37 | 36 |
from .models import Page |
... | ... | |
134 | 133 |
page_search = login_required(PageSearchView.as_view()) |
135 | 134 | |
136 | 135 | |
137 |
class PageHistoryView(DetailView): |
|
138 |
model = Page |
|
139 |
template_name = 'kb/page_history.html' |
|
140 | ||
141 |
def dispatch(self, request, *args, **kwargs): |
|
142 |
check_request_perms(request) |
|
143 |
return super(PageHistoryView, self).dispatch(request, *args, **kwargs) |
|
144 | ||
145 |
def get_context_data(self, **kwargs): |
|
146 |
context = super(PageHistoryView, self).get_context_data(**kwargs) |
|
147 |
context['versions_list'] = Version.objects.get_for_object(self.get_object()) |
|
148 |
return context |
|
149 | ||
150 |
page_history = login_required(PageHistoryView.as_view()) |
|
151 | ||
152 | ||
153 |
class PageVersionView(DetailView): |
|
154 |
model = Page |
|
155 |
template_name = 'kb/page_version.html' |
|
156 | ||
157 |
def dispatch(self, request, *args, **kwargs): |
|
158 |
check_request_perms(request) |
|
159 |
return super(PageVersionView, self).dispatch(request, *args, **kwargs) |
|
160 | ||
161 |
def get_context_data(self, **kwargs): |
|
162 |
context = super(PageVersionView, self).get_context_data(**kwargs) |
|
163 |
context['object'] = Version.objects.get(id=self.kwargs.get('version')).object |
|
164 |
self.kwargs.get('version') |
|
165 |
return context |
|
166 | ||
167 |
def post(self, request, *args, **kwargs): |
|
168 |
version = Version.objects.get(id=self.kwargs.get('version')) |
|
169 |
version.revision.revert() |
|
170 |
return HttpResponseRedirect(self.get_object().get_absolute_url()) |
|
171 | ||
172 |
page_version = login_required(PageVersionView.as_view()) |
|
173 | ||
174 | ||
175 | 136 |
class KbZone(TemplateView): |
176 | 137 |
template_name = 'kb/zone.html' |
177 | 138 |
welco/settings.py | ||
---|---|---|
41 | 41 |
'django.contrib.staticfiles', |
42 | 42 |
'ckeditor', |
43 | 43 |
'haystack', |
44 |
'reversion', |
|
45 | 44 |
'taggit', |
46 | 45 |
'welco.sources.counter', |
47 | 46 |
'welco.sources.mail', |
... | ... | |
61 | 60 |
'django.contrib.auth.middleware.AuthenticationMiddleware', |
62 | 61 |
'django.contrib.messages.middleware.MessageMiddleware', |
63 | 62 |
'django.middleware.clickjacking.XFrameOptionsMiddleware', |
64 |
'reversion.middleware.RevisionMiddleware', |
|
65 | 63 |
) |
66 | 64 | |
67 | 65 |
ROOT_URLCONF = 'welco.urls' |
welco/urls.py | ||
---|---|---|
53 | 53 |
url(r'^ajax/kb/(?P<slug>[\w-]+)/$', welco.kb.views.page_detail_fragment, name='kb-page-fragment'), |
54 | 54 |
url(r'^kb/(?P<slug>[\w-]+)/edit$', welco.kb.views.page_edit, name='kb-page-edit'), |
55 | 55 |
url(r'^kb/(?P<slug>[\w-]+)/delete$', welco.kb.views.page_delete, name='kb-page-delete'), |
56 |
url(r'^kb/(?P<slug>[\w-]+)/history$', welco.kb.views.page_history, name='kb-page-history'), |
|
57 |
url(r'^kb/(?P<slug>[\w-]+)/version/(?P<version>\w+)/$', welco.kb.views.page_version, name='kb-page-version'), |
|
58 | 56 | |
59 | 57 |
url(r'^ajax/contacts$', welco.contacts.views.zone, name='contacts-zone'), |
60 | 58 |
url(r'^contacts/search/json/$', welco.contacts.views.search_json, name='contacts-search-json'), |
61 |
- |