17 """Views for Organizations. |
17 """Views for Organizations. |
18 """ |
18 """ |
19 |
19 |
20 __authors__ = [ |
20 __authors__ = [ |
21 '"Sverre Rabbelier" <sverre@rabbelier.nl>', |
21 '"Sverre Rabbelier" <sverre@rabbelier.nl>', |
|
22 '"Lennard de Rijk" <ljvderijk@gmail.com>', |
22 ] |
23 ] |
23 |
24 |
24 |
25 |
25 from django import forms |
26 from django import forms |
26 |
27 |
27 from soc.logic import cleaning |
28 from soc.logic import cleaning |
28 from soc.logic import dicts |
29 from soc.logic import dicts |
|
30 from soc.views.helper import access |
29 from soc.views.helper import redirects |
31 from soc.views.helper import redirects |
30 from soc.views.models import group |
32 from soc.views.models import group |
31 from soc.views.models import program as program_view |
33 from soc.views.models import program as program_view |
32 |
34 |
33 import soc.models.organization |
35 import soc.models.organization |
44 |
46 |
45 Params: |
47 Params: |
46 original_params: a dict with params for this View |
48 original_params: a dict with params for this View |
47 """ |
49 """ |
48 |
50 |
|
51 # TODO do the proper access checks |
|
52 rights = access.Checker(params) |
|
53 rights['create'] = ['checkIsDeveloper'] |
|
54 rights['edit'] = ['checkIsDeveloper'] |
|
55 rights['delete'] = ['checkIsDeveloper'] |
|
56 rights['home'] = ['allow'] |
|
57 rights['list'] = ['checkIsDeveloper'] |
|
58 rights['list_requests'] = ['checkIsDeveloper'] |
|
59 rights['list_roles'] = ['checkIsDeveloper'] |
|
60 # TODO(ljvderijk) implement Org application process |
|
61 #rights['applicant'] = ['checkIsDeveloper'] |
|
62 |
49 new_params = {} |
63 new_params = {} |
50 new_params['logic'] = soc.logic.models.organization.logic |
64 new_params['logic'] = soc.logic.models.organization.logic |
51 |
65 |
52 new_params['scope_view'] = program_view |
66 new_params['scope_view'] = program_view |
53 new_params['scope_redirect'] = redirects.getCreateRedirect |
67 new_params['scope_redirect'] = redirects.getCreateRedirect |
54 |
68 |
55 new_params['name'] = "Organization" |
69 new_params['name'] = "Organization" |
56 new_params['url_name'] = "org" |
70 new_params['url_name'] = "org" |
|
71 new_params['sidebar_grouping'] = 'Organizations' |
57 |
72 |
|
73 new_params['public_template'] = 'soc/organization/public.html' |
|
74 new_params['list_row'] = 'soc/organization/list/row.html' |
|
75 new_params['list_heading'] = 'soc/organization/list/heading.html' |
|
76 |
|
77 #TODO(ljvderijk) add cleaning methods to not overwrite existing orgs |
58 new_params['create_extra_dynafields'] = { |
78 new_params['create_extra_dynafields'] = { |
59 'scope_path': forms.CharField(widget=forms.HiddenInput, |
79 'scope_path': forms.CharField(widget=forms.HiddenInput, |
60 required=True), |
80 required=True), |
61 'clean_link_id': cleaning.clean_link_id('link_id'), |
81 'clean_link_id': cleaning.clean_link_id('link_id'), |
62 } |
82 } |
63 |
83 |
64 params = dicts.merge(params, new_params) |
84 params = dicts.merge(params, new_params) |
65 |
85 |
66 super(View, self).__init__(params=params) |
86 super(View, self).__init__(params=params) |
67 |
87 |
|
88 # TODO(ljvderijk) define several menu items for organizations |
|
89 #def _getExtraMenuItems(self, role_description, params=None): |
|
90 |
68 |
91 |
69 view = View() |
92 view = View() |
70 |
93 |
71 create = view.create |
94 create = view.create |
72 delete = view.delete |
95 delete = view.delete |
73 edit = view.edit |
96 edit = view.edit |
|
97 home = view.home |
74 list = view.list |
98 list = view.list |
|
99 list_requests = view.listRequests |
|
100 list_roles = view.listRoles |
75 public = view.public |
101 public = view.public |
76 export = view.export |
102 export = view.export |
77 pick = view.pick |
103 pick = view.pick |