app/soc/views/models/student_proposal.py
changeset 2285 76707dc77b33
parent 2260 129901892999
child 2360 e389d26949db
equal deleted inserted replaced
2284:e7bb719e2539 2285:76707dc77b33
   483                 'scope': program_entity}
   483                 'scope': program_entity}
   484 
   484 
   485       org_entity = org_logic.logic.getForFields(filter, unique=True)
   485       org_entity = org_logic.logic.getForFields(filter, unique=True)
   486 
   486 
   487       if org_entity:
   487       if org_entity:
   488         # organization found use special form
   488         # organization found use special form and also seed this form
   489         params['create_form'] = params['student_create_form']
   489         params['create_form'] = params['student_create_form']
       
   490         kwargs['organization'] = org_entity.link_id
   490         kwargs['content'] = org_entity.contrib_template
   491         kwargs['content'] = org_entity.contrib_template
   491 
   492 
   492     # Create page is an edit page with no key fields
   493     return super(View, self).create(request, access_type, page_name=page_name,
   493     empty_kwargs = {}
   494                      params=params, **kwargs)
   494     fields = self._logic.getKeyFieldNames()
       
   495     for field in fields:
       
   496       empty_kwargs[field] = None
       
   497 
       
   498     return super(View, self).edit(request, access_type, page_name=page_name,
       
   499                      params=params, seed=kwargs, **empty_kwargs)
       
   500 
   495 
   501   @decorators.merge_params
   496   @decorators.merge_params
   502   @decorators.check_access
   497   @decorators.check_access
   503   def edit(self, request, access_type,
   498   def edit(self, request, access_type,
   504            page_name=None, params=None, seed=None, **kwargs):
   499            page_name=None, params=None, seed=None, **kwargs):
   516                 'link_id': kwargs['link_id']}
   511                 'link_id': kwargs['link_id']}
   517 
   512 
   518       proposal_logic = params['logic']
   513       proposal_logic = params['logic']
   519       student_proposal_entity = proposal_logic.getForFields(filter, unique=True)
   514       student_proposal_entity = proposal_logic.getForFields(filter, unique=True)
   520       reviewer = student_proposal_entity.scope
   515       reviewer = student_proposal_entity.scope
   521       
   516 
   522       # update the entity mark it as invalid
   517       # update the entity mark it as invalid
   523       proposal_logic.updateEntityProperties(student_proposal_entity,
   518       proposal_logic.updateEntityProperties(student_proposal_entity,
   524           {'status': 'invalid'})
   519           {'status': 'invalid'})
   525 
   520 
   526       # redirect to the program's homepage
   521       # redirect to the program's homepage
   527       redirect_url = redirects.getHomeRedirect(student_proposal_entity.program,
   522       redirect_url = redirects.getHomeRedirect(student_proposal_entity.program,
   528           {'url_name': 'program'})
   523           {'url_name': 'program'})
   529       
   524 
   530       comment = "Student withdrew proposal."
   525       comment = "Student withdrew proposal."
   531       self._createReviewFor(student_proposal_entity, reviewer, comment)
   526       self._createReviewFor(student_proposal_entity, reviewer, comment)
   532       return http.HttpResponseRedirect(redirect_url)
   527       return http.HttpResponseRedirect(redirect_url)
   533 
   528 
   534     return super(View, self).edit(request=request, access_type=access_type,
   529     return super(View, self).edit(request=request, access_type=access_type,