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
.post
import Post
8 from townsquare
.model
.channel
import Channel
9 from townsquare
.model
import user
10 from townsquare
.lib
.base
import BaseController
, render
12 log
= logging
.getLogger(__name__
)
14 #mapper(Channel, Post, account.Account)
16 class ChannelController(BaseController
):
18 def view(self
, idname
):
19 c
.ch
= g
.db
.col(Channel
).find_one(_id
=idname
)
20 #TODO: 404 if not found
22 c
.ch
.posts
= g
.db
.col(Post
).find(_host_classname
='Channel', _host_id
=c
.ch
._id
)
23 return render('/channel/view.mako')
26 c
.item_list
= g
.db
.col(Channel
).find()
27 return render('/channel/list.mako')
29 def pick_single(self
):
32 #TODO: use the parameter 'return'
33 # use COOKIE to store selection
40 #TODO: check settings, role and acl
41 u
= user
.get_current_user();
43 redirect_to(user
.create_login_url(''))
46 if (len(request
.POST
)):
47 c
.title
= request
.POST
.getone('title').strip()
49 c
.field_errors
.append('title')
50 c
.content
= request
.POST
.getone('content').strip()
51 if len(c
.content
) == 0:
52 c
.field_errors
.append('content')
53 form_valid
= len(c
.field_errors
) == 0
56 nd
= g
.db
.col(Channel
).find().count()
57 disc
= g
.db
.col(Channel
).new()
58 disc
.creator_id
= u
.id
61 disc
.idname
= "channel_%i" % nd
62 disc
.description
= c
.content
64 #TODO: redirect to the newly created channel
67 return render('/channel/edit.mako')