Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(1)

Side by Side Diff: charmworld/views/featured.py

Issue 65550043: Promulgate bundles owned by ~charmers.
Patch Set: Created 11 years, 1 month ago
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View unified diff | Download patch
OLDNEW
1 # Copyright 2012, 2013 Canonical Ltd. This software is licensed under the 1 # Copyright 2012, 2013 Canonical Ltd. This software is licensed under the
2 # GNU Affero General Public License version 3 (see the file LICENSE). 2 # GNU Affero General Public License version 3 (see the file LICENSE).
3 3
4 from deform import ( 4 from deform import (
5 Form, 5 Form,
6 ValidationFailure, 6 ValidationFailure,
7 ) 7 )
8 from pyramid.httpexceptions import HTTPFound 8 from pyramid.httpexceptions import HTTPFound
9 from pyramid.view import view_config 9 from pyramid.view import view_config
10 10
11 from charmworld.forms.featured import CharmFeaturedness 11 from charmworld.forms.featured import get_schema
12 from charmworld.models import FeaturedSource 12 from charmworld.models import (
13 FeaturedSource,
14 )
13 from charmworld.views.helpers import ( 15 from charmworld.views.helpers import (
14 find_charm, 16 find_charm,
15 find_bundle, 17 find_bundle,
16 found, 18 found,
17 ) 19 )
18 20
19 21
20 def featured_edit(request, item, kind, url): 22 def featured_edit(request, item, kind, url):
21 """Back end for featuring an "item" which can be a charm or bundle.""" 23 """Back end for featuring an "item" which can be a charm or bundle."""
22 form = Form(CharmFeaturedness(), buttons=('submit',)) 24 form = Form(get_schema(kind), buttons=('submit',))
23 form.css_class = 'form-horizontal well' 25 form.css_class = 'form-horizontal well'
24 featured_source = FeaturedSource.from_db(request.db) 26 featured_source = FeaturedSource.from_db(request.db)
25 27
26 if 'submit' in request.POST: 28 if 'submit' in request.POST:
27 try: 29 try:
28 data = request.POST.items() 30 data = request.POST.items()
29 valid_data = form.validate(data) 31 valid_data = form.validate(data)
30 if valid_data['is_featured']: 32 if valid_data['is_featured']:
31 featured_source.set_featured(item, kind) 33 featured_source.set_featured(item, kind)
32 else: 34 else:
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 found(bundle) 74 found(bundle)
73 basket = request.matchdict.get('basket') 75 basket = request.matchdict.get('basket')
74 basket_name = request.matchdict.get('bundle') 76 basket_name = request.matchdict.get('bundle')
75 # Since there is not yet a web page for promulgated bundles, we redirect 77 # Since there is not yet a web page for promulgated bundles, we redirect
76 # to the owner's page for the bundle. 78 # to the owner's page for the bundle.
77 # TODO Change this to the promulgated bundle page when they exist. 79 # TODO Change this to the promulgated bundle page when they exist.
78 url = request.route_url( 80 url = request.route_url(
79 'personal-bundle', owner=bundle.owner, basket=basket, 81 'personal-bundle', owner=bundle.owner, basket=basket,
80 bundle=basket_name) 82 bundle=basket_name)
81 return featured_edit(request, dict(bundle), 'bundle', url) 83 return featured_edit(request, dict(bundle), 'bundle', url)
OLDNEW
« charmworld/jobs/tests/test_lp.py ('K') | « charmworld/tests/test_models.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b