'panikdb.customtags',
'panikdb.stats',
'panikdb.poll',
+ 'panikdb.wiki',
'gadjo',
'combo.data',
'combo.profile',
<script src="{{ STATIC_URL }}js/combo.wiki.js"></script>
{% endblock %}
+{% block more-user-links %}
+{{ block.super }}
+{% if request.user.is_authenticated %}<a href="/wiki/newpage" rel="popup">Nouvelle page wiki</a>{% endif %}
+{% endblock %}
+
{% block content %}
<div class="section wiki-section">
<h3>{{ page.title }} {% if request.user.is_authenticated %}<label id="quickedit"><input type="checkbox"><span>Mode édition</span></label>{% endif %}</h3>
from .poll import views as poll_views
from .aa import views as aa_views
+from .wiki import views as wiki_views
from . import views
from combo.manager.urls import urlpatterns as combo_manager_urls
url(r'^vote/$', poll_views.vote, name='vote'),
url(r'^vote/results/$', poll_views.vote_results, name='vote-results'),
+ url(r'^wiki/newpage/$', wiki_views.new_page),
url(r'^wiki/', combo.public.views.page),
url(r'^ajax/cell/(?P<page_pk>\d+)/(?P<cell_reference>[\w_]+-\d+)/$',
combo.public.views.ajax_page_cell, name='combo-public-ajax-page-cell'),
--- /dev/null
+from django import forms
+from django.utils.translation import ugettext_lazy as _
+
+
+class NewPageForm(forms.Form):
+ title = forms.CharField(label=_('Title'), required=True)
--- /dev/null
+{% extends "base.html" %}
+{% load i18n %}
+
+{% block appbar %}
+<h2>{% trans "New Page" %}</h2>
+{% endblock %}
+
+{% block content %}
+<form method="post" action="/wiki/newpage/">
+{% csrf_token %}
+{{ form.as_p }}
+ <div class="buttons">
+ <button class="submit-button">{% trans "Add" %}</button>
+ <a class="cancel" href="/wiki/">{% trans "Cancel" %}</a>
+ </div>
+
+</form>
+{% endblock %}
--- /dev/null
+from django.contrib.auth.decorators import login_required
+from django.views.generic.edit import FormView
+
+from combo.data.models import Page, TextCell
+
+from .forms import NewPageForm
+
+
+class NewPageView(FormView):
+ form_class = NewPageForm
+ template_name = 'wiki/new_page.html'
+
+ def form_valid(self, form):
+ parent_wiki_page = Page.objects.get(slug='wiki', parent=None)
+ self.new_page = Page(title=form.cleaned_data['title'], parent=parent_wiki_page, public=False)
+ self.new_page.save()
+ cell = TextCell(placeholder='content', page=self.new_page, order=0)
+ cell.text = '<p>Nouvelle page, contenu à ajouter</p>'
+ cell.save()
+ return super().form_valid(form)
+
+ def get_success_url(self):
+ return self.new_page.get_online_url()
+
+
+new_page = login_required(NewPageView.as_view())