87 |
87 |
88 def invite(self, request, page_name=None, params=None, **kwargs): |
88 def invite(self, request, page_name=None, params=None, **kwargs): |
89 """Displays the request promotion to Role page. |
89 """Displays the request promotion to Role page. |
90 """ |
90 """ |
91 |
91 |
|
92 if not params: |
|
93 params = {} |
92 new_params = {} |
94 new_params = {} |
|
95 link_id = kwargs['link_id'] |
93 |
96 |
94 new_params['list_template'] = 'soc/models/list.html' |
97 new_params['list_action'] = (self.getCreateRequestRedirect, link_id) |
95 new_params['list_redirect_action'] = '/request/create/%s/%s' % ( |
|
96 self._params['url_name'], kwargs['link_id']) |
|
97 new_params['name'] = self._params['name'] |
|
98 new_params['name_short'] = self._params['name_short'] |
|
99 new_params['name_plural'] = self._params['name_plural'] |
|
100 new_params['instruction_text'] = \ |
98 new_params['instruction_text'] = \ |
101 self.DEF_INVITE_INSTRUCTION_MSG_FMT % self._params |
99 self.DEF_INVITE_INSTRUCTION_MSG_FMT % self._params |
102 |
100 |
103 params = dicts.merge(params, new_params) |
101 params = dicts.merge(new_params, params) |
|
102 params = dicts.merge(new_params, user_view.view._params) |
104 |
103 |
105 try: |
104 try: |
106 self.checkAccess('invite', request) |
105 self.checkAccess('invite', request) |
107 except out_of_band.Error, error: |
106 except out_of_band.Error, error: |
108 return error.response(request) |
107 return error.response(request) |
109 |
108 |
110 return user_view.list(request, page_name=page_name, params=params) |
109 content = helper.lists.getListContent(request, params, user_logic.logic, None) |
|
110 contents = [content] |
111 |
111 |
112 def promote(self, request, page_name=None, **kwargs): |
112 return self._list(request, params, contents, page_name) |
113 """Displays the promote to Role page. |
|
114 |
113 |
115 Args: |
114 def getCreateRequestRedirect(self, entity, group_scope): |
116 request: the standard Django HTTP request object |
115 """Returns the edit redirect for the specified entity |
117 page_name: the page name displayed in templates as page and header title |
|
118 kwargs: the Key Fields for the specified entity |
|
119 """ |
116 """ |
120 |
117 |
121 properties = { |
118 result ='/request/create/%s/%s/%s' % ( |
122 'accepted': True, |
119 self._params['url_name'], group_scope, entity.link_id) |
123 } |
120 return result |
124 |
|
125 entity = request_logic.logic.updateOrCreateFromFields(properties, **kwargs) |
|
126 |
|
127 # TODO(SRabbelier) finish this |
|
128 |
|
129 def accept(self, request, page_name=None, params=None, **kwargs): |
|
130 """Displays the accept a Role request page. |
|
131 |
|
132 Args: |
|
133 request: the standard Django HTTP request object |
|
134 page_name: the page name displayed in templates as page and header title |
|
135 kwargs: the Key Fields for the specified entity |
|
136 """ |
|
137 |
|
138 entity = request_logic.logic.getFromFields(**kwargs) |
|
139 |
|
140 if entity.declined: |
|
141 properties = { |
|
142 'declined': False, |
|
143 } |
|
144 |
|
145 request_logic.logic.updateModelProperties(entity, **properties) |
|
146 |
|
147 if not entity.accepted: |
|
148 raise Error("The request has not yet been accepted") |
|
149 |
|
150 id = users.get_current_user() |
|
151 user = models.user.logic.getFromFields(email=id.email()) |
|
152 |
|
153 if entity.user != user: |
|
154 raise Error("The request is being accepted by the wrong person") |
|
155 |
|
156 if entity.role != params['name'].lower(): |
|
157 raise Error("The wrong module is handling the request") |
|
158 |
|
159 redirect = params['accept_redirect'] |
|
160 suffix = self._logic.getKeySuffix(entity) |
|
161 |
|
162 return helper.responses.redirectToChangedSuffix( |
|
163 request, suffix, suffix) |
|
164 |
|
165 def decline(self, request, page_name=None, **kwargs): |
|
166 """Displays the decline a Role request page. |
|
167 |
|
168 Args: |
|
169 request: the standard Django HTTP request object |
|
170 page_name: the page name displayed in templates as page and header title |
|
171 kwargs: the Key Fields for the specified entity |
|
172 """ |
|
173 |
|
174 properties = { |
|
175 'declined': True, |
|
176 } |
|
177 |
|
178 request_logic.logic.updateOrCreateFromFields(properties, **kwargs) |
|
179 |
|
180 redirect = self._params['decline_redirect'] |
|
181 suffix = self._logic.getKeySuffix(entity) |
|
182 |
|
183 return helper.responses.redirectToChangedSuffix( |
|
184 request, suffix, suffix) |
|
185 |
121 |
186 def getDjangoURLPatterns(self): |
122 def getDjangoURLPatterns(self): |
187 """See base.View.getDjangoURLPatterns(). |
123 """See base.View.getDjangoURLPatterns(). |
188 """ |
124 """ |
189 |
125 |