author | Sverre Rabbelier <srabbelier@gmail.com> |
Sat, 14 Feb 2009 20:22:17 +0000 | |
changeset 1323 | a666374587df |
parent 1308 | 35b75ffcbb37 |
child 1343 | 4ba39392c854 |
permissions | -rw-r--r-- |
495
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
1 |
#!/usr/bin/python2.5 |
87afae6e4c51
Added basic 'invite' functionality
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. |
495
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
4 |
# |
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
5 |
# Licensed under the Apache License, Version 2.0 (the "License"); |
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
6 |
# you may not use this file except in compliance with the License. |
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
7 |
# You may obtain a copy of the License at |
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
8 |
# |
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
9 |
# http://www.apache.org/licenses/LICENSE-2.0 |
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
10 |
# |
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
11 |
# Unless required by applicable law or agreed to in writing, software |
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
12 |
# distributed under the License is distributed on an "AS IS" BASIS, |
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
13 |
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
14 |
# See the License for the specific language governing permissions and |
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
15 |
# limitations under the License. |
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
16 |
|
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
17 |
"""Views for Requests. |
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
18 |
""" |
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
19 |
|
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
20 |
__authors__ = [ |
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
21 |
'"Sverre Rabbelier" <sverre@rabbelier.nl>', |
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
22 |
'"Lennard de Rijk" <ljvderijk@gmail.com>', |
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
23 |
'"Pawel Solyga" <pawel.solyga@gmail.com>', |
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
24 |
] |
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
25 |
|
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
26 |
|
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
27 |
from google.appengine.api import users |
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
28 |
|
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
29 |
from django import forms |
920
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
30 |
from django import http |
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
31 |
from django.core import urlresolvers |
970
8b5611d5b053
Use ugettext instead of ugettext_lazy
Sverre Rabbelier <srabbelier@gmail.com>
parents:
962
diff
changeset
|
32 |
from django.utils.translation import ugettext |
495
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
33 |
|
920
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
34 |
from soc.logic import cleaning |
495
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
35 |
from soc.logic import dicts |
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
36 |
from soc.logic.models import sponsor as sponsor_logic |
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
37 |
from soc.logic.models import user as user_logic |
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
38 |
from soc.views import helper |
557 | 39 |
from soc.views import out_of_band |
586
a4a36b06a870
Make the sidebar dynamic depending on the user's rights
Sverre Rabbelier <srabbelier@gmail.com>
parents:
572
diff
changeset
|
40 |
from soc.views.helper import access |
876
0c1329d4b514
Make use of the new decorators in all applicable views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
858
diff
changeset
|
41 |
from soc.views.helper import decorators |
962
606871fda11c
Added request creation and processing to role.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
953
diff
changeset
|
42 |
from soc.views.helper import dynaform |
620
e74e0b74625f
Put the redirects in the views/helper/redirects.py module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
618
diff
changeset
|
43 |
from soc.views.helper import redirects |
920
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
44 |
from soc.views.helper import responses |
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
45 |
from soc.views.helper import widgets |
495
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
46 |
from soc.views.models import base |
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
47 |
|
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
48 |
import soc.models.request |
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
49 |
import soc.logic.models.request |
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
50 |
import soc.logic.dicts |
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
51 |
import soc.views.helper |
646
860e17e5118f
Remove cyclic imports by moving response method of out_of_band.Error class to soc.views.helper.responses module as errorResponse function. Apply changes to affected files.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
629
diff
changeset
|
52 |
import soc.views.helper.lists |
860e17e5118f
Remove cyclic imports by moving response method of out_of_band.Error class to soc.views.helper.responses module as errorResponse function. Apply changes to affected files.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
629
diff
changeset
|
53 |
import soc.views.helper.responses |
495
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
54 |
|
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
55 |
|
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
56 |
class View(base.View): |
920
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
57 |
"""View methods for the Request model. |
495
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
58 |
""" |
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
59 |
|
656
a76f1b443ea4
Cleanups in the views module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
651
diff
changeset
|
60 |
def __init__(self, params=None): |
495
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
61 |
"""Defines the fields and methods required for the base View class |
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
62 |
to provide the user with list, public, create, edit and delete views. |
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
63 |
|
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
64 |
Params: |
656
a76f1b443ea4
Cleanups in the views module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
651
diff
changeset
|
65 |
params: a dict with params for this View |
495
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
66 |
""" |
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
67 |
|
1007
3b66772d21a5
Major refactor of the access module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
986
diff
changeset
|
68 |
rights = access.Checker(params) |
1012
73f0b61f2d9d
Fold checkAgreesToSiteToS into checkIsUser
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1011
diff
changeset
|
69 |
rights['listSelf'] = ['checkIsUser'] |
1007
3b66772d21a5
Major refactor of the access module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
986
diff
changeset
|
70 |
rights['create'] = ['deny'] |
3b66772d21a5
Major refactor of the access module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
986
diff
changeset
|
71 |
rights['edit'] = ['checkIsDeveloper'] |
3b66772d21a5
Major refactor of the access module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
986
diff
changeset
|
72 |
rights['process_invite'] = ['checkIsMyGroupAcceptedRequest'] |
3b66772d21a5
Major refactor of the access module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
986
diff
changeset
|
73 |
rights['list'] = ['checkIsDeveloper'] |
3b66772d21a5
Major refactor of the access module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
986
diff
changeset
|
74 |
rights['delete'] = ['checkIsDeveloper'] |
1010
aeed003f50c5
Fixed two access related bugs
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1007
diff
changeset
|
75 |
rights['roles'] = ['checkIsUser'] |
587
7504504209a3
Fixed some access related bugs
Sverre Rabbelier <srabbelier@gmail.com>
parents:
586
diff
changeset
|
76 |
|
656
a76f1b443ea4
Cleanups in the views module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
651
diff
changeset
|
77 |
new_params = {} |
a76f1b443ea4
Cleanups in the views module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
651
diff
changeset
|
78 |
new_params['rights'] = rights |
a76f1b443ea4
Cleanups in the views module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
651
diff
changeset
|
79 |
new_params['logic'] = soc.logic.models.request.logic |
495
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
80 |
|
656
a76f1b443ea4
Cleanups in the views module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
651
diff
changeset
|
81 |
new_params['name'] = "Request" |
495
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
82 |
|
656
a76f1b443ea4
Cleanups in the views module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
651
diff
changeset
|
83 |
new_params['sidebar_defaults'] = [('/%s/list', 'List %(name_plural)s', 'list')] |
495
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
84 |
|
1084
9c4221f7b747
Requests can now not be created when you already have a similar request or already have the role the request is for.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1080
diff
changeset
|
85 |
new_params['create_template'] = ['soc/request/create.html'] |
970
8b5611d5b053
Use ugettext instead of ugettext_lazy
Sverre Rabbelier <srabbelier@gmail.com>
parents:
962
diff
changeset
|
86 |
new_params['save_message'] = [ugettext('Request saved.')] |
920
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
87 |
|
1085
0afbdd0905ef
Renamed state to status where appropriate.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1084
diff
changeset
|
88 |
new_params['extra_dynaexclude'] = ['status', 'role_verbose'] |
1084
9c4221f7b747
Requests can now not be created when you already have a similar request or already have the role the request is for.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1080
diff
changeset
|
89 |
|
920
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
90 |
new_params['create_extra_dynafields'] = { |
1229
ec3768cbf369
Refactored the picker so that it is more generic
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1181
diff
changeset
|
91 |
'link_id': widgets.ReferenceField(reference_url='user'), |
951
026696e4a3af
Rename processInvite view variable to process_invite to comply to our style guide. Remove some not needed whitespaces. Fix listSelf method parameters docstring in soc.views.models.request module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
944
diff
changeset
|
92 |
'role': forms.CharField(widget=widgets.ReadOnlyInput(), |
920
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
93 |
required=True), |
1084
9c4221f7b747
Requests can now not be created when you already have a similar request or already have the role the request is for.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1080
diff
changeset
|
94 |
'clean_link_id': cleaning.clean_existing_user('link_id'), |
920
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
95 |
} |
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
96 |
|
944
5ea2bd9e3fa6
Refactored invite system from club_admin to role to make the system work with host as well.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
940
diff
changeset
|
97 |
new_params['edit_extra_dynafields'] = { |
5ea2bd9e3fa6
Refactored invite system from club_admin to role to make the system work with host as well.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
940
diff
changeset
|
98 |
'scope_path': forms.CharField(widget=forms.HiddenInput, |
5ea2bd9e3fa6
Refactored invite system from club_admin to role to make the system work with host as well.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
940
diff
changeset
|
99 |
required=True), |
5ea2bd9e3fa6
Refactored invite system from club_admin to role to make the system work with host as well.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
940
diff
changeset
|
100 |
} |
5ea2bd9e3fa6
Refactored invite system from club_admin to role to make the system work with host as well.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
940
diff
changeset
|
101 |
|
1011
9bfaa13591cb
Removed unused URL pattern in soc/views/models/request.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1010
diff
changeset
|
102 |
patterns = [(r'^%(url_name)s/(?P<access_type>process_invite)/%(key_fields)s$', |
951
026696e4a3af
Rename processInvite view variable to process_invite to comply to our style guide. Remove some not needed whitespaces. Fix listSelf method parameters docstring in soc.views.models.request module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
944
diff
changeset
|
103 |
'soc.views.models.%(module_name)s.process_invite', |
982
9efcedcfeb3e
Changed the title for the process_request webpage.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
970
diff
changeset
|
104 |
'Process Invite to become')] |
920
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
105 |
|
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
106 |
new_params['extra_django_patterns'] = patterns |
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
107 |
|
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
108 |
new_params['invite_processing_template'] = 'soc/request/process_invite.html' |
962
606871fda11c
Added request creation and processing to role.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
953
diff
changeset
|
109 |
new_params['request_processing_template'] = 'soc/request/process_request.html' |
495
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
110 |
|
656
a76f1b443ea4
Cleanups in the views module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
651
diff
changeset
|
111 |
params = dicts.merge(params, new_params) |
495
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
112 |
|
656
a76f1b443ea4
Cleanups in the views module
Sverre Rabbelier <srabbelier@gmail.com>
parents:
651
diff
changeset
|
113 |
super(View, self).__init__(params=params) |
822
f37fed16c388
Fixed whitespace damage
Sverre Rabbelier <srabbelier@gmail.com>
parents:
799
diff
changeset
|
114 |
|
962
606871fda11c
Added request creation and processing to role.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
953
diff
changeset
|
115 |
# create and store the special forms for invite and requests |
606871fda11c
Added request creation and processing to role.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
953
diff
changeset
|
116 |
params['invite_form'] = params['create_form'] |
606871fda11c
Added request creation and processing to role.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
953
diff
changeset
|
117 |
|
606871fda11c
Added request creation and processing to role.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
953
diff
changeset
|
118 |
updated_fields = { |
606871fda11c
Added request creation and processing to role.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
953
diff
changeset
|
119 |
'link_id': forms.CharField(widget=widgets.ReadOnlyInput(), |
606871fda11c
Added request creation and processing to role.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
953
diff
changeset
|
120 |
required=True), |
1030
a0081c626acb
Style fixes in soc.views.models modules.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
1012
diff
changeset
|
121 |
'group_id': forms.CharField(widget=widgets.ReadOnlyInput(), |
962
606871fda11c
Added request creation and processing to role.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
953
diff
changeset
|
122 |
required=True)} |
606871fda11c
Added request creation and processing to role.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
953
diff
changeset
|
123 |
|
606871fda11c
Added request creation and processing to role.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
953
diff
changeset
|
124 |
request_form = dynaform.extendDynaForm( |
606871fda11c
Added request creation and processing to role.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
953
diff
changeset
|
125 |
dynaform = self._params['create_form'], |
606871fda11c
Added request creation and processing to role.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
953
diff
changeset
|
126 |
dynafields = updated_fields) |
606871fda11c
Added request creation and processing to role.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
953
diff
changeset
|
127 |
|
606871fda11c
Added request creation and processing to role.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
953
diff
changeset
|
128 |
params['request_form'] = request_form |
606871fda11c
Added request creation and processing to role.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
953
diff
changeset
|
129 |
|
606871fda11c
Added request creation and processing to role.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
953
diff
changeset
|
130 |
|
920
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
131 |
@decorators.merge_params |
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
132 |
@decorators.check_access |
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
133 |
def processInvite(self, request, access_type, |
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
134 |
page_name=None, params=None, **kwargs): |
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
135 |
"""Creates the page upon which an invite can be processed. |
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
136 |
|
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
137 |
Args: |
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
138 |
request: the standard Django HTTP request object |
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
139 |
access_type : the name of the access type which should be checked |
951
026696e4a3af
Rename processInvite view variable to process_invite to comply to our style guide. Remove some not needed whitespaces. Fix listSelf method parameters docstring in soc.views.models.request module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
944
diff
changeset
|
140 |
page_name: the page name displayed in templates as page and header title |
920
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
141 |
params: a dict with params for this View |
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
142 |
kwargs: the Key Fields for the specified entity |
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
143 |
""" |
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
144 |
|
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
145 |
# get the context for this webpage |
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
146 |
context = responses.getUniversalContext(request) |
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
147 |
|
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
148 |
request_logic = params['logic'] |
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
149 |
|
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
150 |
# get the request entity using the information from kwargs |
951
026696e4a3af
Rename processInvite view variable to process_invite to comply to our style guide. Remove some not needed whitespaces. Fix listSelf method parameters docstring in soc.views.models.request module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
944
diff
changeset
|
151 |
fields = {'link_id': kwargs['link_id'], |
026696e4a3af
Rename processInvite view variable to process_invite to comply to our style guide. Remove some not needed whitespaces. Fix listSelf method parameters docstring in soc.views.models.request module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
944
diff
changeset
|
152 |
'scope_path': kwargs['scope_path'], |
026696e4a3af
Rename processInvite view variable to process_invite to comply to our style guide. Remove some not needed whitespaces. Fix listSelf method parameters docstring in soc.views.models.request module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
944
diff
changeset
|
153 |
'role': kwargs['role'], |
1085
0afbdd0905ef
Renamed state to status where appropriate.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1084
diff
changeset
|
154 |
'status': 'group_accepted'} |
920
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
155 |
request_entity = request_logic.getForFields(fields, unique=True) |
982
9efcedcfeb3e
Changed the title for the process_request webpage.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
970
diff
changeset
|
156 |
|
9efcedcfeb3e
Changed the title for the process_request webpage.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
970
diff
changeset
|
157 |
# set the page name using the request_entity |
9efcedcfeb3e
Changed the title for the process_request webpage.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
970
diff
changeset
|
158 |
context['page_name'] = '%s %s' % (page_name, |
9efcedcfeb3e
Changed the title for the process_request webpage.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
970
diff
changeset
|
159 |
request_entity.role_verbose) |
9efcedcfeb3e
Changed the title for the process_request webpage.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
970
diff
changeset
|
160 |
|
920
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
161 |
get_dict = request.GET |
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
162 |
|
1085
0afbdd0905ef
Renamed state to status where appropriate.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1084
diff
changeset
|
163 |
if 'status' in get_dict.keys(): |
0afbdd0905ef
Renamed state to status where appropriate.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1084
diff
changeset
|
164 |
if get_dict['status'] == 'rejected': |
928
df051fc9d7a1
Replaced the boolean properties in soc/models/request.py with a state property.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
920
diff
changeset
|
165 |
# this invite has been rejected mark as rejected |
986
e9611a2288ca
Rename ModelProperties to EntityProperties
Sverre Rabbelier <srabbelier@gmail.com>
parents:
982
diff
changeset
|
166 |
request_logic.updateEntityProperties(request_entity, { |
1085
0afbdd0905ef
Renamed state to status where appropriate.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1084
diff
changeset
|
167 |
'status': 'rejected'}) |
982
9efcedcfeb3e
Changed the title for the process_request webpage.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
970
diff
changeset
|
168 |
|
920
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
169 |
# redirect to user role overview |
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
170 |
return http.HttpResponseRedirect('/user/roles') |
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
171 |
|
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
172 |
# put the entity in the context |
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
173 |
context['entity'] = request_entity |
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
174 |
context['module_name'] = params['module_name'] |
929
7431d7770197
Renamed redirect methods to comply with the rest of the module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
928
diff
changeset
|
175 |
context['invite_accepted_redirect'] = ( |
940
a40056afef83
Changed the access checks to comply with state in request.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
929
diff
changeset
|
176 |
redirects.getInviteAcceptedRedirect(request_entity, self._params)) |
920
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
177 |
|
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
178 |
#display the invite processing page using the appropriate template |
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
179 |
template = params['invite_processing_template'] |
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
180 |
|
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
181 |
return responses.respond(request, template, context=context) |
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
182 |
|
876
0c1329d4b514
Make use of the new decorators in all applicable views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
858
diff
changeset
|
183 |
@decorators.merge_params |
0c1329d4b514
Make use of the new decorators in all applicable views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
858
diff
changeset
|
184 |
@decorators.check_access |
710
edb5dbb1dea7
Add explicit access_types from the url
Sverre Rabbelier <srabbelier@gmail.com>
parents:
662
diff
changeset
|
185 |
def listSelf(self, request, access_type, |
edb5dbb1dea7
Add explicit access_types from the url
Sverre Rabbelier <srabbelier@gmail.com>
parents:
662
diff
changeset
|
186 |
page_name=None, params=None, **kwargs): |
519
561a438115eb
Adds the user's role page. Currently this only has an overview of the user's unhandled requests.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
514
diff
changeset
|
187 |
"""Displays the unhandled requests for this user. |
561a438115eb
Adds the user's role page. Currently this only has an overview of the user's unhandled requests.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
514
diff
changeset
|
188 |
|
561a438115eb
Adds the user's role page. Currently this only has an overview of the user's unhandled requests.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
514
diff
changeset
|
189 |
Args: |
561a438115eb
Adds the user's role page. Currently this only has an overview of the user's unhandled requests.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
514
diff
changeset
|
190 |
request: the standard Django HTTP request object |
951
026696e4a3af
Rename processInvite view variable to process_invite to comply to our style guide. Remove some not needed whitespaces. Fix listSelf method parameters docstring in soc.views.models.request module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
944
diff
changeset
|
191 |
access_type : the name of the access type which should be checked |
519
561a438115eb
Adds the user's role page. Currently this only has an overview of the user's unhandled requests.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
514
diff
changeset
|
192 |
page_name: the page name displayed in templates as page and header title |
561a438115eb
Adds the user's role page. Currently this only has an overview of the user's unhandled requests.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
514
diff
changeset
|
193 |
params: a dict with params for this View |
561a438115eb
Adds the user's role page. Currently this only has an overview of the user's unhandled requests.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
514
diff
changeset
|
194 |
kwargs: not used |
561a438115eb
Adds the user's role page. Currently this only has an overview of the user's unhandled requests.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
514
diff
changeset
|
195 |
""" |
561a438115eb
Adds the user's role page. Currently this only has an overview of the user's unhandled requests.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
514
diff
changeset
|
196 |
|
561a438115eb
Adds the user's role page. Currently this only has an overview of the user's unhandled requests.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
514
diff
changeset
|
197 |
# get the current user |
1181
6fb4134e1dfc
Calling getForCurrentAccount where necessary.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1085
diff
changeset
|
198 |
user_entity = user_logic.logic.getForCurrentAccount() |
556
6c22492b6349
Refactor requestSelf to be make use of the new split
Sverre Rabbelier <srabbelier@gmail.com>
parents:
554
diff
changeset
|
199 |
|
920
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
200 |
# construct the Unhandled Invites list |
556
6c22492b6349
Refactor requestSelf to be make use of the new split
Sverre Rabbelier <srabbelier@gmail.com>
parents:
554
diff
changeset
|
201 |
|
920
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
202 |
# only select the Invites for this user that haven't been handled yet |
562
1bf2beedda03
Made Request use the new link_id and scope_path
Sverre Rabbelier <srabbelier@gmail.com>
parents:
561
diff
changeset
|
203 |
filter = {'link_id': user_entity.link_id, |
1085
0afbdd0905ef
Renamed state to status where appropriate.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1084
diff
changeset
|
204 |
'status': 'group_accepted'} |
822
f37fed16c388
Fixed whitespace damage
Sverre Rabbelier <srabbelier@gmail.com>
parents:
799
diff
changeset
|
205 |
|
561
4db464032b25
Added a requests overview using the new multi-list page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
560
diff
changeset
|
206 |
uh_params = params.copy() |
929
7431d7770197
Renamed redirect methods to comply with the rest of the module.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
928
diff
changeset
|
207 |
uh_params['list_action'] = (redirects.getInviteProcessRedirect, None) |
970
8b5611d5b053
Use ugettext instead of ugettext_lazy
Sverre Rabbelier <srabbelier@gmail.com>
parents:
962
diff
changeset
|
208 |
uh_params['list_description'] = ugettext( |
920
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
209 |
"An overview of your unhandled invites.") |
556
6c22492b6349
Refactor requestSelf to be make use of the new split
Sverre Rabbelier <srabbelier@gmail.com>
parents:
554
diff
changeset
|
210 |
|
626
342bebadd075
Fix too long lines in soc.views.models.request, remove unused imports and change pending requests list description. Remove unused imports from soc.logic.path_link_name module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
620
diff
changeset
|
211 |
uh_list = helper.lists.getListContent( |
651
ef6e22d463cb
Remove the logic parameter from getListContent
Sverre Rabbelier <srabbelier@gmail.com>
parents:
646
diff
changeset
|
212 |
request, uh_params, filter, 0) |
556
6c22492b6349
Refactor requestSelf to be make use of the new split
Sverre Rabbelier <srabbelier@gmail.com>
parents:
554
diff
changeset
|
213 |
|
561
4db464032b25
Added a requests overview using the new multi-list page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
560
diff
changeset
|
214 |
# construct the Open Requests list |
822
f37fed16c388
Fixed whitespace damage
Sverre Rabbelier <srabbelier@gmail.com>
parents:
799
diff
changeset
|
215 |
|
920
39badbfb80be
Added the new way to process invites for club_admin only.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
890
diff
changeset
|
216 |
# only select the requests from the user |
561
4db464032b25
Added a requests overview using the new multi-list page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
560
diff
changeset
|
217 |
# that haven't been accepted by an admin yet |
951
026696e4a3af
Rename processInvite view variable to process_invite to comply to our style guide. Remove some not needed whitespaces. Fix listSelf method parameters docstring in soc.views.models.request module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
944
diff
changeset
|
218 |
filter = {'link_id': user_entity.link_id, |
1085
0afbdd0905ef
Renamed state to status where appropriate.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1084
diff
changeset
|
219 |
'status': 'new'} |
822
f37fed16c388
Fixed whitespace damage
Sverre Rabbelier <srabbelier@gmail.com>
parents:
799
diff
changeset
|
220 |
|
561
4db464032b25
Added a requests overview using the new multi-list page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
560
diff
changeset
|
221 |
ar_params = params.copy() |
970
8b5611d5b053
Use ugettext instead of ugettext_lazy
Sverre Rabbelier <srabbelier@gmail.com>
parents:
962
diff
changeset
|
222 |
ar_params['list_description'] = ugettext( |
626
342bebadd075
Fix too long lines in soc.views.models.request, remove unused imports and change pending requests list description. Remove unused imports from soc.logic.path_link_name module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
620
diff
changeset
|
223 |
"List of your pending requests.") |
822
f37fed16c388
Fixed whitespace damage
Sverre Rabbelier <srabbelier@gmail.com>
parents:
799
diff
changeset
|
224 |
|
626
342bebadd075
Fix too long lines in soc.views.models.request, remove unused imports and change pending requests list description. Remove unused imports from soc.logic.path_link_name module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
620
diff
changeset
|
225 |
ar_list = helper.lists.getListContent( |
651
ef6e22d463cb
Remove the logic parameter from getListContent
Sverre Rabbelier <srabbelier@gmail.com>
parents:
646
diff
changeset
|
226 |
request, ar_params, filter, 1) |
822
f37fed16c388
Fixed whitespace damage
Sverre Rabbelier <srabbelier@gmail.com>
parents:
799
diff
changeset
|
227 |
|
561
4db464032b25
Added a requests overview using the new multi-list page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
560
diff
changeset
|
228 |
# fill contents with all the needed lists |
626
342bebadd075
Fix too long lines in soc.views.models.request, remove unused imports and change pending requests list description. Remove unused imports from soc.logic.path_link_name module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
620
diff
changeset
|
229 |
contents = [uh_list, ar_list] |
822
f37fed16c388
Fixed whitespace damage
Sverre Rabbelier <srabbelier@gmail.com>
parents:
799
diff
changeset
|
230 |
|
561
4db464032b25
Added a requests overview using the new multi-list page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
560
diff
changeset
|
231 |
# call the _list method from base to display the list |
556
6c22492b6349
Refactor requestSelf to be make use of the new split
Sverre Rabbelier <srabbelier@gmail.com>
parents:
554
diff
changeset
|
232 |
return self._list(request, params, contents, page_name) |
495
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
233 |
|
662
0e89b027b140
Make use of the new generic key_name by lookup up scope_path
Sverre Rabbelier <srabbelier@gmail.com>
parents:
656
diff
changeset
|
234 |
|
495
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
235 |
view = View() |
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
236 |
|
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
237 |
create = view.create |
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
238 |
edit = view.edit |
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
239 |
delete = view.delete |
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
240 |
list = view.list |
519
561a438115eb
Adds the user's role page. Currently this only has an overview of the user's unhandled requests.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
514
diff
changeset
|
241 |
list_self = view.listSelf |
951
026696e4a3af
Rename processInvite view variable to process_invite to comply to our style guide. Remove some not needed whitespaces. Fix listSelf method parameters docstring in soc.views.models.request module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
944
diff
changeset
|
242 |
process_invite = view.processInvite |
495
87afae6e4c51
Added basic 'invite' functionality
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff
changeset
|
243 |
public = view.public |
858
e79e7a22326f
Add an export() view, and implement it as text/text for Document.
Todd Larsen <tlarsen@google.com>
parents:
822
diff
changeset
|
244 |
export = view.export |
e79e7a22326f
Add an export() view, and implement it as text/text for Document.
Todd Larsen <tlarsen@google.com>
parents:
822
diff
changeset
|
245 |