app/soc/views/models/role.py
changeset 560 a32be584ee04
parent 543 280a1ac6bcc1
child 569 96d9655a7538
equal deleted inserted replaced
559:44e50e92621e 560:a32be584ee04
    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