Channel creation.
[TownSquare.git] / townsquare / controllers / discussion.py
blobc5b860517bd24a49f6e1bc9590e2519df98b81e9
1 import logging
3 from pylons import request, response, session, tmpl_context as c, app_globals as g
4 from pylons.controllers.util import abort, redirect_to
6 from fma.orm import mapper
7 from townsquare.model.discussion import Discussion
8 from townsquare.model.channel import Channel
9 from townsquare.model.user import User
10 from townsquare.lib.base import BaseController, render
12 log = logging.getLogger(__name__)
14 mapper(Channel, Discussion, User)
16 class DiscussionController(BaseController):
18 def view(self, idname):
19 c.post = g.db.col(Discussion).find_one(idname=idname)
20 #author = g.db.col(User).find_one()
21 #c.post.creator = author
22 #author.save()
23 #c.post.save()
24 #c.post.refresh()
25 return render('/discussion/view.mako')
27 def list(self):
28 c.item_list = g.db.col(Discussion).find()
29 return render('/discussion/list.mako')
31 def create(self):
32 c.field_errors = []
33 form_valid = False
34 if (len(request.POST)):
35 c.title = request.POST.getone('title').strip()
36 if len(c.title) == 0:
37 c.field_errors.append('title')
38 c.content = request.POST.getone('content').strip()
39 if len(c.content) == 0:
40 c.field_errors.append('content')
41 c.channels = request.POST.getone('channels').strip()
42 form_valid = len(c.field_errors) == 0
44 if form_valid:
45 nd = g.db.col(Discussion).find().count()
46 disc = g.db.col(Discussion).new()
47 disc.creator = g.db.col(User).find_one()
48 disc.name = "Discussion %i" % nd
49 disc.idname = "discussion_%i" % nd
50 disc.content = c.content
51 if len(c.channels):
52 channelNames = c.channels.split(' ')
53 for cn in channelNames:
54 ch = g.db.col(Channel).find_one(idname=cn)
55 if ch is not None:
56 disc.channels.append(ch)
57 #disc.channels.append(g.db.col(Channel).find_one())
58 disc.save()
59 return "Saved"
61 return render('/discussion/edit.mako')