author | Sverre Rabbelier <srabbelier@gmail.com> |
Sat, 14 Feb 2009 20:22:17 +0000 | |
changeset 1323 | a666374587df |
parent 1308 | 35b75ffcbb37 |
child 1357 | 3dd1507aa723 |
permissions | -rw-r--r-- |
363
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
1 |
#!/usr/bin/python2.5 |
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
2 |
# |
1308
35b75ffcbb37
Partially reverted "Update the copyright notice for 2009."
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1307
diff
changeset
|
3 |
# Copyright 2008 the Melange authors. |
363
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
4 |
# |
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
5 |
# Licensed under the Apache License, Version 2.0 (the "License"); |
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
6 |
# you may not use this file except in compliance with the License. |
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
7 |
# You may obtain a copy of the License at |
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
8 |
# |
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
9 |
# http://www.apache.org/licenses/LICENSE-2.0 |
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
10 |
# |
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
11 |
# Unless required by applicable law or agreed to in writing, software |
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
12 |
# distributed under the License is distributed on an "AS IS" BASIS, |
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
13 |
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
14 |
# See the License for the specific language governing permissions and |
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
15 |
# limitations under the License. |
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
16 |
|
658
9964b1571ef8
Factor out the Group part of Sponsor
Sverre Rabbelier <srabbelier@gmail.com>
parents:
656
diff
changeset
|
17 |
"""Views for Groups. |
363
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
18 |
""" |
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
19 |
|
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
20 |
__authors__ = [ |
429
e50e18936f06
Fixed typo in e-mail address
Sverre Rabbelier <srabbelier@gmail.com>
parents:
409
diff
changeset
|
21 |
'"Sverre Rabbelier" <sverre@rabbelier.nl>', |
989
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
22 |
'"Lennard de Rijk" <ljvderijk@gmail.com>', |
363
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
23 |
] |
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
24 |
|
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
25 |
|
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
26 |
from google.appengine.api import users |
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
27 |
|
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
28 |
from django import forms |
1153
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
29 |
from django import http |
989
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
30 |
from django.utils.translation import ugettext |
363
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
31 |
|
387
c55195361cb6
Addressed comments by Todd on r822
Sverre Rabbelier <srabbelier@gmail.com>
parents:
363
diff
changeset
|
32 |
from soc.logic import dicts |
662
0e89b027b140
Make use of the new generic key_name by lookup up scope_path
Sverre Rabbelier <srabbelier@gmail.com>
parents:
658
diff
changeset
|
33 |
from soc.logic.models import user as user_logic |
989
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
34 |
from soc.views.helper import decorators |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
35 |
from soc.views.helper import lists as list_helper |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
36 |
from soc.views.helper import redirects |
1153
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
37 |
from soc.views.helper import responses |
755
1ed041c0cdc6
Remove unused imports and variables in different soc.views.models modules.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
681
diff
changeset
|
38 |
from soc.views.helper import widgets |
1002
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
39 |
from soc.views.models import presence |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
40 |
from soc.views.models import document as document_view |
989
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
41 |
from soc.views.models.request import view as request_view |
1002
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
42 |
from soc.views.sitemap import sidebar |
363
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
43 |
|
1153
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
44 |
import soc.views.helper |
363
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
45 |
|
1002
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
46 |
class View(presence.View): |
658
9964b1571ef8
Factor out the Group part of Sponsor
Sverre Rabbelier <srabbelier@gmail.com>
parents:
656
diff
changeset
|
47 |
"""View methods for the Group model. |
363
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
48 |
""" |
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
49 |
|
989
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
50 |
|
656
a76f1b443ea4
Cleanups in the views module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
654
diff
changeset
|
51 |
def __init__(self, params=None): |
363
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
52 |
"""Defines the fields and methods required for the base View class |
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
53 |
to provide the user with list, public, create, edit and delete views. |
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
54 |
|
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
55 |
Params: |
656
a76f1b443ea4
Cleanups in the views module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
654
diff
changeset
|
56 |
params: a dict with params for this View |
658
9964b1571ef8
Factor out the Group part of Sponsor
Sverre Rabbelier <srabbelier@gmail.com>
parents:
656
diff
changeset
|
57 |
""" |
363
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
58 |
|
656
a76f1b443ea4
Cleanups in the views module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
654
diff
changeset
|
59 |
new_params = {} |
606 | 60 |
|
1049
cc6aedbde28d
Fixed the edit site view having a delete button
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1030
diff
changeset
|
61 |
new_params['extra_dynaexclude'] = ['founder','home', 'tos', |
1085
0afbdd0905ef
Renamed state to status where appropriate.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1075
diff
changeset
|
62 |
'member_template', 'status'] |
668
77f9a6ea6e67
Some style and typo fixes in different modules.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
662
diff
changeset
|
63 |
new_params['edit_extra_dynafields'] = { |
755
1ed041c0cdc6
Remove unused imports and variables in different soc.views.models modules.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
681
diff
changeset
|
64 |
'founded_by': forms.CharField(widget=widgets.ReadOnlyInput(), |
606 | 65 |
required=False), |
66 |
} |
|
363
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
67 |
|
989
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
68 |
#set the extra_django_patterns and include the one from params |
1049
cc6aedbde28d
Fixed the edit site view having a delete button
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1030
diff
changeset
|
69 |
patterns = params.get('extra_django_patterns', []) |
989
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
70 |
|
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
71 |
patterns += [ |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
72 |
(r'^%(url_name)s/(?P<access_type>list_requests)/%(key_fields)s$', |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
73 |
'soc.views.models.%(module_name)s.list_requests', |
998
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
74 |
'List of requests for %(name)s'), |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
75 |
(r'^%(url_name)s/(?P<access_type>list_roles)/%(key_fields)s$', |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
76 |
'soc.views.models.%(module_name)s.list_roles', |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
77 |
'List of roles for %(name)s')] |
989
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
78 |
|
1153
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
79 |
if params.get('group_applicant_url'): |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
80 |
# add the applicant pattern |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
81 |
patterns += [ |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
82 |
(r'^%(url_name)s/(?P<access_type>applicant)/%(key_fields)s$', |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
83 |
'soc.views.models.%(module_name)s.applicant', |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
84 |
"%(name)s Creation via Accepted Application"),] |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
85 |
|
989
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
86 |
new_params['extra_django_patterns'] = patterns |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
87 |
|
502
e1e24c0a4e82
Add new parameters to views: url_name which is name used in urls (instead of using lower entity names) and module_name which is used for constructing django urls. Append changes to all affected files. Fix some title names. Change urls that included underscores like "site_settings" into urls with slash "site/settings". Plus some other minor fixes.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
499
diff
changeset
|
88 |
# TODO(tlarsen): Add support for Django style template lookup |
656
a76f1b443ea4
Cleanups in the views module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
654
diff
changeset
|
89 |
new_params['public_template'] = 'soc/group/public.html' |
363
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
90 |
|
656
a76f1b443ea4
Cleanups in the views module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
654
diff
changeset
|
91 |
new_params['list_row'] = 'soc/group/list/row.html' |
a76f1b443ea4
Cleanups in the views module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
654
diff
changeset
|
92 |
new_params['list_heading'] = 'soc/group/list/heading.html' |
493
6976c4d8d0ac
Refactor the sidebar to use Django templates
Sverre Rabbelier <srabbelier@gmail.com>
parents:
492
diff
changeset
|
93 |
|
998
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
94 |
new_params['role_views'] = {} |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
95 |
|
1060
eb6231138307
Added state and shipping address fields to group model.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1049
diff
changeset
|
96 |
params = dicts.merge(params, new_params, sub_merge=True) |
656
a76f1b443ea4
Cleanups in the views module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
654
diff
changeset
|
97 |
|
a76f1b443ea4
Cleanups in the views module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
654
diff
changeset
|
98 |
super(View, self).__init__(params=params) |
363
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
99 |
|
583
12960609a69c
Fills in the Founded By box in edit sponsor with the user's public name
Lennard de Rijk <ljvderijk@gmail.com>
parents:
569
diff
changeset
|
100 |
def _editGet(self, request, entity, form): |
12960609a69c
Fills in the Founded By box in edit sponsor with the user's public name
Lennard de Rijk <ljvderijk@gmail.com>
parents:
569
diff
changeset
|
101 |
"""See base.View._editGet(). |
12960609a69c
Fills in the Founded By box in edit sponsor with the user's public name
Lennard de Rijk <ljvderijk@gmail.com>
parents:
569
diff
changeset
|
102 |
""" |
658
9964b1571ef8
Factor out the Group part of Sponsor
Sverre Rabbelier <srabbelier@gmail.com>
parents:
656
diff
changeset
|
103 |
|
583
12960609a69c
Fills in the Founded By box in edit sponsor with the user's public name
Lennard de Rijk <ljvderijk@gmail.com>
parents:
569
diff
changeset
|
104 |
# fill in the founded_by with data from the entity |
12960609a69c
Fills in the Founded By box in edit sponsor with the user's public name
Lennard de Rijk <ljvderijk@gmail.com>
parents:
569
diff
changeset
|
105 |
form.fields['founded_by'].initial = entity.founder.name |
681
48983ecf4665
Cleanups in group and program
Sverre Rabbelier <srabbelier@gmail.com>
parents:
668
diff
changeset
|
106 |
super(View, self)._editGet(request, entity, form) |
583
12960609a69c
Fills in the Founded By box in edit sponsor with the user's public name
Lennard de Rijk <ljvderijk@gmail.com>
parents:
569
diff
changeset
|
107 |
|
363
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
108 |
def _editPost(self, request, entity, fields): |
402
021e86368600
Incorperated suggestions by Todd
Sverre Rabbelier <srabbelier@gmail.com>
parents:
399
diff
changeset
|
109 |
"""See base.View._editPost(). |
363
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
110 |
""" |
d35ffa6ca643
Add a framework for generic views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
111 |
|
583
12960609a69c
Fills in the Founded By box in edit sponsor with the user's public name
Lennard de Rijk <ljvderijk@gmail.com>
parents:
569
diff
changeset
|
112 |
if not entity: |
12960609a69c
Fills in the Founded By box in edit sponsor with the user's public name
Lennard de Rijk <ljvderijk@gmail.com>
parents:
569
diff
changeset
|
113 |
# only if we are creating a new entity we should fill in founder |
1127
69a9134c5c7e
Fixed two small errors.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1115
diff
changeset
|
114 |
user = user_logic.logic.getForCurrentAccount() |
583
12960609a69c
Fills in the Founded By box in edit sponsor with the user's public name
Lennard de Rijk <ljvderijk@gmail.com>
parents:
569
diff
changeset
|
115 |
fields['founder'] = user |
681
48983ecf4665
Cleanups in group and program
Sverre Rabbelier <srabbelier@gmail.com>
parents:
668
diff
changeset
|
116 |
|
48983ecf4665
Cleanups in group and program
Sverre Rabbelier <srabbelier@gmail.com>
parents:
668
diff
changeset
|
117 |
super(View, self)._editPost(request, entity, fields) |
858
e79e7a22326f
Add an export() view, and implement it as text/text for Document.
Todd Larsen <tlarsen@google.com>
parents:
809
diff
changeset
|
118 |
|
1153
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
119 |
|
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
120 |
@decorators.merge_params |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
121 |
@decorators.check_access |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
122 |
def applicant(self, request, access_type, |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
123 |
page_name=None, params=None, **kwargs): |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
124 |
"""Handles the creation of a group via an approved group application. |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
125 |
|
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
126 |
Args: |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
127 |
request: the standard Django HTTP request object |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
128 |
access_type : the name of the access type which should be checked |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
129 |
page_name: the page name displayed in templates as page and header title |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
130 |
params: a dict with params for this View |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
131 |
kwargs: the Key Fields for the specified entity |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
132 |
""" |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
133 |
|
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
134 |
# get the context for this webpage |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
135 |
context = responses.getUniversalContext(request) |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
136 |
context['page_name'] = page_name |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
137 |
|
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
138 |
if request.method == 'POST': |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
139 |
return self.applicantPost(request, context, params, **kwargs) |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
140 |
else: |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
141 |
# request.method == 'GET' |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
142 |
return self.applicantGet(request, context, params, **kwargs) |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
143 |
|
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
144 |
def applicantGet(self, request, context, params, **kwargs): |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
145 |
"""Handles the GET request concerning the creation of a group via an |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
146 |
approved group application. |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
147 |
|
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
148 |
Args: |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
149 |
request: the standard Django HTTP request object |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
150 |
context: dictionary containing the context for this view |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
151 |
params: a dict with params for this View |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
152 |
kwargs: the Key Fields for the specified entity |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
153 |
""" |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
154 |
|
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
155 |
# find the application |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
156 |
application_logic = params['application_logic'] |
1218
569a3fe9cb88
Cleaned up getKeyNameFromFields in Logic base.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1153
diff
changeset
|
157 |
application = application_logic.logic.getFromKeyFields(kwargs) |
1153
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
158 |
|
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
159 |
# extract the application fields |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
160 |
field_names = application.properties().keys() |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
161 |
fields = dict( [(i, getattr(application, i)) for i in field_names] ) |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
162 |
|
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
163 |
# create the form using the fields from the application as the initial value |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
164 |
form = params['applicant_create_form'](initial=fields) |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
165 |
|
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
166 |
# construct the appropriate response |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
167 |
return super(View, self)._constructResponse(request, entity=None, |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
168 |
context=context, form=form, params=params) |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
169 |
|
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
170 |
def applicantPost(self, request, context, params, **kwargs): |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
171 |
"""Handles the POST request concerning the creation of a group via an |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
172 |
approved group application. |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
173 |
|
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
174 |
Args: |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
175 |
request: the standard Django HTTP request object |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
176 |
context: dictionary containing the context for this view |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
177 |
params: a dict with params for this View |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
178 |
kwargs: the Key Fields for the specified entity |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
179 |
""" |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
180 |
|
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
181 |
# populate the form using the POST data |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
182 |
form = params['applicant_create_form'](request.POST) |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
183 |
|
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
184 |
if not form.is_valid(): |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
185 |
# return the invalid form response |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
186 |
return self._constructResponse(request, entity=None, context=context, |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
187 |
form=form, params=params) |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
188 |
|
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
189 |
# collect the cleaned data from the valid form |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
190 |
key_name, fields = soc.views.helper.forms.collectCleanedFields(form) |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
191 |
|
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
192 |
# do post processing |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
193 |
self._applicantPost(request, context, fields) |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
194 |
|
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
195 |
if not key_name: |
1218
569a3fe9cb88
Cleaned up getKeyNameFromFields in Logic base.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1153
diff
changeset
|
196 |
key_name = self._logic.getKeyNameFromFields(fields) |
1153
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
197 |
|
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
198 |
# create the group entity |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
199 |
entity = self._logic.updateOrCreateFromKeyName(fields, key_name) |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
200 |
|
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
201 |
# redirect to notifications list to see the admin invite |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
202 |
return http.HttpResponseRedirect('/notification/list') |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
203 |
|
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
204 |
def _applicantPost(self, request, context, fields): |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
205 |
"""Performs any required processing on the entity to post its edit page. |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
206 |
|
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
207 |
Args: |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
208 |
request: the django request object |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
209 |
context: the context for the webpage |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
210 |
fields: the new field values |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
211 |
""" |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
212 |
|
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
213 |
# fill in the founder of the group |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
214 |
user = user_logic.logic.getForCurrentAccount() |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
215 |
fields['founder'] = user |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
216 |
|
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
217 |
# If scope_logic is not defined, this entity has no scope |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
218 |
if not self._params['scope_logic']: |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
219 |
return |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
220 |
|
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
221 |
# If this entity is unscoped, do not try to retrieve a scope |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
222 |
if 'scope_path' not in fields: |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
223 |
return |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
224 |
|
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
225 |
scope = self._params['scope_logic'].logic.getFromKeyName( |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
226 |
fields['scope_path']) |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
227 |
fields['scope'] = scope |
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
228 |
|
4804f7f5a7c0
Refactored applicant from club view to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1127
diff
changeset
|
229 |
|
989
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
230 |
@decorators.merge_params |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
231 |
@decorators.check_access |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
232 |
def listRequests(self, request, access_type, |
1030
a0081c626acb
Style fixes in soc.views.models modules.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
1024
diff
changeset
|
233 |
page_name=None, params=None, **kwargs): |
989
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
234 |
"""Gives an overview of all the requests for a specific group. |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
235 |
|
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
236 |
Args: |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
237 |
request: the standard Django HTTP request object |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
238 |
access_type : the name of the access type which should be checked |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
239 |
page_name: the page name displayed in templates as page and header title |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
240 |
params: a dict with params for this View |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
241 |
kwargs: the Key Fields for the specified entity |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
242 |
""" |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
243 |
|
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
244 |
# set the pagename to include the link_id |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
245 |
page_name = '%s %s' %(page_name, kwargs['link_id']) |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
246 |
|
994
f05c02ba40fc
listRequests now only shows the requests that concerns the given group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
993
diff
changeset
|
247 |
# get the group from the request |
f05c02ba40fc
listRequests now only shows the requests that concerns the given group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
993
diff
changeset
|
248 |
group_logic = params['logic'] |
f05c02ba40fc
listRequests now only shows the requests that concerns the given group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
993
diff
changeset
|
249 |
|
1115
0a723ff3d27c
Cleanups in base.Logic
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1085
diff
changeset
|
250 |
group_entity = group_logic.getFromKeyFields(kwargs) |
994
f05c02ba40fc
listRequests now only shows the requests that concerns the given group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
993
diff
changeset
|
251 |
|
998
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
252 |
role_names = params['role_views'].keys() |
994
f05c02ba40fc
listRequests now only shows the requests that concerns the given group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
993
diff
changeset
|
253 |
|
989
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
254 |
# list all incoming requests |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
255 |
filter = { |
1030
a0081c626acb
Style fixes in soc.views.models modules.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
1024
diff
changeset
|
256 |
'scope': group_entity, |
989
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
257 |
'role': role_names, |
1085
0afbdd0905ef
Renamed state to status where appropriate.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1075
diff
changeset
|
258 |
'status': 'new' |
989
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
259 |
} |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
260 |
|
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
261 |
# create the list parameters |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
262 |
inc_req_params = request_view.getParams() |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
263 |
|
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
264 |
# define the list redirect action to the request processing page |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
265 |
inc_req_params['list_action'] = (redirects.getProcessRequestRedirect, None) |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
266 |
inc_req_params['list_description'] = ugettext( |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
267 |
"An overview of the %(name)s's incoming requests." % params) |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
268 |
|
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
269 |
inc_req_content = list_helper.getListContent( |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
270 |
request, inc_req_params, filter, 0) |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
271 |
|
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
272 |
# list all outstanding invites |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
273 |
filter = { |
1030
a0081c626acb
Style fixes in soc.views.models modules.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
1024
diff
changeset
|
274 |
'scope': group_entity, |
989
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
275 |
'role': role_names, |
1085
0afbdd0905ef
Renamed state to status where appropriate.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1075
diff
changeset
|
276 |
'status': 'group_accepted' |
989
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
277 |
} |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
278 |
|
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
279 |
# create the list parameters |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
280 |
out_inv_params = request_view.getParams() |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
281 |
|
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
282 |
# define the list redirect action to the request processing page |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
283 |
out_inv_params['list_action'] = (redirects.getProcessRequestRedirect, None) |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
284 |
out_inv_params['list_description'] = ugettext( |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
285 |
"An overview of the %(name)s's outstanding invites." % params) |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
286 |
|
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
287 |
out_inv_content = list_helper.getListContent( |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
288 |
request, out_inv_params, filter, 1) |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
289 |
|
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
290 |
# list all ignored requests |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
291 |
filter = { |
1030
a0081c626acb
Style fixes in soc.views.models modules.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
1024
diff
changeset
|
292 |
'scope': group_entity, |
989
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
293 |
'role': role_names, |
1085
0afbdd0905ef
Renamed state to status where appropriate.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1075
diff
changeset
|
294 |
'status': 'ignored' |
989
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
295 |
} |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
296 |
|
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
297 |
# create the list parameters |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
298 |
ignored_params = request_view.getParams() |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
299 |
|
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
300 |
# define the list redirect action to the request processing page |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
301 |
ignored_params['list_action'] = (redirects.getProcessRequestRedirect, None) |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
302 |
ignored_params['list_description'] = ugettext( |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
303 |
"An overview of the %(name)s's ignored requests." % params) |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
304 |
|
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
305 |
ignored_content = list_helper.getListContent( |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
306 |
request, ignored_params, filter, 2) |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
307 |
|
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
308 |
contents = [inc_req_content, out_inv_content, ignored_content] |
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
309 |
|
f52654ea6350
Moved listRequests from club to group view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
858
diff
changeset
|
310 |
return self._list(request, params, contents, page_name) |
998
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
311 |
|
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
312 |
|
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
313 |
@decorators.merge_params |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
314 |
@decorators.check_access |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
315 |
def listRoles(self, request, access_type, |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
316 |
page_name=None, params=None, **kwargs): |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
317 |
"""Gives an overview of all the roles in a specific group. |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
318 |
|
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
319 |
Args: |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
320 |
request: the standard Django HTTP request object |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
321 |
access_type : the name of the access type which should be checked |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
322 |
page_name: the page name displayed in templates as page and header title |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
323 |
params: a dict with params for this View |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
324 |
kwargs: the Key Fields for the specified entity |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
325 |
""" |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
326 |
|
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
327 |
# set the pagename to include the link_id |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
328 |
page_name = '%s %s' %(page_name, kwargs['link_id']) |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
329 |
|
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
330 |
# get the group from the request |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
331 |
group_logic = params['logic'] |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
332 |
|
1115
0a723ff3d27c
Cleanups in base.Logic
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1085
diff
changeset
|
333 |
group_entity = group_logic.getFromKeyFields(kwargs) |
998
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
334 |
|
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
335 |
# create the filter |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
336 |
filter = { |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
337 |
'scope' : group_entity, |
1085
0afbdd0905ef
Renamed state to status where appropriate.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1075
diff
changeset
|
338 |
'status': 'active' |
998
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
339 |
} |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
340 |
|
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
341 |
role_views = params['role_views'] |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
342 |
contents = [] |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
343 |
index = 0 |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
344 |
|
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
345 |
# for each role we create a separate list |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
346 |
for role_name in role_views.keys(): |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
347 |
# create the list parameters |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
348 |
list_params = role_views[role_name].getParams().copy() |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
349 |
|
1065
b661dc8ffd5f
Added manage redirect.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1060
diff
changeset
|
350 |
list_params['list_action'] = (redirects.getManageRedirect, list_params) |
998
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
351 |
list_params['list_description'] = ugettext( |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
352 |
"An overview of the %s for this %s." % ( |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
353 |
list_params['name_plural'], params['name'])) |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
354 |
|
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
355 |
new_list_content = list_helper.getListContent( |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
356 |
request, list_params, filter, index) |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
357 |
|
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
358 |
contents += [new_list_content] |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
359 |
|
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
360 |
index += 1 |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
361 |
|
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
362 |
# call the _list method from base.View to show the list |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
363 |
return self._list(request, params, contents, page_name) |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
364 |
|
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
365 |
def registerRole(self, role_name, role_view): |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
366 |
"""Adds a role to the role_views param. |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
367 |
|
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
368 |
Args: |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
369 |
role_name: The name of the role that needs to be added |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
370 |
role_view: The view that needs to be added to role_views. |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
371 |
""" |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
372 |
|
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
373 |
role_views = self._params['role_views'] |
125257161908
Implemented the listing of all the roles in for a specific group.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
994
diff
changeset
|
374 |
role_views[role_name] = role_view |
1002
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
375 |
|
1017
6ad4fdb48840
Cache access checks and disable sidebar caching
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1003
diff
changeset
|
376 |
def getExtraMenus(self, id, user, params=None): |
1002
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
377 |
"""Returns the extra menu's for this view. |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
378 |
|
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
379 |
A menu item is generated for each group that the user has an active |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
380 |
role for. The public page for each group is added as menu item, |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
381 |
as well as all public documents for that group. |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
382 |
|
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
383 |
Args: |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
384 |
params: a dict with params for this View. |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
385 |
""" |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
386 |
|
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
387 |
params = dicts.merge(params, self._params) |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
388 |
logic = params['logic'] |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
389 |
|
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
390 |
# set fields to match every active role this user has |
1017
6ad4fdb48840
Cache access checks and disable sidebar caching
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1003
diff
changeset
|
391 |
fields = {'user': user, |
1085
0afbdd0905ef
Renamed state to status where appropriate.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1075
diff
changeset
|
392 |
'status': 'active'} |
1002
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
393 |
|
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
394 |
# get the role views and start filling group_entities |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
395 |
role_views = self._params['role_views'] |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
396 |
role_descriptions = {} |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
397 |
|
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
398 |
for role_name in role_views.keys(): |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
399 |
role_view = role_views[role_name] |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
400 |
role_view_params = role_view.getParams() |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
401 |
role_logic = role_view_params['logic'] |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
402 |
|
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
403 |
roles = role_logic.getForFields(fields) |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
404 |
|
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
405 |
for role in roles: |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
406 |
group_key_name = role.scope.key().name() |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
407 |
existing_role_descriptions = role_descriptions.get(group_key_name) |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
408 |
|
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
409 |
if existing_role_descriptions: |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
410 |
# add this description to existing roles |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
411 |
existing_roles = existing_role_descriptions['roles'] |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
412 |
existing_roles[role_name] = role |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
413 |
else: |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
414 |
# create a description of this role |
1030
a0081c626acb
Style fixes in soc.views.models modules.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
1024
diff
changeset
|
415 |
role_description = {'roles': {role_name: role}, |
a0081c626acb
Style fixes in soc.views.models modules.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
1024
diff
changeset
|
416 |
'group': role.scope} |
1002
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
417 |
|
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
418 |
# add the new entry to our dictionary |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
419 |
role_descriptions[group_key_name] = role_description |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
420 |
|
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
421 |
# get the document view params to add the group's documents to the menu |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
422 |
doc_params = document_view.view.getParams() |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
423 |
|
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
424 |
menus = [] |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
425 |
|
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
426 |
# for each role description in our collection |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
427 |
for role_description in role_descriptions.itervalues(): |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
428 |
#start with an empty menu |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
429 |
menu = {} |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
430 |
|
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
431 |
# get the group for this role description |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
432 |
group_entity = role_description['group'] |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
433 |
|
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
434 |
# set the menu header name |
1065
b661dc8ffd5f
Added manage redirect.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1060
diff
changeset
|
435 |
menu['heading'] = group_entity.short_name |
1002
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
436 |
|
1003
b13da1ddcd50
Added sidebar entries for club entities.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1002
diff
changeset
|
437 |
# get the documents for this group entity |
1002
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
438 |
doc_items = document_view.view.getMenusForScope(group_entity, params) |
1023
d849b47645f9
Bugfixes after recent refactoring
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1017
diff
changeset
|
439 |
doc_items = sidebar.getSidebarMenu(id, user, doc_items, |
d849b47645f9
Bugfixes after recent refactoring
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1017
diff
changeset
|
440 |
params=doc_params) |
1002
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
441 |
|
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
442 |
# get the group specific items |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
443 |
group_items = self._getExtraMenuItems(role_description, params) |
1023
d849b47645f9
Bugfixes after recent refactoring
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1017
diff
changeset
|
444 |
group_items = sidebar.getSidebarMenu(id, user, group_items, |
d849b47645f9
Bugfixes after recent refactoring
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1017
diff
changeset
|
445 |
params=self._params) |
1002
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
446 |
|
1003
b13da1ddcd50
Added sidebar entries for club entities.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1002
diff
changeset
|
447 |
# add the items together |
1002
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
448 |
menu['items'] = doc_items + group_items |
1065
b661dc8ffd5f
Added manage redirect.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1060
diff
changeset
|
449 |
menu['group'] = params['name_plural'] |
1002
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
450 |
|
1003
b13da1ddcd50
Added sidebar entries for club entities.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1002
diff
changeset
|
451 |
# append this as a new menu |
1002
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
452 |
menus.append(menu) |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
453 |
|
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
454 |
return menus |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
455 |
|
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
456 |
def _getExtraMenuItems(self, role_description, params=None): |
1030
a0081c626acb
Style fixes in soc.views.models modules.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
1024
diff
changeset
|
457 |
"""Used to implement group instance specific needs for the side menu. |
1002
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
458 |
|
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
459 |
Args: |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
460 |
role_description : dict containing all the roles which is a dict of |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
461 |
name and the role entity to which it belongs. Also |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
462 |
group contains the group entity to which these roles |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
463 |
belong. |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
464 |
params: a dict with params for this View. |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
465 |
""" |
11a2aff6c3ad
Added sidebar support for group instances.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
998
diff
changeset
|
466 |
return [] |