diff --git a/cfp/forms.py b/cfp/forms.py
index 1ca5173..d7488a8 100644
--- a/cfp/forms.py
+++ b/cfp/forms.py
@@ -259,7 +259,7 @@ class ConferenceForm(forms.ModelForm):
class Meta:
model = Conference
fields = [
- 'name', 'home', 'venue', 'city', 'contact_email', 'schedule_publishing_date', 'schedule_redirection_url',
+ 'name', 'venue', 'city', 'contact_email', 'schedule_publishing_date', 'schedule_redirection_url',
'volunteers_opening_date', 'volunteers_closing_date', 'reply_email', 'secure_domain', 'staff',
]
widgets = {
@@ -270,6 +270,12 @@ class ConferenceForm(forms.ModelForm):
}
+class HomepageForm(forms.ModelForm):
+ class Meta:
+ model = Conference
+ fields = ['home']
+
+
class CreateUserForm(forms.ModelForm):
class Meta:
model = User
diff --git a/cfp/templates/cfp/admin/base.html b/cfp/templates/cfp/admin/base.html
index fd40826..699c4de 100644
--- a/cfp/templates/cfp/admin/base.html
+++ b/cfp/templates/cfp/admin/base.html
@@ -7,7 +7,8 @@
{{ block.super }}
+
+{% endblock %}
+
+{% block js_end %}
+{{ block.super }}
+{{ form.media.js }}
+
+
+
+{% endblock %}
+
+{% block css %}
+{{ block.super }}
+{{ form.media.css }}
+{% endblock %}
diff --git a/cfp/urls.py b/cfp/urls.py
index 3f2676d..29d7358 100644
--- a/cfp/urls.py
+++ b/cfp/urls.py
@@ -55,7 +55,8 @@ urlpatterns = [
url(r'^staff/schedule/((?P
[\w]+)/)?$', views.staff_schedule, name='staff-schedule'),
url(r'^staff/select2/$', views.Select2View.as_view(), name='django_select2-json'),
url(r'^admin/$', views.admin, name='admin'),
- url(r'^admin/conference/$', views.conference_edit, name='conference'),
+ url(r'^admin/conference/$', views.conference_edit, name='conference-edit'),
+ url(r'^admin/homepage/$', views.homepage_edit, name='homepage-edit'),
url(r'^admin/categories/$', views.TalkCategoryList.as_view(), name='category-list'),
url(r'^admin/categories/add/$', views.TalkCategoryCreate.as_view(), name='category-add'),
url(r'^admin/categories/(?P[0-9]+)/edit/$', views.TalkCategoryUpdate.as_view(), name='category-edit'),
@@ -66,5 +67,4 @@ urlpatterns = [
url(r'^admin/activities/add/$', views.ActivityCreate.as_view(), name='activity-add'),
url(r'^admin/activities/(?P[-\w]+)/edit/$', views.ActivityUpdate.as_view(), name='activity-edit'),
url(r'^schedule/((?P[\w]+)/)?$', views.public_schedule, name='public-schedule'),
- #url(r'^markdown/$', views.markdown_preview, name='markdown'),
]
diff --git a/cfp/views.py b/cfp/views.py
index 5982440..40cb861 100644
--- a/cfp/views.py
+++ b/cfp/views.py
@@ -1,4 +1,3 @@
-from math import ceil
from django.core.mail import send_mail
from django.core.urlresolvers import reverse_lazy
from django.shortcuts import get_object_or_404, redirect, render
@@ -29,7 +28,7 @@ from .utils import is_staff
from .models import Participant, Talk, TalkCategory, Vote, Track, Tag, Room, Volunteer, Activity
from .forms import TalkForm, TalkStaffForm, TalkFilterForm, TalkActionForm, \
ParticipantForm, ParticipantFilterForm, NotifyForm, \
- ConferenceForm, CreateUserForm, TrackForm, RoomForm, \
+ ConferenceForm, HomepageForm, CreateUserForm, TrackForm, RoomForm, \
VolunteerForm, VolunteerFilterForm, MailForm, \
TagForm, TalkCategoryForm, ActivityForm, \
ACCEPTATION_VALUES, CONFIRMATION_VALUES
@@ -832,7 +831,6 @@ def participant_add_talk(request, participant_id):
@staff_required
def conference_edit(request):
form = ConferenceForm(request.POST or None, instance=request.conference)
-
if request.method == 'POST' and form.is_valid():
old_staff = set(request.conference.staff.all())
new_conference = form.save()
@@ -865,13 +863,24 @@ You can now:
fail_silently=False,
)
messages.success(request, _('Modifications successfully saved.'))
- return redirect(reverse('conference'))
-
+ return redirect(reverse('conference-edit'))
return render(request, 'cfp/admin/conference.html', {
'form': form,
})
+@staff_required
+def homepage_edit(request):
+ form = HomepageForm(request.POST or None, instance=request.conference)
+ if request.method == 'POST' and form.is_valid():
+ form.save()
+ messages.success(request, _('Modifications successfully saved.'))
+ return redirect(reverse('homepage-edit'))
+ return render(request, 'cfp/admin/homepage.html', {
+ 'form': form,
+ })
+
+
class TalkUpdate(StaffRequiredMixin, OnSiteMixin, OnSiteFormMixin, UpdateView):
model = Talk
form_class = TalkStaffForm
diff --git a/ponyconf/urls.py b/ponyconf/urls.py
index 260dc01..2b7f5c2 100644
--- a/ponyconf/urls.py
+++ b/ponyconf/urls.py
@@ -17,8 +17,11 @@ from django.conf.urls import include, url
from django.contrib import admin
from django.conf import settings
+from . import views
+
urlpatterns = [
+ url(r'^markdown/$', views.markdown_preview, name='markdown-preview'),
url(r'^admin/django/', admin.site.urls),
url(r'^accounts/', include('accounts.urls')),
url(r'^', include('cfp.urls')),
diff --git a/ponyconf/views.py b/ponyconf/views.py
new file mode 100644
index 0000000..87e7ed2
--- /dev/null
+++ b/ponyconf/views.py
@@ -0,0 +1,12 @@
+from django.contrib.auth.decorators import login_required
+from django.views.decorators.http import require_http_methods
+from django.http import HttpResponse
+
+from .utils import markdown_to_html
+
+
+@login_required
+@require_http_methods(["POST"])
+def markdown_preview(request):
+ content = request.POST.get('data', '')
+ return HttpResponse(markdown_to_html(content))