diff src/pages/events/new/page_meta.py @ 1111:4d1c4bd4931a

pages (events): added root, admin, new, rsvp and view pages
author Goffi <goffi@goffi.org>
date Thu, 21 Jun 2018 01:19:57 +0200
parents
children cdd389ef97bc
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/pages/events/new/page_meta.py	Thu Jun 21 01:19:57 2018 +0200
@@ -0,0 +1,42 @@
+#!/usr/bin/env python2.7
+# -*- coding: utf-8 -*-
+
+from libervia.server.constants import Const as C
+from twisted.internet import defer
+from sat.core.log import getLogger
+from sat.tools.common import date_utils
+"""creation of new events"""
+
+name = u'event_new'
+access = C.PAGES_ACCESS_PROFILE
+template = u"event/create.html"
+log = getLogger(u'pages/' + name)
+
+@defer.inlineCallbacks
+def on_data_post(self, request):
+    request_data = self.getRData(request)
+    profile = self.getProfile(request)
+    title, location, body, date, main_img, bg_img = self.getPostedData(
+        request, ('name', 'location', 'body', 'date', 'main_image', 'bg_image'))
+    timestamp = date_utils.date_parse(date)
+    data = {'name': title,
+            'description': body,
+            'location': location,
+            }
+
+    for value, var in ((main_img, 'image'),
+                       (bg_img, 'background-image')):
+        value = value.strip()
+        if not value:
+            continue
+        if not value.startswith('http'):
+            self.pageError(request, C.HTTP_BAD_REQUEST)
+        data[var] = value
+    data[u'register'] = C.BOOL_TRUE
+    node = yield self.host.bridgeCall('eventCreate', timestamp, data, '', '', '', profile)
+    log.info(u"Event node created at {node}".format(node=node))
+
+    request_data['post_redirect_page'] = (self.getPageByName(u'event_admin'),
+                                          '@',
+                                          node)
+    defer.returnValue(C.POST_NO_CONFIRM)