OLD | NEW |
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 Loading... |
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) |
OLD | NEW |