diff -r 44e50e92621e -r a32be584ee04 app/soc/views/models/role.py --- a/app/soc/views/models/role.py Sat Nov 22 18:16:42 2008 +0000 +++ b/app/soc/views/models/role.py Sat Nov 22 18:22:36 2008 +0000 @@ -89,99 +89,35 @@ """Displays the request promotion to Role page. """ + if not params: + params = {} new_params = {} + link_id = kwargs['link_id'] - new_params['list_template'] = 'soc/models/list.html' - new_params['list_redirect_action'] = '/request/create/%s/%s' % ( - self._params['url_name'], kwargs['link_id']) - new_params['name'] = self._params['name'] - new_params['name_short'] = self._params['name_short'] - new_params['name_plural'] = self._params['name_plural'] + new_params['list_action'] = (self.getCreateRequestRedirect, link_id) new_params['instruction_text'] = \ self.DEF_INVITE_INSTRUCTION_MSG_FMT % self._params - params = dicts.merge(params, new_params) + params = dicts.merge(new_params, params) + params = dicts.merge(new_params, user_view.view._params) try: self.checkAccess('invite', request) except out_of_band.Error, error: return error.response(request) - return user_view.list(request, page_name=page_name, params=params) - - def promote(self, request, page_name=None, **kwargs): - """Displays the promote to Role page. - - Args: - request: the standard Django HTTP request object - page_name: the page name displayed in templates as page and header title - kwargs: the Key Fields for the specified entity - """ + content = helper.lists.getListContent(request, params, user_logic.logic, None) + contents = [content] - properties = { - 'accepted': True, - } - - entity = request_logic.logic.updateOrCreateFromFields(properties, **kwargs) - - # TODO(SRabbelier) finish this + return self._list(request, params, contents, page_name) - def accept(self, request, page_name=None, params=None, **kwargs): - """Displays the accept a Role request page. - - Args: - request: the standard Django HTTP request object - page_name: the page name displayed in templates as page and header title - kwargs: the Key Fields for the specified entity + def getCreateRequestRedirect(self, entity, group_scope): + """Returns the edit redirect for the specified entity """ - entity = request_logic.logic.getFromFields(**kwargs) - - if entity.declined: - properties = { - 'declined': False, - } - - request_logic.logic.updateModelProperties(entity, **properties) - - if not entity.accepted: - raise Error("The request has not yet been accepted") - - id = users.get_current_user() - user = models.user.logic.getFromFields(email=id.email()) - - if entity.user != user: - raise Error("The request is being accepted by the wrong person") - - if entity.role != params['name'].lower(): - raise Error("The wrong module is handling the request") - - redirect = params['accept_redirect'] - suffix = self._logic.getKeySuffix(entity) - - return helper.responses.redirectToChangedSuffix( - request, suffix, suffix) - - def decline(self, request, page_name=None, **kwargs): - """Displays the decline a Role request page. - - Args: - request: the standard Django HTTP request object - page_name: the page name displayed in templates as page and header title - kwargs: the Key Fields for the specified entity - """ - - properties = { - 'declined': True, - } - - request_logic.logic.updateOrCreateFromFields(properties, **kwargs) - - redirect = self._params['decline_redirect'] - suffix = self._logic.getKeySuffix(entity) - - return helper.responses.redirectToChangedSuffix( - request, suffix, suffix) + result ='/request/create/%s/%s/%s' % ( + self._params['url_name'], group_scope, entity.link_id) + return result def getDjangoURLPatterns(self): """See base.View.getDjangoURLPatterns().