author | Lennard de Rijk <ljvderijk@gmail.com> |
Mon, 25 May 2009 23:45:20 +0200 | |
changeset 2348 | 0edff67b472d |
parent 2285 | 76707dc77b33 |
child 2360 | e389d26949db |
permissions | -rw-r--r-- |
1426
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
1 |
#!/usr/bin/python2.5 |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
2 |
# |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
3 |
# Copyright 2009 the Melange authors. |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
4 |
# |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
5 |
# Licensed under the Apache License, Version 2.0 (the "License"); |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
6 |
# you may not use this file except in compliance with the License. |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
7 |
# You may obtain a copy of the License at |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
8 |
# |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
9 |
# http://www.apache.org/licenses/LICENSE-2.0 |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
10 |
# |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
11 |
# Unless required by applicable law or agreed to in writing, software |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
12 |
# distributed under the License is distributed on an "AS IS" BASIS, |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
13 |
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
14 |
# See the License for the specific language governing permissions and |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
15 |
# limitations under the License. |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
16 |
|
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
17 |
"""Views for Student Proposal. |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
18 |
""" |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
19 |
|
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
20 |
__authors__ = [ |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
21 |
'"Lennard de Rijk" <ljvderijk@gmail.com>', |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
22 |
] |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
23 |
|
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
24 |
|
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
25 |
import datetime |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
26 |
import time |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
27 |
|
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
28 |
from django import forms |
1498
00293057b009
Added proposal withdrawal for students.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1491
diff
changeset
|
29 |
from django import http |
2094
8c0531c9870d
Allow students to see and comment on withdrawn and ineligible proposals, hide withdraw button for those proposals.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2092
diff
changeset
|
30 |
from django.utils.translation import ugettext |
1426
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
31 |
|
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
32 |
from soc.logic import cleaning |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
33 |
from soc.logic import dicts |
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
34 |
from soc.logic.models import mentor as mentor_logic |
1426
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
35 |
from soc.logic.models import organization as org_logic |
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
36 |
from soc.logic.models import org_admin as org_admin_logic |
1426
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
37 |
from soc.logic.models import student as student_logic |
1469
d69b00439d59
Added listing of your own student proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1467
diff
changeset
|
38 |
from soc.logic.models import user as user_logic |
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
39 |
from soc.views import helper |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
40 |
from soc.views import out_of_band |
1426
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
41 |
from soc.views.helper import access |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
42 |
from soc.views.helper import decorators |
1569
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
43 |
from soc.views.helper import dynaform |
2094
8c0531c9870d
Allow students to see and comment on withdrawn and ineligible proposals, hide withdraw button for those proposals.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2092
diff
changeset
|
44 |
from soc.views.helper import lists |
1569
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
45 |
from soc.views.helper import params as params_helper |
1426
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
46 |
from soc.views.helper import redirects |
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
47 |
from soc.views.helper import responses |
1426
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
48 |
from soc.views.helper import widgets |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
49 |
from soc.views.models import base |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
50 |
from soc.views.models import student as student_view |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
51 |
|
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
52 |
import soc.logic.models.student_proposal |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
53 |
|
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
54 |
|
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
55 |
class View(base.View): |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
56 |
"""View methods for the Student Proposal model. |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
57 |
""" |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
58 |
|
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
59 |
def __init__(self, params=None): |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
60 |
"""Defines the fields and methods required for the base View class |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
61 |
to provide the user with list, public, create, edit and delete views. |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
62 |
|
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
63 |
Params: |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
64 |
params: a dict with params for this View |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
65 |
""" |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
66 |
|
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
67 |
rights = access.Checker(params) |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
68 |
rights['create'] = ['checkIsDeveloper'] |
1995
768f533d91e3
Added check to prevent students from submitting more proposals then allowed by the program settings.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1898
diff
changeset
|
69 |
rights['edit'] = [('checkCanStudentPropose', ['scope_path', False]), |
1467
c5f99265a680
Changed the access checks in student_proposal view to use the newly created checks.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1430
diff
changeset
|
70 |
('checkRoleAndStatusForStudentProposal', |
2094
8c0531c9870d
Allow students to see and comment on withdrawn and ineligible proposals, hide withdraw button for those proposals.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2092
diff
changeset
|
71 |
[['proposer'], ['active'], ['new', 'pending', 'invalid']])] |
1426
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
72 |
rights['delete'] = ['checkIsDeveloper'] |
1467
c5f99265a680
Changed the access checks in student_proposal view to use the newly created checks.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1430
diff
changeset
|
73 |
rights['show'] = [ |
c5f99265a680
Changed the access checks in student_proposal view to use the newly created checks.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1430
diff
changeset
|
74 |
('checkRoleAndStatusForStudentProposal', |
c5f99265a680
Changed the access checks in student_proposal view to use the newly created checks.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1430
diff
changeset
|
75 |
[['proposer', 'org_admin', 'mentor', 'host'], |
1639
170ac4ca078d
Fix too long lines in soc.views.models.student_proposal module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
1620
diff
changeset
|
76 |
['active', 'inactive'], |
2094
8c0531c9870d
Allow students to see and comment on withdrawn and ineligible proposals, hide withdraw button for those proposals.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2092
diff
changeset
|
77 |
['new', 'pending', 'accepted', 'rejected', 'invalid']])] |
1426
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
78 |
rights['list'] = ['checkIsDeveloper'] |
1482
5229a40d4792
Added view which lists all orgs a student can propose to.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1469
diff
changeset
|
79 |
rights['list_orgs'] = [ |
5229a40d4792
Added view which lists all orgs a student can propose to.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1469
diff
changeset
|
80 |
('checkIsStudent', ['scope_path', ['active']]), |
1995
768f533d91e3
Added check to prevent students from submitting more proposals then allowed by the program settings.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1898
diff
changeset
|
81 |
('checkCanStudentPropose', ['scope_path', False])] |
1469
d69b00439d59
Added listing of your own student proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1467
diff
changeset
|
82 |
rights['list_self'] = [ |
d69b00439d59
Added listing of your own student proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1467
diff
changeset
|
83 |
('checkIsStudent', ['scope_path', ['active', 'inactive']])] |
1467
c5f99265a680
Changed the access checks in student_proposal view to use the newly created checks.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1430
diff
changeset
|
84 |
rights['apply'] = [ |
c5f99265a680
Changed the access checks in student_proposal view to use the newly created checks.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1430
diff
changeset
|
85 |
('checkIsStudent', ['scope_path', ['active']]), |
1995
768f533d91e3
Added check to prevent students from submitting more proposals then allowed by the program settings.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1898
diff
changeset
|
86 |
('checkCanStudentPropose', ['scope_path', True])] |
1620
45f4e9cd9100
Added access check to student_proposal review.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1613
diff
changeset
|
87 |
rights['review'] = [('checkRoleAndStatusForStudentProposal', |
45f4e9cd9100
Added access check to student_proposal review.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1613
diff
changeset
|
88 |
[['org_admin', 'mentor', 'host'], |
2258
280d2cf745f2
Allowing student project review page to be viewed in read-only mode after the deadline has passed.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2191
diff
changeset
|
89 |
['active'], |
280d2cf745f2
Allowing student project review page to be viewed in read-only mode after the deadline has passed.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2191
diff
changeset
|
90 |
['new', 'pending', 'accepted', 'rejected', 'invalid']])] |
1426
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
91 |
|
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
92 |
new_params = {} |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
93 |
new_params['logic'] = soc.logic.models.student_proposal.logic |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
94 |
new_params['rights'] = rights |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
95 |
new_params['name'] = "Student Proposal" |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
96 |
new_params['url_name'] = "student_proposal" |
1853
6cd70644892d
Group StudentProposals under Students in the sidebar.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1840
diff
changeset
|
97 |
new_params['sidebar_grouping'] = 'Students' |
1426
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
98 |
|
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
99 |
new_params['scope_view'] = student_view |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
100 |
new_params['scope_redirect'] = redirects.getCreateRedirect |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
101 |
|
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
102 |
new_params['no_create_with_key_fields'] = True |
2191
d20557e217dc
Proposal CSV export for students.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2185
diff
changeset
|
103 |
new_params['list_key_order'] = ['title', 'abstract', 'content', |
d20557e217dc
Proposal CSV export for students.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2185
diff
changeset
|
104 |
'additional_info', 'created_on', 'last_modified_on'] |
1426
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
105 |
|
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
106 |
patterns = [ |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
107 |
(r'^%(url_name)s/(?P<access_type>apply)/%(scope)s$', |
1569
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
108 |
'soc.views.models.%(module_name)s.apply', |
1426
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
109 |
'Create a new %(name)s'), |
1469
d69b00439d59
Added listing of your own student proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1467
diff
changeset
|
110 |
(r'^%(url_name)s/(?P<access_type>list_self)/%(scope)s$', |
d69b00439d59
Added listing of your own student proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1467
diff
changeset
|
111 |
'soc.views.models.%(module_name)s.list_self', |
1482
5229a40d4792
Added view which lists all orgs a student can propose to.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1469
diff
changeset
|
112 |
'List my %(name_plural)s'), |
5229a40d4792
Added view which lists all orgs a student can propose to.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1469
diff
changeset
|
113 |
(r'^%(url_name)s/(?P<access_type>list_orgs)/%(scope)s$', |
1484
6b00a2a43eaf
Changed the method and variable name in student_proposal to match the access type.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1482
diff
changeset
|
114 |
'soc.views.models.%(module_name)s.list_orgs', |
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
115 |
'List my %(name_plural)s'), |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
116 |
(r'^%(url_name)s/(?P<access_type>review)/%(key_fields)s$', |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
117 |
'soc.views.models.%(module_name)s.review', |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
118 |
'Review %(name)s'), |
1426
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
119 |
] |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
120 |
|
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
121 |
new_params['extra_django_patterns'] = patterns |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
122 |
|
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
123 |
new_params['extra_dynaexclude'] = ['org', 'program', 'score', |
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
124 |
'status', 'mentor', 'link_id', |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
125 |
'possible_mentors'] |
1426
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
126 |
|
1430
ff8cc6b15e6a
Rename dynafields to dynaproperties
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1426
diff
changeset
|
127 |
new_params['create_extra_dynaproperties'] = { |
1426
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
128 |
'content': forms.fields.CharField(required=True, |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
129 |
widget=widgets.FullTinyMCE(attrs={'rows': 25, 'cols': 100})), |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
130 |
'scope_path': forms.CharField(widget=forms.HiddenInput, |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
131 |
required=True), |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
132 |
'organization': forms.CharField(label='Organization Link ID', |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
133 |
required=True), |
2031
f018461e0f8a
Enforce the 500 character limit for abstracts.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2011
diff
changeset
|
134 |
'clean_abstract': cleaning.clean_content_length('abstract'), |
2006
8b7b5bc9abe2
Added cleaning to student proposal content and the contents of the reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2003
diff
changeset
|
135 |
'clean_content': cleaning.clean_html_content('content'), |
1426
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
136 |
'clean_organization': cleaning.clean_link_id('organization'), |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
137 |
'clean_additional_info': cleaning.clean_url('additional_info'), |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
138 |
'clean': cleaning.validate_student_proposal('organization', |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
139 |
'scope_path', student_logic, org_logic), |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
140 |
} |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
141 |
|
1430
ff8cc6b15e6a
Rename dynafields to dynaproperties
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1426
diff
changeset
|
142 |
new_params['edit_extra_dynaproperties'] = { |
1426
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
143 |
'organization': forms.CharField(label='Organization Link ID', |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
144 |
widget=widgets.ReadOnlyInput), |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
145 |
'link_id': forms.CharField(widget=forms.HiddenInput) |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
146 |
} |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
147 |
|
1498
00293057b009
Added proposal withdrawal for students.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1491
diff
changeset
|
148 |
new_params['edit_template'] = 'soc/student_proposal/edit.html' |
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
149 |
new_params['review_template'] = 'soc/student_proposal/review.html' |
2258
280d2cf745f2
Allowing student project review page to be viewed in read-only mode after the deadline has passed.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2191
diff
changeset
|
150 |
new_params['review_after_deadline_template'] = 'soc/student_proposal/review_after_deadline.html' |
1426
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
151 |
|
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
152 |
params = dicts.merge(params, new_params) |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
153 |
|
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
154 |
super(View, self).__init__(params=params) |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
155 |
|
1569
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
156 |
# create the special form for students |
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
157 |
dynafields = [ |
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
158 |
{'name': 'organization', |
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
159 |
'base': forms.CharField, |
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
160 |
'label': 'Organization Link ID', |
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
161 |
'widget': widgets.ReadOnlyInput(), |
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
162 |
'required': False, |
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
163 |
}, |
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
164 |
] |
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
165 |
|
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
166 |
dynaproperties = params_helper.getDynaFields(dynafields) |
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
167 |
|
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
168 |
student_create_form = dynaform.extendDynaForm( |
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
169 |
dynaform=self._params['create_form'], |
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
170 |
dynaproperties=dynaproperties) |
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
171 |
|
2177
e2c193e1f631
Do not rely on dicts.merge to change target
Sverre Rabbelier <srabbelier@gmail.com>
parents:
2174
diff
changeset
|
172 |
self._params['student_create_form'] = student_create_form |
1569
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
173 |
|
1752
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
174 |
# create the special form for public review |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
175 |
dynafields = [ |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
176 |
{'name': 'comment', |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
177 |
'base': forms.CharField, |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
178 |
'widget': widgets.FullTinyMCE(attrs={'rows': 10, 'cols': 40}), |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
179 |
'label': 'Comment', |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
180 |
'required': False, |
2174
19ed1c42e836
Added a warning message to alert the user that reviews are not editable.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2173
diff
changeset
|
181 |
'example_text': 'Caution, you will not be able to edit your comment!', |
1752
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
182 |
}, |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
183 |
] |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
184 |
|
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
185 |
dynaproperties = params_helper.getDynaFields(dynafields) |
2006
8b7b5bc9abe2
Added cleaning to student proposal content and the contents of the reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2003
diff
changeset
|
186 |
dynaproperties['clean_comment'] = cleaning.clean_html_content('comment') |
1752
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
187 |
|
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
188 |
public_review_form = dynaform.newDynaForm(dynamodel=None, |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
189 |
dynabase=helper.forms.BaseForm, dynainclude=None, |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
190 |
dynaexclude=None, dynaproperties=dynaproperties) |
2177
e2c193e1f631
Do not rely on dicts.merge to change target
Sverre Rabbelier <srabbelier@gmail.com>
parents:
2174
diff
changeset
|
191 |
self._params['public_review_form'] = public_review_form |
1752
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
192 |
|
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
193 |
# create the special form for mentors |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
194 |
dynafields = [ |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
195 |
{'name': 'score', |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
196 |
'base': forms.ChoiceField, |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
197 |
'label': 'Score', |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
198 |
'initial': 0, |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
199 |
'required': False, |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
200 |
'passthrough': ['initial', 'required', 'choices'], |
1839
92b28d1bf2f5
Added example and help text to clarify the use of some fields on the proposal ranking.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1838
diff
changeset
|
201 |
'example_text': |
92b28d1bf2f5
Added example and help text to clarify the use of some fields on the proposal ranking.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1838
diff
changeset
|
202 |
'A score will only be assigned if the review is private!', |
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
203 |
'choices': [(-4,'-4: Wow. This. Sucks.'), |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
204 |
(-3,'-3: Needs a lot of work'), |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
205 |
(-2,'-2: This is bad'), |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
206 |
(-1,'-1: I dont like this'), |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
207 |
(0,'0: No score'), |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
208 |
(1,'1: Might have potential'), |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
209 |
(2,'2: Good'), |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
210 |
(3,'3: Almost there'), |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
211 |
(4,'4: Made. Of. Awesome.')] |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
212 |
}, |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
213 |
{'name': 'comment', |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
214 |
'base': forms.CharField, |
1715
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
215 |
'widget': widgets.FullTinyMCE(attrs={'rows': 10, 'cols': 40}), |
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
216 |
'label': 'Comment', |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
217 |
'required': False, |
2174
19ed1c42e836
Added a warning message to alert the user that reviews are not editable.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2173
diff
changeset
|
218 |
'example_text': 'Caution, you will not be able to edit your review!', |
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
219 |
}, |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
220 |
{'name': 'public', |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
221 |
'base': forms.BooleanField, |
2096
eed59b94aae2
Changed label and help_text for public review button on studentproposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2094
diff
changeset
|
222 |
'label': 'Review visible to Student', |
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
223 |
'initial': False, |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
224 |
'required': False, |
1838
5a8a254af95b
Some textual changes for proposal reviewing.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1787
diff
changeset
|
225 |
'help_text': 'By ticking this box the score will not be assigned, ' |
2096
eed59b94aae2
Changed label and help_text for public review button on studentproposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2094
diff
changeset
|
226 |
'and the review will be visible to the student.', |
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
227 |
}, |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
228 |
] |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
229 |
|
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
230 |
dynaproperties = params_helper.getDynaFields(dynafields) |
2006
8b7b5bc9abe2
Added cleaning to student proposal content and the contents of the reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2003
diff
changeset
|
231 |
dynaproperties['clean_comment'] = cleaning.clean_html_content('comment') |
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
232 |
|
1639
170ac4ca078d
Fix too long lines in soc.views.models.student_proposal module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
1620
diff
changeset
|
233 |
mentor_review_form = dynaform.newDynaForm(dynamodel=None, |
170ac4ca078d
Fix too long lines in soc.views.models.student_proposal module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
1620
diff
changeset
|
234 |
dynabase=helper.forms.BaseForm, dynainclude=None, |
170ac4ca078d
Fix too long lines in soc.views.models.student_proposal module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
1620
diff
changeset
|
235 |
dynaexclude=None, dynaproperties=dynaproperties) |
2177
e2c193e1f631
Do not rely on dicts.merge to change target
Sverre Rabbelier <srabbelier@gmail.com>
parents:
2174
diff
changeset
|
236 |
self._params['mentor_review_form'] = mentor_review_form |
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
237 |
|
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
238 |
dynafields = [ |
1787
b623d96bc830
Organization admins can now put a Student Proposal at a specific rank.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1779
diff
changeset
|
239 |
{'name': 'rank', |
b623d96bc830
Organization admins can now put a Student Proposal at a specific rank.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1779
diff
changeset
|
240 |
'base': forms.IntegerField, |
b623d96bc830
Organization admins can now put a Student Proposal at a specific rank.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1779
diff
changeset
|
241 |
'label': 'Set to rank', |
1839
92b28d1bf2f5
Added example and help text to clarify the use of some fields on the proposal ranking.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1838
diff
changeset
|
242 |
'help_text': |
92b28d1bf2f5
Added example and help text to clarify the use of some fields on the proposal ranking.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1838
diff
changeset
|
243 |
'Set this proposal to the given rank (ignores the given score)', |
2076
1cd180cc56c9
Style fixes and removal of unused imports in soc.views.models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2051
diff
changeset
|
244 |
'example_text': 'A rank will only be assigned if the ' |
1cd180cc56c9
Style fixes and removal of unused imports in soc.views.models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2051
diff
changeset
|
245 |
'review is private!', |
1787
b623d96bc830
Organization admins can now put a Student Proposal at a specific rank.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1779
diff
changeset
|
246 |
'min_value': 1, |
b623d96bc830
Organization admins can now put a Student Proposal at a specific rank.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1779
diff
changeset
|
247 |
'required': False, |
b623d96bc830
Organization admins can now put a Student Proposal at a specific rank.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1779
diff
changeset
|
248 |
'passthrough': ['min_value', 'required', 'help_text'], |
b623d96bc830
Organization admins can now put a Student Proposal at a specific rank.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1779
diff
changeset
|
249 |
}, |
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
250 |
{'name': 'mentor', |
2134
bd93e34108b8
Add auto-completion for mentor field
Sverre Rabbelier <srabbelier@gmail.com>
parents:
2098
diff
changeset
|
251 |
'base': widgets.ReferenceField, |
bd93e34108b8
Add auto-completion for mentor field
Sverre Rabbelier <srabbelier@gmail.com>
parents:
2098
diff
changeset
|
252 |
'passthrough': ['reference_url', 'required', 'label', 'filter'], |
bd93e34108b8
Add auto-completion for mentor field
Sverre Rabbelier <srabbelier@gmail.com>
parents:
2098
diff
changeset
|
253 |
'reference_url': 'mentor', |
bd93e34108b8
Add auto-completion for mentor field
Sverre Rabbelier <srabbelier@gmail.com>
parents:
2098
diff
changeset
|
254 |
'filter': ['__org__'], |
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
255 |
'label': 'Assign Mentor (Link ID)', |
1839
92b28d1bf2f5
Added example and help text to clarify the use of some fields on the proposal ranking.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1838
diff
changeset
|
256 |
'required': False, |
92b28d1bf2f5
Added example and help text to clarify the use of some fields on the proposal ranking.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1838
diff
changeset
|
257 |
'help_text': 'Fill in the Link ID of the Mentor ' |
92b28d1bf2f5
Added example and help text to clarify the use of some fields on the proposal ranking.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1838
diff
changeset
|
258 |
'you would like to assign to this Proposal. ' |
92b28d1bf2f5
Added example and help text to clarify the use of some fields on the proposal ranking.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1838
diff
changeset
|
259 |
'Leave this box empty if you don\'t want any mentor assigned.', |
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
260 |
}, |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
261 |
] |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
262 |
|
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
263 |
dynaproperties = params_helper.getDynaFields(dynafields) |
2006
8b7b5bc9abe2
Added cleaning to student proposal content and the contents of the reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2003
diff
changeset
|
264 |
dynaproperties['clean_comment'] = cleaning.clean_html_content('comment') |
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
265 |
|
1639
170ac4ca078d
Fix too long lines in soc.views.models.student_proposal module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
1620
diff
changeset
|
266 |
admin_review_form = dynaform.extendDynaForm(dynaform=mentor_review_form, |
170ac4ca078d
Fix too long lines in soc.views.models.student_proposal module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
1620
diff
changeset
|
267 |
dynaproperties=dynaproperties) |
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
268 |
|
2177
e2c193e1f631
Do not rely on dicts.merge to change target
Sverre Rabbelier <srabbelier@gmail.com>
parents:
2174
diff
changeset
|
269 |
self._params['admin_review_form'] = admin_review_form |
1569
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
270 |
|
1426
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
271 |
def _editGet(self, request, entity, form): |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
272 |
"""See base.View._editGet(). |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
273 |
""" |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
274 |
|
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
275 |
form.fields['link_id'].initial = entity.link_id |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
276 |
form.fields['organization'].initial = entity.org.link_id |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
277 |
|
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
278 |
return super(View, self)._editGet(request, entity, form) |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
279 |
|
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
280 |
def _editPost(self, request, entity, fields): |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
281 |
"""See base.View._editPost(). |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
282 |
""" |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
283 |
|
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
284 |
if not entity: |
2076
1cd180cc56c9
Style fixes and removal of unused imports in soc.views.models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2051
diff
changeset
|
285 |
fields['link_id'] = 't%i' % (int(time.time()*100)) |
1426
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
286 |
else: |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
287 |
fields['link_id'] = entity.link_id |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
288 |
|
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
289 |
# fill in the scope via call to super |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
290 |
super(View, self)._editPost(request, entity, fields) |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
291 |
|
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
292 |
if not entity: |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
293 |
# creating a new application so set the program and org field |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
294 |
fields['program'] = fields['scope'].scope |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
295 |
|
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
296 |
filter = {'scope': fields['program'], |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
297 |
'link_id': fields['organization']} |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
298 |
fields['org'] = org_logic.logic.getForFields(filter, unique=True) |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
299 |
|
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
300 |
# explicitly change the last_modified_on since the content has been edited |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
301 |
fields['last_modified_on'] = datetime.datetime.now() |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
302 |
|
1752
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
303 |
@decorators.merge_params |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
304 |
@decorators.check_access |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
305 |
def public(self, request, access_type, |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
306 |
page_name=None, params=None, **kwargs): |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
307 |
"""View in which the student can see and reply to the comments on the |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
308 |
Student Proposal. |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
309 |
|
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
310 |
For params see base.view.Public(). |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
311 |
""" |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
312 |
|
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
313 |
context = helper.responses.getUniversalContext(request) |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
314 |
helper.responses.useJavaScript(context, params['js_uses_all']) |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
315 |
context['page_name'] = page_name |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
316 |
|
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
317 |
try: |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
318 |
entity = self._logic.getFromKeyFieldsOr404(kwargs) |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
319 |
except out_of_band.Error, error: |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
320 |
return helper.responses.errorResponse( |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
321 |
error, request, template=params['error_public'], context=context) |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
322 |
|
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
323 |
context['entity'] = entity |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
324 |
context['entity_type'] = params['name'] |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
325 |
context['entity_type_url'] = params['url_name'] |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
326 |
|
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
327 |
if request.method == 'POST': |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
328 |
return self.publicPost(request, context, params, entity, **kwargs) |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
329 |
else: # request.method == 'GET' |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
330 |
return self.publicGet(request, context, params, entity, **kwargs) |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
331 |
|
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
332 |
def publicPost(self, request, context, params, entity, **kwargs): |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
333 |
"""Handles the POST request for the entity's public page. |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
334 |
|
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
335 |
Args: |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
336 |
entity: the student proposal entity |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
337 |
rest: see base.View.public() |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
338 |
""" |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
339 |
|
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
340 |
# populate the form using the POST data |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
341 |
form = params['public_review_form'](request.POST) |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
342 |
|
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
343 |
if not form.is_valid(): |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
344 |
# get some entity specific context |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
345 |
self.updatePublicContext(context, entity, params) |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
346 |
|
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
347 |
# return the invalid form response |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
348 |
return self._constructResponse(request, entity=entity, context=context, |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
349 |
form=form, params=params, template=params['public_template']) |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
350 |
|
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
351 |
# get the commentary |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
352 |
fields = form.cleaned_data |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
353 |
comment = fields['comment'] |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
354 |
|
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
355 |
if comment: |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
356 |
# create a new public review containing the comment |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
357 |
user_entity = user_logic.logic.getForCurrentAccount() |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
358 |
|
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
359 |
if user_entity.key() == entity.scope.user.key(): |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
360 |
# student is posting |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
361 |
reviewer = entity.scope |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
362 |
else: |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
363 |
# check if the person commenting is an org_admin |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
364 |
# or a mentor for the given proposal |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
365 |
fields = {'user': user_entity, |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
366 |
'scope': entity.org, |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
367 |
'status': 'active', |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
368 |
} |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
369 |
|
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
370 |
reviewer = org_admin_logic.logic.getForFields(fields, unique=True) |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
371 |
|
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
372 |
if not reviewer: |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
373 |
# no org_admin found, maybe it's a mentor? |
2003
ed24a0bd19d9
Fixed error occurring when mentor or student posts a comment because a built-in function was passed rather then a real argument.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1995
diff
changeset
|
374 |
reviewer = mentor_logic.logic.getForFields(fields, unique=True) |
1752
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
375 |
|
2076
1cd180cc56c9
Style fixes and removal of unused imports in soc.views.models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2051
diff
changeset
|
376 |
# create the review (reviewer might be None |
1cd180cc56c9
Style fixes and removal of unused imports in soc.views.models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2051
diff
changeset
|
377 |
# if a Host or Developer is posting) |
1752
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
378 |
self._createReviewFor(entity, reviewer, comment, is_public=True) |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
379 |
|
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
380 |
# redirect to the same page |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
381 |
return http.HttpResponseRedirect('') |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
382 |
|
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
383 |
def publicGet(self, request, context, params, entity, **kwargs): |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
384 |
"""Handles the GET request for the entity's public page. |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
385 |
|
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
386 |
Args: |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
387 |
entity: the student proposal entity |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
388 |
rest see base.View.public() |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
389 |
""" |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
390 |
|
1882
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
391 |
from soc.logic.models.review_follower import logic as review_follower_logic |
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
392 |
|
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
393 |
get_dict = request.GET |
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
394 |
|
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
395 |
if get_dict.get('subscription') and ( |
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
396 |
get_dict['subscription'] in ['on', 'off']): |
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
397 |
|
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
398 |
subscription = get_dict['subscription'] |
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
399 |
|
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
400 |
# get the current user |
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
401 |
user_entity = user_logic.logic.getForCurrentAccount() |
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
402 |
|
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
403 |
# create the fields that should be in the ReviewFollower entity |
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
404 |
fields = {'link_id': user_entity.link_id, |
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
405 |
'scope': entity, |
2160
3f9dd37d98a8
Use key().id_or_name() instead of key().name()
Sverre Rabbelier <srabbelier@gmail.com>
parents:
2150
diff
changeset
|
406 |
'scope_path': entity.key().id_or_name(), |
1882
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
407 |
'user': user_entity |
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
408 |
} |
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
409 |
# get the keyname for the ReviewFollower entity |
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
410 |
key_name = review_follower_logic.getKeyNameFromFields(fields) |
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
411 |
|
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
412 |
# determine if we should set subscribed_public to True or False |
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
413 |
if subscription == 'on': |
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
414 |
fields['subscribed_public'] = True |
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
415 |
elif subscription == 'off': |
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
416 |
fields['subscribed_public'] = False |
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
417 |
|
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
418 |
# update the ReviewFollower |
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
419 |
review_follower_logic.updateOrCreateFromKeyName(fields, key_name) |
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
420 |
|
1752
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
421 |
# get some entity specific context |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
422 |
self.updatePublicContext(context, entity, params) |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
423 |
|
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
424 |
context['form'] = params['public_review_form']() |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
425 |
template = params['public_template'] |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
426 |
|
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
427 |
return responses.respond(request, template, context=context) |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
428 |
|
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
429 |
def updatePublicContext(self, context, entity, params): |
1758
e035f81d367b
Some minor style fixes.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1752
diff
changeset
|
430 |
"""Updates the context for the public page with information from the entity. |
1752
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
431 |
|
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
432 |
Args: |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
433 |
context: the context that should be updated |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
434 |
entity: a student proposal_entity used to set context |
255117ccd6a0
The student proposal public page can now be used to place a public comment.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1741
diff
changeset
|
435 |
params: dict with params for the view using this context |
1426
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
436 |
""" |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
437 |
|
1741
0da1285f5bc0
Public reviews are now shown on the public page for the student proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1715
diff
changeset
|
438 |
from soc.logic.models.review import logic as review_logic |
1882
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
439 |
from soc.logic.models.review_follower import logic as review_follower_logic |
1741
0da1285f5bc0
Public reviews are now shown on the public page for the student proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1715
diff
changeset
|
440 |
|
1840
bf2c705ead19
Changed the workflow for students regarding their proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1839
diff
changeset
|
441 |
student_entity = entity.scope |
bf2c705ead19
Changed the workflow for students regarding their proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1839
diff
changeset
|
442 |
|
1898
7f18e83a129f
Hook up the new template tag for StudentProposal reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1895
diff
changeset
|
443 |
context['student'] = student_entity |
1840
bf2c705ead19
Changed the workflow for students regarding their proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1839
diff
changeset
|
444 |
context['student_name'] = student_entity.name() |
bf2c705ead19
Changed the workflow for students regarding their proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1839
diff
changeset
|
445 |
|
bf2c705ead19
Changed the workflow for students regarding their proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1839
diff
changeset
|
446 |
user_entity = user_logic.logic.getForCurrentAccount() |
bf2c705ead19
Changed the workflow for students regarding their proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1839
diff
changeset
|
447 |
|
bf2c705ead19
Changed the workflow for students regarding their proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1839
diff
changeset
|
448 |
# check if the current user is the student |
bf2c705ead19
Changed the workflow for students regarding their proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1839
diff
changeset
|
449 |
if user_entity.key() == student_entity.user.key(): |
bf2c705ead19
Changed the workflow for students regarding their proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1839
diff
changeset
|
450 |
# show the proposal edit link |
bf2c705ead19
Changed the workflow for students regarding their proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1839
diff
changeset
|
451 |
context['edit_link'] = redirects.getEditRedirect(entity, params) |
1426
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
452 |
|
1882
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
453 |
# check if the current user is subscribed to this proposal's public reviews |
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
454 |
fields = {'user': user_entity, |
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
455 |
'scope': entity, |
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
456 |
'subscribed_public': True} |
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
457 |
|
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
458 |
context['is_subscribed'] = review_follower_logic.getForFields(fields, |
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
459 |
unique=True) |
72b42ffee2a1
Everyone that is able to see the StudentProposals public page can subscribe to public review updates.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1853
diff
changeset
|
460 |
|
1741
0da1285f5bc0
Public reviews are now shown on the public page for the student proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1715
diff
changeset
|
461 |
context['public_reviews'] = review_logic.getReviewsForEntity(entity, |
0da1285f5bc0
Public reviews are now shown on the public page for the student proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1715
diff
changeset
|
462 |
is_public=True, order=['created']) |
1426
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
463 |
|
1469
d69b00439d59
Added listing of your own student proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1467
diff
changeset
|
464 |
@decorators.merge_params |
1482
5229a40d4792
Added view which lists all orgs a student can propose to.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1469
diff
changeset
|
465 |
@decorators.check_access |
1569
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
466 |
def apply(self, request, access_type, |
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
467 |
page_name=None, params=None, **kwargs): |
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
468 |
"""Special view used to prepopulate the form with the organization |
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
469 |
contributors template. |
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
470 |
|
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
471 |
For params see base.View.public() |
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
472 |
""" |
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
473 |
get_dict = request.GET |
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
474 |
|
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
475 |
if get_dict.get('organization'): |
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
476 |
# organization chosen, prepopulate with template |
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
477 |
|
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
478 |
# get the organization |
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
479 |
student_entity = student_logic.logic.getFromKeyName(kwargs['scope_path']) |
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
480 |
program_entity = student_entity.scope |
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
481 |
|
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
482 |
filter = {'link_id': get_dict['organization'], |
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
483 |
'scope': program_entity} |
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
484 |
|
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
485 |
org_entity = org_logic.logic.getForFields(filter, unique=True) |
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
486 |
|
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
487 |
if org_entity: |
2285
76707dc77b33
Fixed StudentProposal apply view that broke during split of Create/Edit view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2260
diff
changeset
|
488 |
# organization found use special form and also seed this form |
1569
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
489 |
params['create_form'] = params['student_create_form'] |
2285
76707dc77b33
Fixed StudentProposal apply view that broke during split of Create/Edit view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2260
diff
changeset
|
490 |
kwargs['organization'] = org_entity.link_id |
1569
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
491 |
kwargs['content'] = org_entity.contrib_template |
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
492 |
|
2285
76707dc77b33
Fixed StudentProposal apply view that broke during split of Create/Edit view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2260
diff
changeset
|
493 |
return super(View, self).create(request, access_type, page_name=page_name, |
76707dc77b33
Fixed StudentProposal apply view that broke during split of Create/Edit view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2260
diff
changeset
|
494 |
params=params, **kwargs) |
1569
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
495 |
|
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
496 |
@decorators.merge_params |
6347d0a4fa7b
Students who follow the submit your student proposal link will now see their org's proposal template when creating their own proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1498
diff
changeset
|
497 |
@decorators.check_access |
1498
00293057b009
Added proposal withdrawal for students.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1491
diff
changeset
|
498 |
def edit(self, request, access_type, |
00293057b009
Added proposal withdrawal for students.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1491
diff
changeset
|
499 |
page_name=None, params=None, seed=None, **kwargs): |
00293057b009
Added proposal withdrawal for students.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1491
diff
changeset
|
500 |
"""If the POST contains (action, Withdraw) the proposal in kwargs |
00293057b009
Added proposal withdrawal for students.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1491
diff
changeset
|
501 |
will be marked as invalid. |
00293057b009
Added proposal withdrawal for students.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1491
diff
changeset
|
502 |
|
00293057b009
Added proposal withdrawal for students.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1491
diff
changeset
|
503 |
For params see base.View.edit() |
00293057b009
Added proposal withdrawal for students.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1491
diff
changeset
|
504 |
""" |
00293057b009
Added proposal withdrawal for students.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1491
diff
changeset
|
505 |
|
00293057b009
Added proposal withdrawal for students.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1491
diff
changeset
|
506 |
# check if request.POST contains action |
00293057b009
Added proposal withdrawal for students.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1491
diff
changeset
|
507 |
post_dict = request.POST |
00293057b009
Added proposal withdrawal for students.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1491
diff
changeset
|
508 |
if 'action' in post_dict and post_dict['action'] == 'Withdraw': |
00293057b009
Added proposal withdrawal for students.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1491
diff
changeset
|
509 |
# withdraw this proposal |
00293057b009
Added proposal withdrawal for students.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1491
diff
changeset
|
510 |
filter = {'scope_path': kwargs['scope_path'], |
00293057b009
Added proposal withdrawal for students.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1491
diff
changeset
|
511 |
'link_id': kwargs['link_id']} |
00293057b009
Added proposal withdrawal for students.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1491
diff
changeset
|
512 |
|
00293057b009
Added proposal withdrawal for students.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1491
diff
changeset
|
513 |
proposal_logic = params['logic'] |
00293057b009
Added proposal withdrawal for students.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1491
diff
changeset
|
514 |
student_proposal_entity = proposal_logic.getForFields(filter, unique=True) |
2092
6de3693ba9d4
When Student withdrew a proposal a public comment "Student withdrew proposal." is posted.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2091
diff
changeset
|
515 |
reviewer = student_proposal_entity.scope |
2285
76707dc77b33
Fixed StudentProposal apply view that broke during split of Create/Edit view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2260
diff
changeset
|
516 |
|
1498
00293057b009
Added proposal withdrawal for students.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1491
diff
changeset
|
517 |
# update the entity mark it as invalid |
00293057b009
Added proposal withdrawal for students.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1491
diff
changeset
|
518 |
proposal_logic.updateEntityProperties(student_proposal_entity, |
00293057b009
Added proposal withdrawal for students.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1491
diff
changeset
|
519 |
{'status': 'invalid'}) |
00293057b009
Added proposal withdrawal for students.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1491
diff
changeset
|
520 |
|
00293057b009
Added proposal withdrawal for students.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1491
diff
changeset
|
521 |
# redirect to the program's homepage |
00293057b009
Added proposal withdrawal for students.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1491
diff
changeset
|
522 |
redirect_url = redirects.getHomeRedirect(student_proposal_entity.program, |
00293057b009
Added proposal withdrawal for students.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1491
diff
changeset
|
523 |
{'url_name': 'program'}) |
2285
76707dc77b33
Fixed StudentProposal apply view that broke during split of Create/Edit view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2260
diff
changeset
|
524 |
|
2092
6de3693ba9d4
When Student withdrew a proposal a public comment "Student withdrew proposal." is posted.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2091
diff
changeset
|
525 |
comment = "Student withdrew proposal." |
6de3693ba9d4
When Student withdrew a proposal a public comment "Student withdrew proposal." is posted.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2091
diff
changeset
|
526 |
self._createReviewFor(student_proposal_entity, reviewer, comment) |
1498
00293057b009
Added proposal withdrawal for students.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1491
diff
changeset
|
527 |
return http.HttpResponseRedirect(redirect_url) |
00293057b009
Added proposal withdrawal for students.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1491
diff
changeset
|
528 |
|
00293057b009
Added proposal withdrawal for students.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1491
diff
changeset
|
529 |
return super(View, self).edit(request=request, access_type=access_type, |
00293057b009
Added proposal withdrawal for students.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1491
diff
changeset
|
530 |
page_name=page_name, params=params, seed=seed, **kwargs) |
00293057b009
Added proposal withdrawal for students.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1491
diff
changeset
|
531 |
|
00293057b009
Added proposal withdrawal for students.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1491
diff
changeset
|
532 |
@decorators.merge_params |
00293057b009
Added proposal withdrawal for students.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1491
diff
changeset
|
533 |
@decorators.check_access |
1484
6b00a2a43eaf
Changed the method and variable name in student_proposal to match the access type.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1482
diff
changeset
|
534 |
def listOrgs(self, request, access_type, |
1491
acf7e32de8ca
Style fixes in student_proposal and organization view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1484
diff
changeset
|
535 |
page_name=None, params=None, **kwargs): |
1482
5229a40d4792
Added view which lists all orgs a student can propose to.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1469
diff
changeset
|
536 |
"""Lists all organization which the given student can propose to. |
1469
d69b00439d59
Added listing of your own student proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1467
diff
changeset
|
537 |
|
d69b00439d59
Added listing of your own student proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1467
diff
changeset
|
538 |
For params see base.View.public(). |
d69b00439d59
Added listing of your own student proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1467
diff
changeset
|
539 |
""" |
d69b00439d59
Added listing of your own student proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1467
diff
changeset
|
540 |
|
1482
5229a40d4792
Added view which lists all orgs a student can propose to.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1469
diff
changeset
|
541 |
from soc.views.models import organization as org_view |
5229a40d4792
Added view which lists all orgs a student can propose to.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1469
diff
changeset
|
542 |
|
5229a40d4792
Added view which lists all orgs a student can propose to.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1469
diff
changeset
|
543 |
student_entity = student_logic.logic.getFromKeyName(kwargs['scope_path']) |
5229a40d4792
Added view which lists all orgs a student can propose to.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1469
diff
changeset
|
544 |
|
2076
1cd180cc56c9
Style fixes and removal of unused imports in soc.views.models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2051
diff
changeset
|
545 |
filter = {'scope': student_entity.scope, |
1482
5229a40d4792
Added view which lists all orgs a student can propose to.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1469
diff
changeset
|
546 |
'status': 'active'} |
5229a40d4792
Added view which lists all orgs a student can propose to.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1469
diff
changeset
|
547 |
|
5229a40d4792
Added view which lists all orgs a student can propose to.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1469
diff
changeset
|
548 |
list_params = org_view.view.getParams().copy() |
5229a40d4792
Added view which lists all orgs a student can propose to.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1469
diff
changeset
|
549 |
list_params['list_description'] = ('List of %(name_plural)s you can send ' |
5229a40d4792
Added view which lists all orgs a student can propose to.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1469
diff
changeset
|
550 |
'your proposal to.') % list_params |
5229a40d4792
Added view which lists all orgs a student can propose to.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1469
diff
changeset
|
551 |
list_params['list_action'] = (redirects.getStudentProposalRedirect, |
2160
3f9dd37d98a8
Use key().id_or_name() instead of key().name()
Sverre Rabbelier <srabbelier@gmail.com>
parents:
2150
diff
changeset
|
552 |
{'student_key': student_entity.key().id_or_name(), |
1482
5229a40d4792
Added view which lists all orgs a student can propose to.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1469
diff
changeset
|
553 |
'url_name': params['url_name']}) |
5229a40d4792
Added view which lists all orgs a student can propose to.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1469
diff
changeset
|
554 |
|
5229a40d4792
Added view which lists all orgs a student can propose to.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1469
diff
changeset
|
555 |
return self.list(request, access_type=access_type, page_name=page_name, |
5229a40d4792
Added view which lists all orgs a student can propose to.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1469
diff
changeset
|
556 |
params=list_params, filter=filter, **kwargs) |
5229a40d4792
Added view which lists all orgs a student can propose to.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1469
diff
changeset
|
557 |
|
5229a40d4792
Added view which lists all orgs a student can propose to.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1469
diff
changeset
|
558 |
@decorators.merge_params |
5229a40d4792
Added view which lists all orgs a student can propose to.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1469
diff
changeset
|
559 |
@decorators.check_access |
5229a40d4792
Added view which lists all orgs a student can propose to.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1469
diff
changeset
|
560 |
def listSelf(self, request, access_type, |
2094
8c0531c9870d
Allow students to see and comment on withdrawn and ineligible proposals, hide withdraw button for those proposals.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2092
diff
changeset
|
561 |
page_name=None, params=None, **kwargs): |
1639
170ac4ca078d
Fix too long lines in soc.views.models.student_proposal module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
1620
diff
changeset
|
562 |
"""Lists all proposals from the current logged-in user |
170ac4ca078d
Fix too long lines in soc.views.models.student_proposal module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
1620
diff
changeset
|
563 |
for the given student. |
1482
5229a40d4792
Added view which lists all orgs a student can propose to.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1469
diff
changeset
|
564 |
|
5229a40d4792
Added view which lists all orgs a student can propose to.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1469
diff
changeset
|
565 |
For params see base.View.public(). |
5229a40d4792
Added view which lists all orgs a student can propose to.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1469
diff
changeset
|
566 |
""" |
5229a40d4792
Added view which lists all orgs a student can propose to.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1469
diff
changeset
|
567 |
|
2094
8c0531c9870d
Allow students to see and comment on withdrawn and ineligible proposals, hide withdraw button for those proposals.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2092
diff
changeset
|
568 |
context = {} |
1482
5229a40d4792
Added view which lists all orgs a student can propose to.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1469
diff
changeset
|
569 |
student_entity = student_logic.logic.getFromKeyName(kwargs['scope_path']) |
1469
d69b00439d59
Added listing of your own student proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1467
diff
changeset
|
570 |
|
d69b00439d59
Added listing of your own student proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1467
diff
changeset
|
571 |
filter = {'scope' : student_entity, |
d69b00439d59
Added listing of your own student proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1467
diff
changeset
|
572 |
'status': ['new', 'pending', 'accepted', 'rejected']} |
d69b00439d59
Added listing of your own student proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1467
diff
changeset
|
573 |
|
d69b00439d59
Added listing of your own student proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1467
diff
changeset
|
574 |
list_params = params.copy() |
2098
6557b0b1305f
Fix too long line in soc.views.models.student_proposal module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2096
diff
changeset
|
575 |
list_params['list_description'] = \ |
6557b0b1305f
Fix too long line in soc.views.models.student_proposal module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2096
diff
changeset
|
576 |
'List of my %(name_plural)s.' % list_params |
1839
92b28d1bf2f5
Added example and help text to clarify the use of some fields on the proposal ranking.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1838
diff
changeset
|
577 |
list_params['list_action'] = (redirects.getPublicRedirect, list_params) |
1469
d69b00439d59
Added listing of your own student proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1467
diff
changeset
|
578 |
|
2094
8c0531c9870d
Allow students to see and comment on withdrawn and ineligible proposals, hide withdraw button for those proposals.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2092
diff
changeset
|
579 |
valid_list = lists.getListContent( |
8c0531c9870d
Allow students to see and comment on withdrawn and ineligible proposals, hide withdraw button for those proposals.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2092
diff
changeset
|
580 |
request, list_params, filter, idx=0) |
8c0531c9870d
Allow students to see and comment on withdrawn and ineligible proposals, hide withdraw button for those proposals.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2092
diff
changeset
|
581 |
|
8c0531c9870d
Allow students to see and comment on withdrawn and ineligible proposals, hide withdraw button for those proposals.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2092
diff
changeset
|
582 |
ip_params = list_params.copy() # ineligible proposals |
8c0531c9870d
Allow students to see and comment on withdrawn and ineligible proposals, hide withdraw button for those proposals.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2092
diff
changeset
|
583 |
|
8c0531c9870d
Allow students to see and comment on withdrawn and ineligible proposals, hide withdraw button for those proposals.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2092
diff
changeset
|
584 |
description = ugettext('List of my ineligible/withdrawn %s.') % ( |
8c0531c9870d
Allow students to see and comment on withdrawn and ineligible proposals, hide withdraw button for those proposals.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2092
diff
changeset
|
585 |
ip_params['name_plural']) |
8c0531c9870d
Allow students to see and comment on withdrawn and ineligible proposals, hide withdraw button for those proposals.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2092
diff
changeset
|
586 |
|
8c0531c9870d
Allow students to see and comment on withdrawn and ineligible proposals, hide withdraw button for those proposals.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2092
diff
changeset
|
587 |
ip_params['list_description'] = description |
8c0531c9870d
Allow students to see and comment on withdrawn and ineligible proposals, hide withdraw button for those proposals.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2092
diff
changeset
|
588 |
ip_params['list_action'] = (redirects.getPublicRedirect, ip_params) |
8c0531c9870d
Allow students to see and comment on withdrawn and ineligible proposals, hide withdraw button for those proposals.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2092
diff
changeset
|
589 |
|
8c0531c9870d
Allow students to see and comment on withdrawn and ineligible proposals, hide withdraw button for those proposals.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2092
diff
changeset
|
590 |
filter = {'scope' : student_entity, |
8c0531c9870d
Allow students to see and comment on withdrawn and ineligible proposals, hide withdraw button for those proposals.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2092
diff
changeset
|
591 |
'status': 'invalid'} |
8c0531c9870d
Allow students to see and comment on withdrawn and ineligible proposals, hide withdraw button for those proposals.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2092
diff
changeset
|
592 |
|
8c0531c9870d
Allow students to see and comment on withdrawn and ineligible proposals, hide withdraw button for those proposals.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2092
diff
changeset
|
593 |
ip_list = lists.getListContent( |
8c0531c9870d
Allow students to see and comment on withdrawn and ineligible proposals, hide withdraw button for those proposals.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2092
diff
changeset
|
594 |
request, ip_params, filter, idx=1, need_content=True) |
8c0531c9870d
Allow students to see and comment on withdrawn and ineligible proposals, hide withdraw button for those proposals.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2092
diff
changeset
|
595 |
|
8c0531c9870d
Allow students to see and comment on withdrawn and ineligible proposals, hide withdraw button for those proposals.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2092
diff
changeset
|
596 |
contents = [] |
8c0531c9870d
Allow students to see and comment on withdrawn and ineligible proposals, hide withdraw button for those proposals.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2092
diff
changeset
|
597 |
# fill contents with all the needed lists |
8c0531c9870d
Allow students to see and comment on withdrawn and ineligible proposals, hide withdraw button for those proposals.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2092
diff
changeset
|
598 |
contents.append(valid_list) |
8c0531c9870d
Allow students to see and comment on withdrawn and ineligible proposals, hide withdraw button for those proposals.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2092
diff
changeset
|
599 |
|
8c0531c9870d
Allow students to see and comment on withdrawn and ineligible proposals, hide withdraw button for those proposals.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2092
diff
changeset
|
600 |
if ip_list != None: |
8c0531c9870d
Allow students to see and comment on withdrawn and ineligible proposals, hide withdraw button for those proposals.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2092
diff
changeset
|
601 |
contents.append(ip_list) |
8c0531c9870d
Allow students to see and comment on withdrawn and ineligible proposals, hide withdraw button for those proposals.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2092
diff
changeset
|
602 |
|
8c0531c9870d
Allow students to see and comment on withdrawn and ineligible proposals, hide withdraw button for those proposals.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2092
diff
changeset
|
603 |
# call the _list method from base to display the list |
8c0531c9870d
Allow students to see and comment on withdrawn and ineligible proposals, hide withdraw button for those proposals.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2092
diff
changeset
|
604 |
return self._list(request, list_params, contents, page_name, context) |
1469
d69b00439d59
Added listing of your own student proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1467
diff
changeset
|
605 |
|
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
606 |
@decorators.merge_params |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
607 |
@decorators.check_access |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
608 |
def review(self, request, access_type, |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
609 |
page_name=None, params=None, **kwargs): |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
610 |
"""View that allows Organization Admins and Mentors to review the proposal. |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
611 |
|
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
612 |
For Args see base.View.public(). |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
613 |
""" |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
614 |
|
2258
280d2cf745f2
Allowing student project review page to be viewed in read-only mode after the deadline has passed.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2191
diff
changeset
|
615 |
from soc.logic.helper import timeline as timeline_helper |
280d2cf745f2
Allowing student project review page to be viewed in read-only mode after the deadline has passed.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2191
diff
changeset
|
616 |
|
280d2cf745f2
Allowing student project review page to be viewed in read-only mode after the deadline has passed.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2191
diff
changeset
|
617 |
|
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
618 |
try: |
1639
170ac4ca078d
Fix too long lines in soc.views.models.student_proposal module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
1620
diff
changeset
|
619 |
entity = self._logic.getFromKeyFieldsOr404(kwargs) |
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
620 |
except out_of_band.Error, error: |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
621 |
return helper.responses.errorResponse( |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
622 |
error, request, template=params['error_public']) |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
623 |
|
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
624 |
# get the context for this webpage |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
625 |
context = responses.getUniversalContext(request) |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
626 |
responses.useJavaScript(context, params['js_uses_all']) |
2076
1cd180cc56c9
Style fixes and removal of unused imports in soc.views.models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2051
diff
changeset
|
627 |
context['page_name'] = '%s "%s" from %s' % (page_name, entity.title, |
1cd180cc56c9
Style fixes and removal of unused imports in soc.views.models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2051
diff
changeset
|
628 |
entity.scope.name()) |
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
629 |
context['entity'] = entity |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
630 |
context['entity_type'] = params['name'] |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
631 |
context['entity_type_url'] = params['url_name'] |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
632 |
|
2258
280d2cf745f2
Allowing student project review page to be viewed in read-only mode after the deadline has passed.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2191
diff
changeset
|
633 |
program_entity = entity.program |
280d2cf745f2
Allowing student project review page to be viewed in read-only mode after the deadline has passed.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2191
diff
changeset
|
634 |
|
2260
129901892999
Some minor style fixes.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2258
diff
changeset
|
635 |
if timeline_helper.isAfterEvent(program_entity.timeline, |
129901892999
Some minor style fixes.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2258
diff
changeset
|
636 |
'accepted_students_announced_deadline'): |
2258
280d2cf745f2
Allowing student project review page to be viewed in read-only mode after the deadline has passed.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2191
diff
changeset
|
637 |
return self.reviewAfterDeadline(request, context, params, entity, |
280d2cf745f2
Allowing student project review page to be viewed in read-only mode after the deadline has passed.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2191
diff
changeset
|
638 |
**kwargs) |
280d2cf745f2
Allowing student project review page to be viewed in read-only mode after the deadline has passed.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2191
diff
changeset
|
639 |
|
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
640 |
# get the roles important for reviewing an application |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
641 |
filter = {'user': user_logic.logic.getForCurrentAccount(), |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
642 |
'scope': entity.org, |
1620
45f4e9cd9100
Added access check to student_proposal review.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1613
diff
changeset
|
643 |
'status': 'active'} |
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
644 |
|
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
645 |
org_admin_entity = org_admin_logic.logic.getForFields(filter, unique=True) |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
646 |
mentor_entity = mentor_logic.logic.getForFields(filter, unique=True) |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
647 |
|
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
648 |
# decide which form to use |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
649 |
if org_admin_entity: |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
650 |
form = params['admin_review_form'] |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
651 |
else: |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
652 |
form = params['mentor_review_form'] |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
653 |
|
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
654 |
if request.method == 'POST': |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
655 |
return self.reviewPost(request, context, params, entity, |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
656 |
form, org_admin_entity, mentor_entity, **kwargs) |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
657 |
else: |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
658 |
# request.method == 'GET' |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
659 |
return self.reviewGet(request, context, params, entity, |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
660 |
form, org_admin_entity, mentor_entity, **kwargs) |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
661 |
|
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
662 |
def reviewPost(self, request, context, params, entity, form, |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
663 |
org_admin, mentor, **kwargs): |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
664 |
"""Handles the POST request for the proposal review view. |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
665 |
|
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
666 |
Args: |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
667 |
entity: the student proposal entity |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
668 |
form: the form to use in this view |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
669 |
org_admin: org admin entity for the current user/proposal (iff available) |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
670 |
mentor: mentor entity for the current user/proposal (iff available) |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
671 |
rest: see base.View.public() |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
672 |
""" |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
673 |
# populate the form using the POST data |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
674 |
form = form(request.POST) |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
675 |
|
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
676 |
if not form.is_valid(): |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
677 |
# return the invalid form response |
1715
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
678 |
# get all the extra information that should be in the context |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
679 |
review_context = self._getDefaultReviewContext(entity, org_admin, mentor) |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
680 |
context = dicts.merge(context, review_context) |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
681 |
|
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
682 |
return self._constructResponse(request, entity=entity, context=context, |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
683 |
form=form, params=params, template=params['review_template']) |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
684 |
|
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
685 |
fields = form.cleaned_data |
1787
b623d96bc830
Organization admins can now put a Student Proposal at a specific rank.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1779
diff
changeset
|
686 |
is_public = fields['public'] |
b623d96bc830
Organization admins can now put a Student Proposal at a specific rank.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1779
diff
changeset
|
687 |
comment = fields['comment'] |
b623d96bc830
Organization admins can now put a Student Proposal at a specific rank.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1779
diff
changeset
|
688 |
given_score = int(fields['score']) |
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
689 |
|
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
690 |
if org_admin: |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
691 |
# org admin found, try to adjust the assigned mentor |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
692 |
self._adjustMentor(entity, fields['mentor']) |
1715
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
693 |
reviewer = org_admin |
1787
b623d96bc830
Organization admins can now put a Student Proposal at a specific rank.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1779
diff
changeset
|
694 |
|
b623d96bc830
Organization admins can now put a Student Proposal at a specific rank.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1779
diff
changeset
|
695 |
# try to see if the rank is given and adjust the given_score if needed |
b623d96bc830
Organization admins can now put a Student Proposal at a specific rank.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1779
diff
changeset
|
696 |
rank = fields['rank'] |
b623d96bc830
Organization admins can now put a Student Proposal at a specific rank.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1779
diff
changeset
|
697 |
if rank: |
b623d96bc830
Organization admins can now put a Student Proposal at a specific rank.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1779
diff
changeset
|
698 |
ranker = self._logic.getRankerFor(entity) |
2076
1cd180cc56c9
Style fixes and removal of unused imports in soc.views.models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2051
diff
changeset
|
699 |
# if a very high rank is filled in use the highest |
1cd180cc56c9
Style fixes and removal of unused imports in soc.views.models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2051
diff
changeset
|
700 |
# one that returns a score |
1787
b623d96bc830
Organization admins can now put a Student Proposal at a specific rank.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1779
diff
changeset
|
701 |
rank = min(ranker.TotalRankedScores(), rank) |
b623d96bc830
Organization admins can now put a Student Proposal at a specific rank.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1779
diff
changeset
|
702 |
# ranker uses zero-based ranking |
b623d96bc830
Organization admins can now put a Student Proposal at a specific rank.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1779
diff
changeset
|
703 |
score_and_rank = ranker.FindScore(rank-1) |
b623d96bc830
Organization admins can now put a Student Proposal at a specific rank.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1779
diff
changeset
|
704 |
# get the score at the requested rank |
b623d96bc830
Organization admins can now put a Student Proposal at a specific rank.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1779
diff
changeset
|
705 |
score_at_rank = score_and_rank[0][0] |
b623d96bc830
Organization admins can now put a Student Proposal at a specific rank.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1779
diff
changeset
|
706 |
# calculate the score that should be given to end up at the given rank |
2150
5c125051252e
When ranking, put them at or above the given rank
Sverre Rabbelier <srabbelier@gmail.com>
parents:
2144
diff
changeset
|
707 |
# give +1 to make sure that in the case of a tie they end up top |
5c125051252e
When ranking, put them at or above the given rank
Sverre Rabbelier <srabbelier@gmail.com>
parents:
2144
diff
changeset
|
708 |
given_score = score_at_rank - entity.score + 1 |
1715
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
709 |
else: |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
710 |
# might be None (if Host or Developer is commenting) |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
711 |
reviewer = mentor |
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
712 |
|
2008
33c7bd727f16
Placing a public review via the review interface now also triggers the status change to pending.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2006
diff
changeset
|
713 |
# store the properties to update the proposal with |
33c7bd727f16
Placing a public review via the review interface now also triggers the status change to pending.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2006
diff
changeset
|
714 |
properties = {} |
33c7bd727f16
Placing a public review via the review interface now also triggers the status change to pending.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2006
diff
changeset
|
715 |
|
1715
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
716 |
if reviewer and (not is_public) and (given_score is not 0): |
1620
45f4e9cd9100
Added access check to student_proposal review.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1613
diff
changeset
|
717 |
# if it is not a public comment and it's made by a member of the |
1715
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
718 |
# organization we update the score of the proposal |
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
719 |
new_score = given_score + entity.score |
1620
45f4e9cd9100
Added access check to student_proposal review.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1613
diff
changeset
|
720 |
properties = {'score': new_score} |
45f4e9cd9100
Added access check to student_proposal review.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1613
diff
changeset
|
721 |
|
2008
33c7bd727f16
Placing a public review via the review interface now also triggers the status change to pending.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2006
diff
changeset
|
722 |
if comment or (given_score is not 0): |
1620
45f4e9cd9100
Added access check to student_proposal review.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1613
diff
changeset
|
723 |
# if the proposal is new we change it status to pending |
45f4e9cd9100
Added access check to student_proposal review.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1613
diff
changeset
|
724 |
if entity.status == 'new': |
45f4e9cd9100
Added access check to student_proposal review.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1613
diff
changeset
|
725 |
properties['status'] = 'pending' |
45f4e9cd9100
Added access check to student_proposal review.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1613
diff
changeset
|
726 |
|
2008
33c7bd727f16
Placing a public review via the review interface now also triggers the status change to pending.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2006
diff
changeset
|
727 |
# create the review entity |
33c7bd727f16
Placing a public review via the review interface now also triggers the status change to pending.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2006
diff
changeset
|
728 |
self._createReviewFor(entity, reviewer, comment, given_score, is_public) |
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
729 |
|
2008
33c7bd727f16
Placing a public review via the review interface now also triggers the status change to pending.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2006
diff
changeset
|
730 |
if properties.values(): |
33c7bd727f16
Placing a public review via the review interface now also triggers the status change to pending.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2006
diff
changeset
|
731 |
# there is something to update |
33c7bd727f16
Placing a public review via the review interface now also triggers the status change to pending.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2006
diff
changeset
|
732 |
self._logic.updateEntityProperties(entity, properties) |
1715
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
733 |
|
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
734 |
# redirect to the same page |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
735 |
return http.HttpResponseRedirect('') |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
736 |
|
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
737 |
def reviewGet(self, request, context, params, entity, form, |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
738 |
org_admin, mentor, **kwargs): |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
739 |
"""Handles the GET request for the proposal review view. |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
740 |
|
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
741 |
Args: |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
742 |
entity: the student proposal entity |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
743 |
form: the form to use in this view |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
744 |
org_admin: org admin entity for the current user/proposal (iff available) |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
745 |
mentor: mentor entity for the current user/proposal (iff available) |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
746 |
rest: see base.View.public() |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
747 |
""" |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
748 |
|
1883
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
749 |
from soc.logic.models.review_follower import logic as review_follower_logic |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
750 |
|
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
751 |
get_dict = request.GET |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
752 |
|
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
753 |
# check if the current user is a mentor and wants |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
754 |
# to change his role for this app |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
755 |
choice = get_dict.get('mentor') |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
756 |
if mentor and choice: |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
757 |
self._adjustPossibleMentors(entity, mentor, choice) |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
758 |
|
2091
dd3eb2770205
Make "Mark as Ineligible" reversable and make this feature available for mentors too.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2076
diff
changeset
|
759 |
ineligible = get_dict.get('ineligible') |
2258
280d2cf745f2
Allowing student project review page to be viewed in read-only mode after the deadline has passed.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2191
diff
changeset
|
760 |
|
2091
dd3eb2770205
Make "Mark as Ineligible" reversable and make this feature available for mentors too.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2076
diff
changeset
|
761 |
if org_admin: |
dd3eb2770205
Make "Mark as Ineligible" reversable and make this feature available for mentors too.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2076
diff
changeset
|
762 |
reviewer = org_admin |
dd3eb2770205
Make "Mark as Ineligible" reversable and make this feature available for mentors too.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2076
diff
changeset
|
763 |
elif mentor: |
dd3eb2770205
Make "Mark as Ineligible" reversable and make this feature available for mentors too.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2076
diff
changeset
|
764 |
reviewer = mentor |
2258
280d2cf745f2
Allowing student project review page to be viewed in read-only mode after the deadline has passed.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2191
diff
changeset
|
765 |
|
280d2cf745f2
Allowing student project review page to be viewed in read-only mode after the deadline has passed.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2191
diff
changeset
|
766 |
if (org_admin or mentor) and (ineligible != None) and ( |
280d2cf745f2
Allowing student project review page to be viewed in read-only mode after the deadline has passed.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2191
diff
changeset
|
767 |
entity.status not in ['accepted', 'rejected']): |
2091
dd3eb2770205
Make "Mark as Ineligible" reversable and make this feature available for mentors too.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2076
diff
changeset
|
768 |
ineligible = int(ineligible) |
dd3eb2770205
Make "Mark as Ineligible" reversable and make this feature available for mentors too.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2076
diff
changeset
|
769 |
if ineligible == 1: |
dd3eb2770205
Make "Mark as Ineligible" reversable and make this feature available for mentors too.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2076
diff
changeset
|
770 |
# mark the proposal invalid and return to the list |
dd3eb2770205
Make "Mark as Ineligible" reversable and make this feature available for mentors too.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2076
diff
changeset
|
771 |
properties = {'status': 'invalid'} |
dd3eb2770205
Make "Mark as Ineligible" reversable and make this feature available for mentors too.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2076
diff
changeset
|
772 |
self._logic.updateEntityProperties(entity, properties) |
1883
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
773 |
|
2091
dd3eb2770205
Make "Mark as Ineligible" reversable and make this feature available for mentors too.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2076
diff
changeset
|
774 |
redirect = redirects.getListProposalsRedirect(entity.org, |
dd3eb2770205
Make "Mark as Ineligible" reversable and make this feature available for mentors too.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2076
diff
changeset
|
775 |
{'url_name': 'org'}) |
dd3eb2770205
Make "Mark as Ineligible" reversable and make this feature available for mentors too.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2076
diff
changeset
|
776 |
comment = "Marked Student Proposal as Ineligible." |
dd3eb2770205
Make "Mark as Ineligible" reversable and make this feature available for mentors too.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2076
diff
changeset
|
777 |
self._createReviewFor(entity, reviewer, comment, is_public=False) |
dd3eb2770205
Make "Mark as Ineligible" reversable and make this feature available for mentors too.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2076
diff
changeset
|
778 |
return http.HttpResponseRedirect(redirect) |
dd3eb2770205
Make "Mark as Ineligible" reversable and make this feature available for mentors too.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2076
diff
changeset
|
779 |
elif ineligible == 0: |
dd3eb2770205
Make "Mark as Ineligible" reversable and make this feature available for mentors too.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2076
diff
changeset
|
780 |
# mark the proposal as new and return to the list |
dd3eb2770205
Make "Mark as Ineligible" reversable and make this feature available for mentors too.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2076
diff
changeset
|
781 |
properties = {'status': 'new'} |
dd3eb2770205
Make "Mark as Ineligible" reversable and make this feature available for mentors too.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2076
diff
changeset
|
782 |
self._logic.updateEntityProperties(entity, properties) |
dd3eb2770205
Make "Mark as Ineligible" reversable and make this feature available for mentors too.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2076
diff
changeset
|
783 |
|
dd3eb2770205
Make "Mark as Ineligible" reversable and make this feature available for mentors too.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2076
diff
changeset
|
784 |
redirect = redirects.getListProposalsRedirect(entity.org, |
dd3eb2770205
Make "Mark as Ineligible" reversable and make this feature available for mentors too.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2076
diff
changeset
|
785 |
{'url_name': 'org'}) |
dd3eb2770205
Make "Mark as Ineligible" reversable and make this feature available for mentors too.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2076
diff
changeset
|
786 |
comment = "Marked Student Proposal as Eligible." |
dd3eb2770205
Make "Mark as Ineligible" reversable and make this feature available for mentors too.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2076
diff
changeset
|
787 |
self._createReviewFor(entity, reviewer, comment, is_public=False) |
dd3eb2770205
Make "Mark as Ineligible" reversable and make this feature available for mentors too.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2076
diff
changeset
|
788 |
return http.HttpResponseRedirect(redirect) |
1883
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
789 |
|
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
790 |
# check if we should change the subscription state for the current user |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
791 |
public_subscription = None |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
792 |
private_subscription = None |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
793 |
|
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
794 |
if get_dict.get('public_subscription') and ( |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
795 |
get_dict['public_subscription'] in ['on', 'off']): |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
796 |
|
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
797 |
public_subscription = get_dict['public_subscription'] == 'on' |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
798 |
|
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
799 |
if get_dict.get('private_subscription') and ( |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
800 |
get_dict['private_subscription'] in ['on', 'off']): |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
801 |
private_subscription = get_dict['private_subscription'] == 'on' |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
802 |
|
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
803 |
if public_subscription != None or private_subscription != None: |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
804 |
# get the current user |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
805 |
user_entity = user_logic.logic.getForCurrentAccount() |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
806 |
|
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
807 |
# create the fields that should be in the ReviewFollower entity |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
808 |
fields = {'link_id': user_entity.link_id, |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
809 |
'scope': entity, |
2160
3f9dd37d98a8
Use key().id_or_name() instead of key().name()
Sverre Rabbelier <srabbelier@gmail.com>
parents:
2150
diff
changeset
|
810 |
'scope_path': entity.key().id_or_name(), |
1883
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
811 |
'user': user_entity |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
812 |
} |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
813 |
# get the keyname for the ReviewFollower entity |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
814 |
key_name = review_follower_logic.getKeyNameFromFields(fields) |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
815 |
|
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
816 |
# determine which subscription properties we should change |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
817 |
if public_subscription != None: |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
818 |
fields['subscribed_public'] = public_subscription |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
819 |
|
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
820 |
if private_subscription != None: |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
821 |
fields['subscribed_private'] = private_subscription |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
822 |
|
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
823 |
# update the ReviewFollower |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
824 |
review_follower_logic.updateOrCreateFromKeyName(fields, key_name) |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
825 |
|
1620
45f4e9cd9100
Added access check to student_proposal review.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1613
diff
changeset
|
826 |
# set the initial score since the default is ignored |
45f4e9cd9100
Added access check to student_proposal review.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1613
diff
changeset
|
827 |
initial = {'score': 0} |
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
828 |
|
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
829 |
if org_admin and entity.mentor: |
1620
45f4e9cd9100
Added access check to student_proposal review.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1613
diff
changeset
|
830 |
# set the mentor field to the current mentor |
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
831 |
initial['mentor'] = entity.mentor.link_id |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
832 |
|
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
833 |
context['form'] = form(initial) |
1715
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
834 |
|
2051
cecbef1289a5
Make the mentor and organization admin comment submission on student proposal nicer. Now drop down box allows you to select comment type and based on selected type and your current Role shows you available comment options. Left TODO to put inline JS into separate JS file.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2041
diff
changeset
|
835 |
# create the special form for mentors |
cecbef1289a5
Make the mentor and organization admin comment submission on student proposal nicer. Now drop down box allows you to select comment type and based on selected type and your current Role shows you available comment options. Left TODO to put inline JS into separate JS file.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2041
diff
changeset
|
836 |
comment_public = ['public', 'comment'] |
cecbef1289a5
Make the mentor and organization admin comment submission on student proposal nicer. Now drop down box allows you to select comment type and based on selected type and your current Role shows you available comment options. Left TODO to put inline JS into separate JS file.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2041
diff
changeset
|
837 |
comment_private = ['score'] |
cecbef1289a5
Make the mentor and organization admin comment submission on student proposal nicer. Now drop down box allows you to select comment type and based on selected type and your current Role shows you available comment options. Left TODO to put inline JS into separate JS file.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2041
diff
changeset
|
838 |
comment_admin = ['rank', 'mentor'] |
cecbef1289a5
Make the mentor and organization admin comment submission on student proposal nicer. Now drop down box allows you to select comment type and based on selected type and your current Role shows you available comment options. Left TODO to put inline JS into separate JS file.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2041
diff
changeset
|
839 |
class FilterForm(object): |
2076
1cd180cc56c9
Style fixes and removal of unused imports in soc.views.models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2051
diff
changeset
|
840 |
"""Helper class used for form filtering. |
1cd180cc56c9
Style fixes and removal of unused imports in soc.views.models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2051
diff
changeset
|
841 |
""" |
2051
cecbef1289a5
Make the mentor and organization admin comment submission on student proposal nicer. Now drop down box allows you to select comment type and based on selected type and your current Role shows you available comment options. Left TODO to put inline JS into separate JS file.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2041
diff
changeset
|
842 |
def __init__(self, form, fields): |
cecbef1289a5
Make the mentor and organization admin comment submission on student proposal nicer. Now drop down box allows you to select comment type and based on selected type and your current Role shows you available comment options. Left TODO to put inline JS into separate JS file.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2041
diff
changeset
|
843 |
self.__form = form |
cecbef1289a5
Make the mentor and organization admin comment submission on student proposal nicer. Now drop down box allows you to select comment type and based on selected type and your current Role shows you available comment options. Left TODO to put inline JS into separate JS file.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2041
diff
changeset
|
844 |
self.__fields = fields |
cecbef1289a5
Make the mentor and organization admin comment submission on student proposal nicer. Now drop down box allows you to select comment type and based on selected type and your current Role shows you available comment options. Left TODO to put inline JS into separate JS file.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2041
diff
changeset
|
845 |
|
cecbef1289a5
Make the mentor and organization admin comment submission on student proposal nicer. Now drop down box allows you to select comment type and based on selected type and your current Role shows you available comment options. Left TODO to put inline JS into separate JS file.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2041
diff
changeset
|
846 |
@property |
cecbef1289a5
Make the mentor and organization admin comment submission on student proposal nicer. Now drop down box allows you to select comment type and based on selected type and your current Role shows you available comment options. Left TODO to put inline JS into separate JS file.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2041
diff
changeset
|
847 |
def fields(self): |
2076
1cd180cc56c9
Style fixes and removal of unused imports in soc.views.models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2051
diff
changeset
|
848 |
"""Property that returns all fields as dictionary.""" |
1cd180cc56c9
Style fixes and removal of unused imports in soc.views.models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2051
diff
changeset
|
849 |
fields = self.__form.fields.iteritems() |
1cd180cc56c9
Style fixes and removal of unused imports in soc.views.models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2051
diff
changeset
|
850 |
return dict([(k, i) for k, i in fields if k in self.__fields]) |
2051
cecbef1289a5
Make the mentor and organization admin comment submission on student proposal nicer. Now drop down box allows you to select comment type and based on selected type and your current Role shows you available comment options. Left TODO to put inline JS into separate JS file.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2041
diff
changeset
|
851 |
|
cecbef1289a5
Make the mentor and organization admin comment submission on student proposal nicer. Now drop down box allows you to select comment type and based on selected type and your current Role shows you available comment options. Left TODO to put inline JS into separate JS file.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2041
diff
changeset
|
852 |
def __iter__(self): |
2076
1cd180cc56c9
Style fixes and removal of unused imports in soc.views.models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2051
diff
changeset
|
853 |
for field in self.__form: |
1cd180cc56c9
Style fixes and removal of unused imports in soc.views.models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2051
diff
changeset
|
854 |
if field.name not in self.__fields: |
2051
cecbef1289a5
Make the mentor and organization admin comment submission on student proposal nicer. Now drop down box allows you to select comment type and based on selected type and your current Role shows you available comment options. Left TODO to put inline JS into separate JS file.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2041
diff
changeset
|
855 |
continue |
2076
1cd180cc56c9
Style fixes and removal of unused imports in soc.views.models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2051
diff
changeset
|
856 |
yield field |
2051
cecbef1289a5
Make the mentor and organization admin comment submission on student proposal nicer. Now drop down box allows you to select comment type and based on selected type and your current Role shows you available comment options. Left TODO to put inline JS into separate JS file.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2041
diff
changeset
|
857 |
|
cecbef1289a5
Make the mentor and organization admin comment submission on student proposal nicer. Now drop down box allows you to select comment type and based on selected type and your current Role shows you available comment options. Left TODO to put inline JS into separate JS file.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2041
diff
changeset
|
858 |
_marker = [] |
cecbef1289a5
Make the mentor and organization admin comment submission on student proposal nicer. Now drop down box allows you to select comment type and based on selected type and your current Role shows you available comment options. Left TODO to put inline JS into separate JS file.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2041
diff
changeset
|
859 |
def __getattr__(self, key, default=_marker): |
cecbef1289a5
Make the mentor and organization admin comment submission on student proposal nicer. Now drop down box allows you to select comment type and based on selected type and your current Role shows you available comment options. Left TODO to put inline JS into separate JS file.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2041
diff
changeset
|
860 |
if default is self._marker: |
cecbef1289a5
Make the mentor and organization admin comment submission on student proposal nicer. Now drop down box allows you to select comment type and based on selected type and your current Role shows you available comment options. Left TODO to put inline JS into separate JS file.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2041
diff
changeset
|
861 |
return getattr(self.__form, key) |
cecbef1289a5
Make the mentor and organization admin comment submission on student proposal nicer. Now drop down box allows you to select comment type and based on selected type and your current Role shows you available comment options. Left TODO to put inline JS into separate JS file.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2041
diff
changeset
|
862 |
else: |
cecbef1289a5
Make the mentor and organization admin comment submission on student proposal nicer. Now drop down box allows you to select comment type and based on selected type and your current Role shows you available comment options. Left TODO to put inline JS into separate JS file.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2041
diff
changeset
|
863 |
return getattr(self.__form, key, default) |
cecbef1289a5
Make the mentor and organization admin comment submission on student proposal nicer. Now drop down box allows you to select comment type and based on selected type and your current Role shows you available comment options. Left TODO to put inline JS into separate JS file.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2041
diff
changeset
|
864 |
|
cecbef1289a5
Make the mentor and organization admin comment submission on student proposal nicer. Now drop down box allows you to select comment type and based on selected type and your current Role shows you available comment options. Left TODO to put inline JS into separate JS file.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2041
diff
changeset
|
865 |
context['form'] = form(initial) |
cecbef1289a5
Make the mentor and organization admin comment submission on student proposal nicer. Now drop down box allows you to select comment type and based on selected type and your current Role shows you available comment options. Left TODO to put inline JS into separate JS file.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2041
diff
changeset
|
866 |
context['comment_public'] = FilterForm(context['form'], comment_public) |
cecbef1289a5
Make the mentor and organization admin comment submission on student proposal nicer. Now drop down box allows you to select comment type and based on selected type and your current Role shows you available comment options. Left TODO to put inline JS into separate JS file.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2041
diff
changeset
|
867 |
context['comment_private'] = FilterForm(context['form'], comment_private) |
cecbef1289a5
Make the mentor and organization admin comment submission on student proposal nicer. Now drop down box allows you to select comment type and based on selected type and your current Role shows you available comment options. Left TODO to put inline JS into separate JS file.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2041
diff
changeset
|
868 |
context['comment_admin'] = FilterForm(context['form'], comment_admin) |
cecbef1289a5
Make the mentor and organization admin comment submission on student proposal nicer. Now drop down box allows you to select comment type and based on selected type and your current Role shows you available comment options. Left TODO to put inline JS into separate JS file.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2041
diff
changeset
|
869 |
|
1715
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
870 |
# get all the extra information that should be in the context |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
871 |
review_context = self._getDefaultReviewContext(entity, org_admin, mentor) |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
872 |
context = dicts.merge(context, review_context) |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
873 |
|
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
874 |
template = params['review_template'] |
1666
cdb7e5581694
Mentor buttons only show up depending on if you are already on the possible mentors list.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1639
diff
changeset
|
875 |
|
1715
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
876 |
return responses.respond(request, template, context=context) |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
877 |
|
2258
280d2cf745f2
Allowing student project review page to be viewed in read-only mode after the deadline has passed.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2191
diff
changeset
|
878 |
def reviewAfterDeadline(self,request, context, params, entity,**kwargs): |
280d2cf745f2
Allowing student project review page to be viewed in read-only mode after the deadline has passed.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2191
diff
changeset
|
879 |
"""View that shows the review view after the accepted students announced deadline. |
280d2cf745f2
Allowing student project review page to be viewed in read-only mode after the deadline has passed.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2191
diff
changeset
|
880 |
|
280d2cf745f2
Allowing student project review page to be viewed in read-only mode after the deadline has passed.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2191
diff
changeset
|
881 |
For Args see base.View.public(). |
280d2cf745f2
Allowing student project review page to be viewed in read-only mode after the deadline has passed.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2191
diff
changeset
|
882 |
""" |
280d2cf745f2
Allowing student project review page to be viewed in read-only mode after the deadline has passed.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2191
diff
changeset
|
883 |
|
280d2cf745f2
Allowing student project review page to be viewed in read-only mode after the deadline has passed.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2191
diff
changeset
|
884 |
review_context = self._getDefaultReviewContext(entity, None, None) |
280d2cf745f2
Allowing student project review page to be viewed in read-only mode after the deadline has passed.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2191
diff
changeset
|
885 |
context = dicts.merge(context, review_context) |
280d2cf745f2
Allowing student project review page to be viewed in read-only mode after the deadline has passed.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2191
diff
changeset
|
886 |
|
280d2cf745f2
Allowing student project review page to be viewed in read-only mode after the deadline has passed.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2191
diff
changeset
|
887 |
template = params['review_after_deadline_template'] |
280d2cf745f2
Allowing student project review page to be viewed in read-only mode after the deadline has passed.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2191
diff
changeset
|
888 |
|
280d2cf745f2
Allowing student project review page to be viewed in read-only mode after the deadline has passed.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2191
diff
changeset
|
889 |
return responses.respond(request, template, context=context) |
280d2cf745f2
Allowing student project review page to be viewed in read-only mode after the deadline has passed.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2191
diff
changeset
|
890 |
|
1715
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
891 |
def _getDefaultReviewContext(self, entity, org_admin, |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
892 |
mentor): |
1758
e035f81d367b
Some minor style fixes.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1752
diff
changeset
|
893 |
"""Returns the default context for the review page. |
1715
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
894 |
|
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
895 |
Args: |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
896 |
entity: Student Proposal entity |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
897 |
org_admin: org admin entity for the current user/proposal (iff available) |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
898 |
mentor: mentor entity for the current user/proposal (iff available) |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
899 |
""" |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
900 |
|
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
901 |
from soc.logic.models.review import logic as review_logic |
1883
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
902 |
from soc.logic.models.review_follower import logic as review_follower_logic |
1715
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
903 |
|
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
904 |
context = {} |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
905 |
|
1898
7f18e83a129f
Hook up the new template tag for StudentProposal reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1895
diff
changeset
|
906 |
context['student'] = entity.scope |
1715
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
907 |
context['student_name'] = entity.scope.name() |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
908 |
|
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
909 |
if entity.mentor: |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
910 |
context['mentor_name'] = entity.mentor.name() |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
911 |
else: |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
912 |
context['mentor_name'] = "No mentor assigned" |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
913 |
|
1666
cdb7e5581694
Mentor buttons only show up depending on if you are already on the possible mentors list.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1639
diff
changeset
|
914 |
# set the possible mentors in the context |
cdb7e5581694
Mentor buttons only show up depending on if you are already on the possible mentors list.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1639
diff
changeset
|
915 |
possible_mentors = entity.possible_mentors |
cdb7e5581694
Mentor buttons only show up depending on if you are already on the possible mentors list.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1639
diff
changeset
|
916 |
|
cdb7e5581694
Mentor buttons only show up depending on if you are already on the possible mentors list.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1639
diff
changeset
|
917 |
if not possible_mentors: |
cdb7e5581694
Mentor buttons only show up depending on if you are already on the possible mentors list.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1639
diff
changeset
|
918 |
context['possible_mentors'] = "None" |
cdb7e5581694
Mentor buttons only show up depending on if you are already on the possible mentors list.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1639
diff
changeset
|
919 |
else: |
cdb7e5581694
Mentor buttons only show up depending on if you are already on the possible mentors list.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1639
diff
changeset
|
920 |
mentor_names = [] |
cdb7e5581694
Mentor buttons only show up depending on if you are already on the possible mentors list.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1639
diff
changeset
|
921 |
|
cdb7e5581694
Mentor buttons only show up depending on if you are already on the possible mentors list.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1639
diff
changeset
|
922 |
for mentor_key in possible_mentors: |
2185
09ca8e661728
Fix too long line and redefining variable 'review' from outer scope in soc.views.models.student_proposal module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2179
diff
changeset
|
923 |
possible_mentor = mentor_logic.logic.getFromKeyName( |
09ca8e661728
Fix too long line and redefining variable 'review' from outer scope in soc.views.models.student_proposal module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2179
diff
changeset
|
924 |
mentor_key.id_or_name()) |
2179
efc3a50a81ef
Undid superfluas replacement of .name() with .name_or_id()
Sverre Rabbelier <srabbelier@gmail.com>
parents:
2177
diff
changeset
|
925 |
mentor_names.append(possible_mentor.name()) |
1666
cdb7e5581694
Mentor buttons only show up depending on if you are already on the possible mentors list.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1639
diff
changeset
|
926 |
|
cdb7e5581694
Mentor buttons only show up depending on if you are already on the possible mentors list.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1639
diff
changeset
|
927 |
context['possible_mentors'] = ', '.join(mentor_names) |
cdb7e5581694
Mentor buttons only show up depending on if you are already on the possible mentors list.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1639
diff
changeset
|
928 |
|
1741
0da1285f5bc0
Public reviews are now shown on the public page for the student proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1715
diff
changeset
|
929 |
# order the reviews by ascending creation date |
0da1285f5bc0
Public reviews are now shown on the public page for the student proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1715
diff
changeset
|
930 |
order = ['created'] |
1715
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
931 |
|
1741
0da1285f5bc0
Public reviews are now shown on the public page for the student proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1715
diff
changeset
|
932 |
# get the public reviews |
2173
27731db8ab1e
Added overview of private reviews to the Student Proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2160
diff
changeset
|
933 |
public_reviews = review_logic.getReviewsForEntity(entity, |
1741
0da1285f5bc0
Public reviews are now shown on the public page for the student proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1715
diff
changeset
|
934 |
is_public=True, order=order) |
1715
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
935 |
|
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
936 |
# get the private reviews |
2173
27731db8ab1e
Added overview of private reviews to the Student Proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2160
diff
changeset
|
937 |
private_reviews = review_logic.getReviewsForEntity(entity, |
1741
0da1285f5bc0
Public reviews are now shown on the public page for the student proposal.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1715
diff
changeset
|
938 |
is_public=False, order=order) |
1715
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
939 |
|
2173
27731db8ab1e
Added overview of private reviews to the Student Proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2160
diff
changeset
|
940 |
# store the reviews in the context |
27731db8ab1e
Added overview of private reviews to the Student Proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2160
diff
changeset
|
941 |
context['public_reviews'] = public_reviews |
27731db8ab1e
Added overview of private reviews to the Student Proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2160
diff
changeset
|
942 |
context['private_reviews'] = private_reviews |
27731db8ab1e
Added overview of private reviews to the Student Proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2160
diff
changeset
|
943 |
|
2174
19ed1c42e836
Added a warning message to alert the user that reviews are not editable.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2173
diff
changeset
|
944 |
# create a summary of all the private reviews |
2173
27731db8ab1e
Added overview of private reviews to the Student Proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2160
diff
changeset
|
945 |
review_summary = {} |
27731db8ab1e
Added overview of private reviews to the Student Proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2160
diff
changeset
|
946 |
|
2185
09ca8e661728
Fix too long line and redefining variable 'review' from outer scope in soc.views.models.student_proposal module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2179
diff
changeset
|
947 |
for private_review in private_reviews: |
2174
19ed1c42e836
Added a warning message to alert the user that reviews are not editable.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2173
diff
changeset
|
948 |
# make sure there is a reviewer |
2185
09ca8e661728
Fix too long line and redefining variable 'review' from outer scope in soc.views.models.student_proposal module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2179
diff
changeset
|
949 |
reviewer = private_review.reviewer |
2173
27731db8ab1e
Added overview of private reviews to the Student Proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2160
diff
changeset
|
950 |
if not reviewer: |
27731db8ab1e
Added overview of private reviews to the Student Proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2160
diff
changeset
|
951 |
continue |
27731db8ab1e
Added overview of private reviews to the Student Proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2160
diff
changeset
|
952 |
|
27731db8ab1e
Added overview of private reviews to the Student Proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2160
diff
changeset
|
953 |
reviewer_key = reviewer.key() |
27731db8ab1e
Added overview of private reviews to the Student Proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2160
diff
changeset
|
954 |
reviewer_summary = review_summary.get(reviewer_key) |
27731db8ab1e
Added overview of private reviews to the Student Proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2160
diff
changeset
|
955 |
|
27731db8ab1e
Added overview of private reviews to the Student Proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2160
diff
changeset
|
956 |
if reviewer_summary: |
27731db8ab1e
Added overview of private reviews to the Student Proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2160
diff
changeset
|
957 |
# we already have something on file for this reviewer |
27731db8ab1e
Added overview of private reviews to the Student Proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2160
diff
changeset
|
958 |
old_total_score = reviewer_summary['total_score'] |
2185
09ca8e661728
Fix too long line and redefining variable 'review' from outer scope in soc.views.models.student_proposal module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2179
diff
changeset
|
959 |
reviewer_summary['total_score'] = old_total_score + private_review.score |
2173
27731db8ab1e
Added overview of private reviews to the Student Proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2160
diff
changeset
|
960 |
|
27731db8ab1e
Added overview of private reviews to the Student Proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2160
diff
changeset
|
961 |
old_total_comments = reviewer_summary['total_comments'] |
27731db8ab1e
Added overview of private reviews to the Student Proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2160
diff
changeset
|
962 |
reviewer_summary['total_comments'] = old_total_comments + 1 |
27731db8ab1e
Added overview of private reviews to the Student Proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2160
diff
changeset
|
963 |
else: |
27731db8ab1e
Added overview of private reviews to the Student Proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2160
diff
changeset
|
964 |
review_summary[reviewer_key] = { |
27731db8ab1e
Added overview of private reviews to the Student Proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2160
diff
changeset
|
965 |
'name': reviewer.name(), |
27731db8ab1e
Added overview of private reviews to the Student Proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2160
diff
changeset
|
966 |
'total_comments': 1, |
2185
09ca8e661728
Fix too long line and redefining variable 'review' from outer scope in soc.views.models.student_proposal module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2179
diff
changeset
|
967 |
'total_score': private_review.score} |
2173
27731db8ab1e
Added overview of private reviews to the Student Proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2160
diff
changeset
|
968 |
|
27731db8ab1e
Added overview of private reviews to the Student Proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2160
diff
changeset
|
969 |
context['review_summary'] = review_summary |
27731db8ab1e
Added overview of private reviews to the Student Proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2160
diff
changeset
|
970 |
|
1715
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
971 |
# which button should we show to the mentor? |
1666
cdb7e5581694
Mentor buttons only show up depending on if you are already on the possible mentors list.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1639
diff
changeset
|
972 |
if mentor: |
2091
dd3eb2770205
Make "Mark as Ineligible" reversable and make this feature available for mentors too.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2076
diff
changeset
|
973 |
context['is_mentor'] = True |
1666
cdb7e5581694
Mentor buttons only show up depending on if you are already on the possible mentors list.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1639
diff
changeset
|
974 |
if mentor.key() in possible_mentors: |
cdb7e5581694
Mentor buttons only show up depending on if you are already on the possible mentors list.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1639
diff
changeset
|
975 |
# show "No longer willing to mentor" |
cdb7e5581694
Mentor buttons only show up depending on if you are already on the possible mentors list.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1639
diff
changeset
|
976 |
context['remove_me_as_mentor'] = True |
cdb7e5581694
Mentor buttons only show up depending on if you are already on the possible mentors list.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1639
diff
changeset
|
977 |
else: |
cdb7e5581694
Mentor buttons only show up depending on if you are already on the possible mentors list.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1639
diff
changeset
|
978 |
# show "I am willing to mentor" |
cdb7e5581694
Mentor buttons only show up depending on if you are already on the possible mentors list.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1639
diff
changeset
|
979 |
context['add_me_as_mentor'] = True |
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
980 |
|
1779
cdd11aa8dbc7
Org admins can mark a StudentProposal as invalid if they for any reason find it ineligible.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1758
diff
changeset
|
981 |
if org_admin: |
cdd11aa8dbc7
Org admins can mark a StudentProposal as invalid if they for any reason find it ineligible.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1758
diff
changeset
|
982 |
context['is_org_admin'] = True |
cdd11aa8dbc7
Org admins can mark a StudentProposal as invalid if they for any reason find it ineligible.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1758
diff
changeset
|
983 |
|
1883
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
984 |
user_entity = user_logic.logic.getForCurrentAccount() |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
985 |
|
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
986 |
# check if the current user is subscribed to public or private reviews |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
987 |
fields = {'scope': entity, |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
988 |
'user': user_entity,} |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
989 |
follower_entity = review_follower_logic.getForFields(fields, unique=True) |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
990 |
|
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
991 |
if follower_entity: |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
992 |
context['is_subscribed_public'] = follower_entity.subscribed_public |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
993 |
context['is_subscribed_private'] = follower_entity.subscribed_private |
ce564c03d90a
The StudentProposal review view now also allow you to subscribe to public/private reviews.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1882
diff
changeset
|
994 |
|
1715
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
995 |
return context |
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
996 |
|
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
997 |
def _adjustPossibleMentors(self, entity, mentor, choice): |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
998 |
"""Adjusts the possible mentors list for a proposal. |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
999 |
|
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1000 |
Args: |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1001 |
entity: Student Proposal entity |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1002 |
mentor: Mentor entity |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1003 |
choice: 1 means want to mentor, 0 do not want to mentor |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1004 |
""" |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1005 |
possible_mentors = entity.possible_mentors |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1006 |
|
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1007 |
if choice == '1': |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1008 |
# add the mentor to possible mentors list if not already in |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1009 |
if mentor.key() not in possible_mentors: |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1010 |
possible_mentors.append(mentor.key()) |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1011 |
fields = {'possible_mentors': possible_mentors} |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1012 |
self._logic.updateEntityProperties(entity, fields) |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1013 |
elif choice == '0': |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1014 |
# remove the mentor from the possible mentors list |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1015 |
if mentor.key() in possible_mentors: |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1016 |
possible_mentors.remove(mentor.key()) |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1017 |
fields = {'possible_mentors': possible_mentors} |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1018 |
self._logic.updateEntityProperties(entity, fields) |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1019 |
|
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1020 |
def _adjustMentor(self, entity, mentor_id): |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1021 |
"""Changes the mentor to the given link_id. |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1022 |
|
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1023 |
Args: |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1024 |
entity: Student Proposal entity |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1025 |
mentor_id: Link ID of the mentor that needs to be assigned |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1026 |
Iff not given then removes the assigned mentor |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1027 |
""" |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1028 |
|
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1029 |
if entity.mentor and entity.mentor.link_id == mentor_id: |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1030 |
# no need to change |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1031 |
return |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1032 |
|
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1033 |
if mentor_id: |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1034 |
# try to locate the mentor |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1035 |
fields = {'link_id': mentor_id, |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1036 |
'scope': entity.org, |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1037 |
'status': 'active'} |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1038 |
|
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1039 |
mentor_entity = mentor_logic.logic.getForFields(fields, unique=True) |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1040 |
|
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1041 |
if not mentor_entity: |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1042 |
# no mentor found, do not update |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1043 |
return |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1044 |
else: |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1045 |
# reset to None |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1046 |
mentor_entity = None |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1047 |
|
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1048 |
# update the proposal |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1049 |
properties = {'mentor': mentor_entity} |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1050 |
self._logic.updateEntityProperties(entity, properties) |
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1051 |
|
2076
1cd180cc56c9
Style fixes and removal of unused imports in soc.views.models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2051
diff
changeset
|
1052 |
def _createReviewFor(self, entity, reviewer, comment, |
1cd180cc56c9
Style fixes and removal of unused imports in soc.views.models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2051
diff
changeset
|
1053 |
score=0, is_public=True): |
1cd180cc56c9
Style fixes and removal of unused imports in soc.views.models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2051
diff
changeset
|
1054 |
"""Creates a review for the given proposal and sends |
1cd180cc56c9
Style fixes and removal of unused imports in soc.views.models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2051
diff
changeset
|
1055 |
out a message to all followers. |
1715
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
1056 |
|
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
1057 |
Args: |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
1058 |
entity: Student Proposal entity for which the review should be created |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
1059 |
reviewer: A role entity of the reviewer (if possible, else None) |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
1060 |
comment: The textual contents of the review |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
1061 |
score: The score of the review (only used if the review is not public) |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
1062 |
is_public: Determines if the review is a public review |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
1063 |
""" |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
1064 |
|
1894
da52a47b5a6b
Send out a message on a new StudentProposal review to all followers.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1890
diff
changeset
|
1065 |
from soc.logic.helper import notifications as notifications_helper |
1715
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
1066 |
from soc.logic.models.review import logic as review_logic |
1894
da52a47b5a6b
Send out a message on a new StudentProposal review to all followers.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1890
diff
changeset
|
1067 |
from soc.logic.models.review_follower import logic as review_follower_logic |
1715
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
1068 |
|
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
1069 |
# create the fields for the review entity |
2076
1cd180cc56c9
Style fixes and removal of unused imports in soc.views.models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2051
diff
changeset
|
1070 |
fields = {'link_id': 't%i' % (int(time.time()*100)), |
1715
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
1071 |
'scope': entity, |
2160
3f9dd37d98a8
Use key().id_or_name() instead of key().name()
Sverre Rabbelier <srabbelier@gmail.com>
parents:
2150
diff
changeset
|
1072 |
'scope_path': entity.key().id_or_name(), |
1715
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
1073 |
'author': user_logic.logic.getForCurrentAccount(), |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
1074 |
'content': comment, |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
1075 |
'is_public': is_public, |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
1076 |
'reviewer': reviewer |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
1077 |
} |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
1078 |
|
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
1079 |
# add the given score if the review is not public |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
1080 |
if not is_public: |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
1081 |
fields['score'] = score |
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
1082 |
|
1894
da52a47b5a6b
Send out a message on a new StudentProposal review to all followers.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1890
diff
changeset
|
1083 |
# create a new Review |
1715
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
1084 |
key_name = review_logic.getKeyNameFromFields(fields) |
1894
da52a47b5a6b
Send out a message on a new StudentProposal review to all followers.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1890
diff
changeset
|
1085 |
review_entity = review_logic.updateOrCreateFromKeyName(fields, key_name) |
da52a47b5a6b
Send out a message on a new StudentProposal review to all followers.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1890
diff
changeset
|
1086 |
|
da52a47b5a6b
Send out a message on a new StudentProposal review to all followers.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1890
diff
changeset
|
1087 |
# get all followers |
da52a47b5a6b
Send out a message on a new StudentProposal review to all followers.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1890
diff
changeset
|
1088 |
fields = {'scope': entity} |
da52a47b5a6b
Send out a message on a new StudentProposal review to all followers.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1890
diff
changeset
|
1089 |
|
da52a47b5a6b
Send out a message on a new StudentProposal review to all followers.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1890
diff
changeset
|
1090 |
if is_public: |
da52a47b5a6b
Send out a message on a new StudentProposal review to all followers.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1890
diff
changeset
|
1091 |
fields['subscribed_public'] = True |
da52a47b5a6b
Send out a message on a new StudentProposal review to all followers.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1890
diff
changeset
|
1092 |
else: |
da52a47b5a6b
Send out a message on a new StudentProposal review to all followers.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1890
diff
changeset
|
1093 |
fields['subscribed_private'] = True |
1715
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
1094 |
|
1894
da52a47b5a6b
Send out a message on a new StudentProposal review to all followers.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1890
diff
changeset
|
1095 |
followers = review_follower_logic.getForFields(fields) |
da52a47b5a6b
Send out a message on a new StudentProposal review to all followers.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1890
diff
changeset
|
1096 |
|
da52a47b5a6b
Send out a message on a new StudentProposal review to all followers.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1890
diff
changeset
|
1097 |
if is_public: |
da52a47b5a6b
Send out a message on a new StudentProposal review to all followers.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1890
diff
changeset
|
1098 |
# redirect to public page |
da52a47b5a6b
Send out a message on a new StudentProposal review to all followers.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1890
diff
changeset
|
1099 |
redirect_url = redirects.getPublicRedirect(entity, self._params) |
da52a47b5a6b
Send out a message on a new StudentProposal review to all followers.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1890
diff
changeset
|
1100 |
else: |
da52a47b5a6b
Send out a message on a new StudentProposal review to all followers.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1890
diff
changeset
|
1101 |
# redirect to review page |
da52a47b5a6b
Send out a message on a new StudentProposal review to all followers.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1890
diff
changeset
|
1102 |
redirect_url = redirects.getReviewRedirect(entity, self._params) |
da52a47b5a6b
Send out a message on a new StudentProposal review to all followers.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1890
diff
changeset
|
1103 |
|
da52a47b5a6b
Send out a message on a new StudentProposal review to all followers.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1890
diff
changeset
|
1104 |
for follower in followers: |
da52a47b5a6b
Send out a message on a new StudentProposal review to all followers.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1890
diff
changeset
|
1105 |
# sent to every follower except the reviewer |
1895
564b066c313c
Notifications will not be sent out to the reviewer.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1894
diff
changeset
|
1106 |
if follower.user.key() != review_entity.author.key(): |
1894
da52a47b5a6b
Send out a message on a new StudentProposal review to all followers.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1890
diff
changeset
|
1107 |
notifications_helper.sendNewReviewNotification(follower.user, |
da52a47b5a6b
Send out a message on a new StudentProposal review to all followers.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1890
diff
changeset
|
1108 |
review_entity, entity.title, redirect_url) |
1715
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
1109 |
|
3ec1a9518452
Added the review capability to the student_proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1666
diff
changeset
|
1110 |
|
1426
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
1111 |
view = View() |
dc3a7f618b68
Added student_proposal view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
1112 |
|
1584
d8ba8c917f37
Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1569
diff
changeset
|
1113 |
admin = decorators.view(view.admin) |
d8ba8c917f37
Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1569
diff
changeset
|
1114 |
apply = decorators.view(view.apply) |
d8ba8c917f37
Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1569
diff
changeset
|
1115 |
create = decorators.view(view.create) |
d8ba8c917f37
Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1569
diff
changeset
|
1116 |
delete = decorators.view(view.delete) |
d8ba8c917f37
Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1569
diff
changeset
|
1117 |
edit = decorators.view(view.edit) |
d8ba8c917f37
Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1569
diff
changeset
|
1118 |
list = decorators.view(view.list) |
d8ba8c917f37
Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1569
diff
changeset
|
1119 |
list_orgs = decorators.view(view.listOrgs) |
d8ba8c917f37
Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1569
diff
changeset
|
1120 |
list_self = decorators.view(view.listSelf) |
d8ba8c917f37
Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1569
diff
changeset
|
1121 |
public = decorators.view(view.public) |
1613
59e5cc89e509
Added student proposal review page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
1584
diff
changeset
|
1122 |
review = decorators.view(view.review) |
1584
d8ba8c917f37
Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1569
diff
changeset
|
1123 |
export = decorators.view(view.export) |
d8ba8c917f37
Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents:
1569
diff
changeset
|
1124 |
pick = decorators.view(view.pick) |