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, |