author | Lennard de Rijk <ljvderijk@gmail.com> |
Mon, 25 May 2009 23:45:20 +0200 | |
changeset 2348 | 0edff67b472d |
parent 2330 | 068540d91bde |
child 2360 | e389d26949db |
permissions | -rw-r--r-- |
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
1 |
#!/usr/bin/python2.5 |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
2 |
# |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
3 |
# Copyright 2009 the Melange authors. |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
4 |
# |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
5 |
# Licensed under the Apache License, Version 2.0 (the "License"); |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
6 |
# you may not use this file except in compliance with the License. |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
7 |
# You may obtain a copy of the License at |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
8 |
# |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
9 |
# http://www.apache.org/licenses/LICENSE-2.0 |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
10 |
# |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
11 |
# Unless required by applicable law or agreed to in writing, software |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
12 |
# distributed under the License is distributed on an "AS IS" BASIS, |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
13 |
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
14 |
# See the License for the specific language governing permissions and |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
15 |
# limitations under the License. |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
16 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
17 |
"""Views for Student Project. |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
18 |
""" |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
19 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
20 |
__authors__ = [ |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
21 |
'"Lennard de Rijk" <ljvderijk@gmail.com>', |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
22 |
] |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
23 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
24 |
|
2278
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
25 |
import logging |
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
26 |
import time |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
27 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
28 |
from django import forms |
2278
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
29 |
from django import http |
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
30 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
31 |
from soc.logic import cleaning |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
32 |
from soc.logic import dicts |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
33 |
from soc.logic.models import mentor as mentor_logic |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
34 |
from soc.logic.models.organization import logic as org_logic |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
35 |
from soc.logic.models.org_admin import logic as org_admin_logic |
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
36 |
from soc.logic.models import student as student_logic |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
37 |
from soc.logic.models.student_project import logic as project_logic |
2117
f1a1a75cdb00
Add missing imports, remove unsused imports, fix too long lines and some other style fixes in soc.views.models.student_project module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2115
diff
changeset
|
38 |
from soc.views import out_of_band |
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
39 |
from soc.views.helper import access |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
40 |
from soc.views.helper import decorators |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
41 |
from soc.views.helper import dynaform |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
42 |
from soc.views.helper import forms as forms_helper |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
43 |
from soc.views.helper import lists |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
44 |
from soc.views.helper import params as params_helper |
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
45 |
from soc.views.helper import redirects |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
46 |
from soc.views.helper import responses |
2125
c24e8423cd1a
Added public info as TinyMCE to the edit pages.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2122
diff
changeset
|
47 |
from soc.views.helper import widgets |
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
48 |
from soc.views.models import base |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
49 |
from soc.views.models import organization as org_view |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
50 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
51 |
import soc.logic.models.student_project |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
52 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
53 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
54 |
class View(base.View): |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
55 |
"""View methods for the Student Project model. |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
56 |
""" |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
57 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
58 |
def __init__(self, params=None): |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
59 |
"""Defines the fields and methods required for the base View class |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
60 |
to provide the user with list, public, create, edit and delete views. |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
61 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
62 |
Params: |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
63 |
params: a dict with params for this View |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
64 |
""" |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
65 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
66 |
rights = access.Checker(params) |
2241
5e5b7f5d9a89
Allow anyone to see student projects
Sverre Rabbelier <srabbelier@gmail.com>
parents:
2183
diff
changeset
|
67 |
rights['any_access'] = ['allow'] |
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
68 |
rights['create'] = ['checkIsDeveloper'] |
2076
1cd180cc56c9
Style fixes and removal of unused imports in soc.views.models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
1936
diff
changeset
|
69 |
rights['edit'] = ['checkIsDeveloper'] |
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
70 |
rights['delete'] = ['checkIsDeveloper'] |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
71 |
rights['show'] = ['allow'] |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
72 |
rights['list'] = ['checkIsDeveloper'] |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
73 |
rights['manage'] = [('checkHasActiveRoleForScope', |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
74 |
org_admin_logic), |
2152
3c3f0cd9873d
Brown paper bag fix for Student Project Manage and Edit access check.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2146
diff
changeset
|
75 |
('checkStudentProjectHasStatus', [['accepted', 'mid_term_passed']])] |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
76 |
rights['manage_overview'] = [('checkHasActiveRoleForScope', |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
77 |
org_admin_logic)] |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
78 |
# TODO lack of better name here! |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
79 |
rights['st_edit'] = ['checkIsMyStudentProject', |
2152
3c3f0cd9873d
Brown paper bag fix for Student Project Manage and Edit access check.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2146
diff
changeset
|
80 |
('checkStudentProjectHasStatus', |
3c3f0cd9873d
Brown paper bag fix for Student Project Manage and Edit access check.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2146
diff
changeset
|
81 |
[['accepted', 'mid_term_passed', 'passed']]) |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
82 |
] |
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
83 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
84 |
new_params = {} |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
85 |
new_params['logic'] = soc.logic.models.student_project.logic |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
86 |
new_params['rights'] = rights |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
87 |
new_params['name'] = "Student Project" |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
88 |
new_params['url_name'] = "student_project" |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
89 |
new_params['sidebar_grouping'] = 'Students' |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
90 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
91 |
new_params['scope_view'] = org_view |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
92 |
new_params['scope_redirect'] = redirects.getCreateRedirect |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
93 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
94 |
new_params['no_create_with_key_fields'] = True |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
95 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
96 |
new_params['extra_dynaexclude'] = ['program', 'status', 'link_id', |
2183
4e036dcc79ba
Added additional_mentors property to StudentProject.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2177
diff
changeset
|
97 |
'mentor', 'additional_mentors', |
4e036dcc79ba
Added additional_mentors property to StudentProject.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2177
diff
changeset
|
98 |
'student'] |
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
99 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
100 |
new_params['create_extra_dynaproperties'] = { |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
101 |
'scope_path': forms.CharField(widget=forms.HiddenInput, |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
102 |
required=True), |
2125
c24e8423cd1a
Added public info as TinyMCE to the edit pages.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2122
diff
changeset
|
103 |
'public_info': forms.fields.CharField(required=True, |
c24e8423cd1a
Added public info as TinyMCE to the edit pages.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2122
diff
changeset
|
104 |
widget=widgets.FullTinyMCE(attrs={'rows': 25, 'cols': 100})), |
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
105 |
'student_id': forms.CharField(label='Student Link ID', |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
106 |
required=True), |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
107 |
'mentor_id': forms.CharField(label='Mentor Link ID', |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
108 |
required=True), |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
109 |
'clean_abstract': cleaning.clean_content_length('abstract'), |
2125
c24e8423cd1a
Added public info as TinyMCE to the edit pages.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2122
diff
changeset
|
110 |
'clean_public_info': cleaning.clean_html_content('public_info'), |
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
111 |
'clean_student': cleaning.clean_link_id('student'), |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
112 |
'clean_mentor': cleaning.clean_link_id('mentor'), |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
113 |
'clean_additional_info': cleaning.clean_url('additional_info'), |
2122
b709f9d1566a
Added feed_url to StudentProject.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2121
diff
changeset
|
114 |
'clean_feed_url': cleaning.clean_feed_url, |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
115 |
'clean': cleaning.validate_student_project('scope_path', |
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
116 |
'mentor_id', 'student_id') |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
117 |
} |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
118 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
119 |
new_params['edit_extra_dynaproperties'] = { |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
120 |
'link_id': forms.CharField(widget=forms.HiddenInput), |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
121 |
} |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
122 |
|
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
123 |
patterns = [ |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
124 |
(r'^%(url_name)s/(?P<access_type>manage_overview)/%(scope)s$', |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
125 |
'soc.views.models.%(module_name)s.manage_overview', |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
126 |
'Overview of %(name_plural)s to Manage for'), |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
127 |
(r'^%(url_name)s/(?P<access_type>manage)/%(key_fields)s$', |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
128 |
'soc.views.models.%(module_name)s.manage', |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
129 |
'Manage %(name)s'), |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
130 |
(r'^%(url_name)s/(?P<access_type>st_edit)/%(key_fields)s$', |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
131 |
'soc.views.models.%(module_name)s.st_edit', |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
132 |
'Edit my %(name)s'), |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
133 |
] |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
134 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
135 |
new_params['extra_django_patterns'] = patterns |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
136 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
137 |
new_params['edit_template'] = 'soc/student_project/edit.html' |
2278
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
138 |
new_params['manage_template'] = 'soc/student_project/manage.html' |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
139 |
|
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
140 |
params = dicts.merge(params, new_params) |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
141 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
142 |
super(View, self).__init__(params=params) |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
143 |
|
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
144 |
# create the form that students will use to edit their projects |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
145 |
dynaproperties = { |
2125
c24e8423cd1a
Added public info as TinyMCE to the edit pages.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2122
diff
changeset
|
146 |
'public_info': forms.fields.CharField(required=True, |
c24e8423cd1a
Added public info as TinyMCE to the edit pages.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2122
diff
changeset
|
147 |
widget=widgets.FullTinyMCE(attrs={'rows': 25, 'cols': 100})), |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
148 |
'clean_abstract': cleaning.clean_content_length('abstract'), |
2125
c24e8423cd1a
Added public info as TinyMCE to the edit pages.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2122
diff
changeset
|
149 |
'clean_public_info': cleaning.clean_html_content('public_info'), |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
150 |
'clean_additional_info': cleaning.clean_url('additional_info'), |
2122
b709f9d1566a
Added feed_url to StudentProject.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2121
diff
changeset
|
151 |
'clean_feed_url': cleaning.clean_feed_url, |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
152 |
} |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
153 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
154 |
student_edit_form = dynaform.newDynaForm( |
2177
e2c193e1f631
Do not rely on dicts.merge to change target
Sverre Rabbelier <srabbelier@gmail.com>
parents:
2154
diff
changeset
|
155 |
dynabase = self._params['dynabase'], |
e2c193e1f631
Do not rely on dicts.merge to change target
Sverre Rabbelier <srabbelier@gmail.com>
parents:
2154
diff
changeset
|
156 |
dynamodel = self._params['logic'].getModel(), |
e2c193e1f631
Do not rely on dicts.merge to change target
Sverre Rabbelier <srabbelier@gmail.com>
parents:
2154
diff
changeset
|
157 |
dynaexclude = self._params['create_dynaexclude'], |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
158 |
dynaproperties = dynaproperties, |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
159 |
) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
160 |
|
2177
e2c193e1f631
Do not rely on dicts.merge to change target
Sverre Rabbelier <srabbelier@gmail.com>
parents:
2154
diff
changeset
|
161 |
self._params['student_edit_form'] = student_edit_form |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
162 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
163 |
|
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
164 |
def _editGet(self, request, entity, form): |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
165 |
"""See base.View._editGet(). |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
166 |
""" |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
167 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
168 |
form.fields['link_id'].initial = entity.link_id |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
169 |
form.fields['student_id'].initial = entity.student.link_id |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
170 |
form.fields['mentor_id'].initial = entity.mentor.link_id |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
171 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
172 |
return super(View, self)._editGet(request, entity, form) |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
173 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
174 |
def _editPost(self, request, entity, fields): |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
175 |
"""See base.View._editPost(). |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
176 |
""" |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
177 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
178 |
if not entity: |
2076
1cd180cc56c9
Style fixes and removal of unused imports in soc.views.models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
1936
diff
changeset
|
179 |
fields['link_id'] = 't%i' % (int(time.time()*100)) |
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
180 |
else: |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
181 |
fields['link_id'] = entity.link_id |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
182 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
183 |
# fill in the scope via call to super |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
184 |
super(View, self)._editPost(request, entity, fields) |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
185 |
|
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
186 |
# editing a project so set the program, student and mentor field |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
187 |
if entity: |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
188 |
organization = entity.scope |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
189 |
else: |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
190 |
organization = fields['scope'] |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
191 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
192 |
fields['program'] = organization.scope |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
193 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
194 |
filter = {'scope': fields['program'], |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
195 |
'link_id': fields['student_id']} |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
196 |
fields['student'] = student_logic.logic.getForFields(filter, unique=True) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
197 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
198 |
filter = {'scope': organization, |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
199 |
'link_id': fields['mentor_id'], |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
200 |
'status': 'active'} |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
201 |
fields['mentor'] = mentor_logic.logic.getForFields(filter, unique=True) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
202 |
|
2280
157f6b8de010
Show all Co-Mentors on the Student Project public page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2279
diff
changeset
|
203 |
def _public(self, request, entity, context): |
157f6b8de010
Show all Co-Mentors on the Student Project public page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2279
diff
changeset
|
204 |
"""Adds the names of all additional mentors to the context. |
157f6b8de010
Show all Co-Mentors on the Student Project public page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2279
diff
changeset
|
205 |
|
157f6b8de010
Show all Co-Mentors on the Student Project public page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2279
diff
changeset
|
206 |
For params see base.View._public() |
157f6b8de010
Show all Co-Mentors on the Student Project public page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2279
diff
changeset
|
207 |
""" |
157f6b8de010
Show all Co-Mentors on the Student Project public page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2279
diff
changeset
|
208 |
|
157f6b8de010
Show all Co-Mentors on the Student Project public page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2279
diff
changeset
|
209 |
additional_mentors = entity.additional_mentors |
157f6b8de010
Show all Co-Mentors on the Student Project public page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2279
diff
changeset
|
210 |
|
157f6b8de010
Show all Co-Mentors on the Student Project public page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2279
diff
changeset
|
211 |
if not additional_mentors: |
157f6b8de010
Show all Co-Mentors on the Student Project public page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2279
diff
changeset
|
212 |
context['additional_mentors'] = [] |
157f6b8de010
Show all Co-Mentors on the Student Project public page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2279
diff
changeset
|
213 |
else: |
157f6b8de010
Show all Co-Mentors on the Student Project public page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2279
diff
changeset
|
214 |
mentor_names = [] |
157f6b8de010
Show all Co-Mentors on the Student Project public page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2279
diff
changeset
|
215 |
|
157f6b8de010
Show all Co-Mentors on the Student Project public page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2279
diff
changeset
|
216 |
for mentor_key in additional_mentors: |
157f6b8de010
Show all Co-Mentors on the Student Project public page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2279
diff
changeset
|
217 |
additional_mentor = mentor_logic.logic.getFromKeyName( |
157f6b8de010
Show all Co-Mentors on the Student Project public page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2279
diff
changeset
|
218 |
mentor_key.id_or_name()) |
157f6b8de010
Show all Co-Mentors on the Student Project public page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2279
diff
changeset
|
219 |
mentor_names.append(additional_mentor.name()) |
157f6b8de010
Show all Co-Mentors on the Student Project public page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2279
diff
changeset
|
220 |
|
157f6b8de010
Show all Co-Mentors on the Student Project public page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2279
diff
changeset
|
221 |
context['additional_mentors'] = ', '.join(mentor_names) |
157f6b8de010
Show all Co-Mentors on the Student Project public page.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2279
diff
changeset
|
222 |
|
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
223 |
@decorators.merge_params |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
224 |
@decorators.check_access |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
225 |
def manage(self, request, access_type, |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
226 |
page_name=None, params=None, **kwargs): |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
227 |
"""View that allows Organization Admins to manage their Student Projects. |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
228 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
229 |
For params see base.View().public() |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
230 |
""" |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
231 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
232 |
try: |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
233 |
entity = self._logic.getFromKeyFieldsOr404(kwargs) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
234 |
except out_of_band.Error, error: |
2117
f1a1a75cdb00
Add missing imports, remove unsused imports, fix too long lines and some other style fixes in soc.views.models.student_project module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2115
diff
changeset
|
235 |
return responses.errorResponse( |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
236 |
error, request, template=params['error_public']) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
237 |
|
2278
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
238 |
get_dict = request.GET |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
239 |
|
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
240 |
if 'remove' in get_dict: |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
241 |
# get the mentor to remove |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
242 |
fields = {'link_id': get_dict['remove'], |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
243 |
'scope': entity.scope} |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
244 |
mentor = mentor_logic.logic.getForFields(fields, unique=True) |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
245 |
|
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
246 |
additional_mentors = entity.additional_mentors |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
247 |
if additional_mentors and mentor.key() in additional_mentors: |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
248 |
# remove the mentor from the additional mentors list |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
249 |
additional_mentors.remove(mentor.key()) |
2281
a702d92a57a6
Style fixes in app.soc.views.models.student_project module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2280
diff
changeset
|
250 |
fields = {'additional_mentors': additional_mentors} |
2278
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
251 |
project_logic.updateEntityProperties(entity, fields) |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
252 |
|
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
253 |
# redirect to the same page without GET arguments |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
254 |
redirect = request.path |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
255 |
return http.HttpResponseRedirect(redirect) |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
256 |
|
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
257 |
template = params['manage_template'] |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
258 |
|
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
259 |
# get the context for this webpage |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
260 |
context = responses.getUniversalContext(request) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
261 |
responses.useJavaScript(context, params['js_uses_all']) |
2117
f1a1a75cdb00
Add missing imports, remove unsused imports, fix too long lines and some other style fixes in soc.views.models.student_project module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2115
diff
changeset
|
262 |
context['page_name'] = "%s '%s' from %s" % (page_name, entity.title, |
f1a1a75cdb00
Add missing imports, remove unsused imports, fix too long lines and some other style fixes in soc.views.models.student_project module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2115
diff
changeset
|
263 |
entity.student.name()) |
2278
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
264 |
context['entity'] = entity |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
265 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
266 |
# get all mentors for this organization |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
267 |
fields = {'scope': entity.scope, |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
268 |
'status': 'active'} |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
269 |
mentors = mentor_logic.logic.getForFields(fields) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
270 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
271 |
choices = [(mentor.link_id,'%s (%s)' %(mentor.name(), mentor.link_id)) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
272 |
for mentor in mentors] |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
273 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
274 |
# create the form that org admins will use to reassign a mentor |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
275 |
dynafields = [ |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
276 |
{'name': 'mentor_id', |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
277 |
'base': forms.ChoiceField, |
2278
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
278 |
'label': 'Primary Mentor', |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
279 |
'required': True, |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
280 |
'passthrough': ['required', 'choices', 'label'], |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
281 |
'choices': choices, |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
282 |
},] |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
283 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
284 |
dynaproperties = params_helper.getDynaFields(dynafields) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
285 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
286 |
mentor_edit_form = dynaform.newDynaForm( |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
287 |
dynabase = params['dynabase'], |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
288 |
dynaproperties = dynaproperties, |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
289 |
) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
290 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
291 |
params['mentor_edit_form'] = mentor_edit_form |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
292 |
|
2278
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
293 |
additional_mentors = entity.additional_mentors |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
294 |
|
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
295 |
# we want to show the names of the additional mentors in the context |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
296 |
# therefore they need to be resolved to entities first |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
297 |
additional_mentors_context = [] |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
298 |
|
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
299 |
for mentor_key in additional_mentors: |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
300 |
mentor_entity = mentor_logic.logic.getFromKeyName( |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
301 |
mentor_key.id_or_name()) |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
302 |
additional_mentors_context.append(mentor_entity) |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
303 |
|
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
304 |
context['additional_mentors'] = additional_mentors_context |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
305 |
|
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
306 |
# all mentors who are not already an additional mentor or |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
307 |
# the primary mentor are allowed to become an additional mentor |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
308 |
possible_additional_mentors = [m for m in mentors if |
2281
a702d92a57a6
Style fixes in app.soc.views.models.student_project module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2280
diff
changeset
|
309 |
(m.key() not in additional_mentors) |
a702d92a57a6
Style fixes in app.soc.views.models.student_project module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2280
diff
changeset
|
310 |
and (m.key() != entity.mentor.key())] |
2278
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
311 |
|
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
312 |
# create the information to be shown on the additional mentor form |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
313 |
additional_mentor_choices = [ |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
314 |
(mentor.link_id,'%s (%s)' %(mentor.name(), mentor.link_id)) |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
315 |
for mentor in possible_additional_mentors] |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
316 |
|
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
317 |
dynafields = [ |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
318 |
{'name': 'mentor_id', |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
319 |
'base': forms.ChoiceField, |
2279
e31414fd3b2a
Changed Additional Mentors to Co-Mentors in the manage view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2278
diff
changeset
|
320 |
'label': 'Co-Mentor', |
2278
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
321 |
'required': True, |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
322 |
'passthrough': ['required', 'choices', 'label'], |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
323 |
'choices': additional_mentor_choices, |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
324 |
},] |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
325 |
|
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
326 |
dynaproperties = params_helper.getDynaFields(dynafields) |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
327 |
|
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
328 |
additional_mentor_form = dynaform.newDynaForm( |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
329 |
dynabase = params['dynabase'], |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
330 |
dynaproperties = dynaproperties, |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
331 |
) |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
332 |
|
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
333 |
params['additional_mentor_form'] = additional_mentor_form |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
334 |
|
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
335 |
if request.POST: |
2278
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
336 |
return self.managePost(request, template, context, params, entity, |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
337 |
**kwargs) |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
338 |
else: #request.GET |
2278
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
339 |
return self.manageGet(request, template, context, params, entity, |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
340 |
**kwargs) |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
341 |
|
2278
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
342 |
def manageGet(self, request, template, context, params, entity, **kwargs): |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
343 |
"""Handles the GET request for the project's manage page. |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
344 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
345 |
Args: |
2278
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
346 |
template: the template used for this view |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
347 |
entity: the student project entity |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
348 |
rest: see base.View.public() |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
349 |
""" |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
350 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
351 |
# populate form with the current mentor |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
352 |
initial = {'mentor_id': entity.mentor.link_id} |
2278
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
353 |
context['mentor_edit_form'] = params['mentor_edit_form'](initial=initial) |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
354 |
|
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
355 |
context['additional_mentor_form'] = params['additional_mentor_form']() |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
356 |
|
2278
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
357 |
return responses.respond(request, template, context) |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
358 |
|
2278
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
359 |
def managePost(self, request, template, context, params, entity, **kwargs): |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
360 |
"""Handles the POST request for the project's manage page. |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
361 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
362 |
Args: |
2278
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
363 |
template: the template used for this view |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
364 |
entity: the student project entity |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
365 |
rest: see base.View.public() |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
366 |
""" |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
367 |
|
2278
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
368 |
post_dict = request.POST |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
369 |
|
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
370 |
if 'set_mentor' in post_dict: |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
371 |
form = params['mentor_edit_form'](post_dict) |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
372 |
return self._manageSetMentor(request, template, context, params, entity, |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
373 |
form) |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
374 |
elif 'add_additional_mentor' in post_dict: |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
375 |
form = params['additional_mentor_form'](post_dict) |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
376 |
return self._manageAddAdditionalMentor(request, template, context, |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
377 |
params, entity, form) |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
378 |
else: |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
379 |
# unexpected error return the normal page |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
380 |
logging.warning('Unexpected POST data found') |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
381 |
return self.manageGet(request, template, context, params, entity) |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
382 |
|
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
383 |
def _manageSetMentor(self, request, template, context, params, entity, form): |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
384 |
"""Handles the POST request for changing a Projects's mentor. |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
385 |
|
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
386 |
Args: |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
387 |
template: the template used for this view |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
388 |
entity: the student project entity |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
389 |
form: instance of the form used to set the mentor |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
390 |
rest: see base.View.public() |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
391 |
""" |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
392 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
393 |
if not form.is_valid(): |
2278
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
394 |
context['mentor_edit_form'] = form |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
395 |
|
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
396 |
# add an a fresh additional mentors form |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
397 |
context['additional_mentor_form'] = params['additional_mentor_form']() |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
398 |
|
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
399 |
return responses.respond(request, template, context) |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
400 |
|
2117
f1a1a75cdb00
Add missing imports, remove unsused imports, fix too long lines and some other style fixes in soc.views.models.student_project module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2115
diff
changeset
|
401 |
_, fields = forms_helper.collectCleanedFields(form) |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
402 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
403 |
# get the mentor from the form |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
404 |
fields = {'link_id': fields['mentor_id'], |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
405 |
'scope': entity.scope, |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
406 |
'status': 'active'} |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
407 |
mentor = mentor_logic.logic.getForFields(fields, unique=True) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
408 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
409 |
# update the project with the assigned mentor |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
410 |
fields = {'mentor': mentor} |
2278
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
411 |
|
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
412 |
additional_mentors = entity.additional_mentors |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
413 |
|
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
414 |
if additional_mentors and mentor.key() in additional_mentors: |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
415 |
# remove the mentor that is now becoming the primary mentor |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
416 |
additional_mentors.remove(mentor.key()) |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
417 |
fields['additional_mentors'] = additional_mentors |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
418 |
|
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
419 |
# update the project with the new mentor and possible |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
420 |
# new set of additional mentors |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
421 |
project_logic.updateEntityProperties(entity, fields) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
422 |
|
2278
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
423 |
# redirect to the same page |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
424 |
redirect = request.path |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
425 |
return http.HttpResponseRedirect(redirect) |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
426 |
|
2281
a702d92a57a6
Style fixes in app.soc.views.models.student_project module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2280
diff
changeset
|
427 |
def _manageAddAdditionalMentor(self, request, template, |
a702d92a57a6
Style fixes in app.soc.views.models.student_project module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2280
diff
changeset
|
428 |
context, params, entity, form): |
2278
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
429 |
"""Handles the POST request for changing a Projects's additional mentors. |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
430 |
|
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
431 |
Args: |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
432 |
template: the template used for this view |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
433 |
entity: the student project entity |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
434 |
form: instance of the form used to add an additional mentor |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
435 |
rest: see base.View.public() |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
436 |
""" |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
437 |
|
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
438 |
if not form.is_valid(): |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
439 |
context['additional_mentor_form'] = form |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
440 |
|
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
441 |
# add a fresh edit mentor form |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
442 |
initial = {'mentor_id': entity.mentor.link_id} |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
443 |
context['mentor_edit_form'] = params['mentor_edit_form'](initial=initial) |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
444 |
|
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
445 |
return responses.respond(request, template, context) |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
446 |
|
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
447 |
_, fields = forms_helper.collectCleanedFields(form) |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
448 |
|
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
449 |
# get the mentor from the form |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
450 |
fields = {'link_id': fields['mentor_id'], |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
451 |
'scope': entity.scope, |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
452 |
'status': 'active'} |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
453 |
mentor = mentor_logic.logic.getForFields(fields, unique=True) |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
454 |
|
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
455 |
# add this mentor to the additional mentors |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
456 |
if not entity.additional_mentors: |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
457 |
additional_mentors = [mentor.key()] |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
458 |
else: |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
459 |
additional_mentors = additional_mentors.append(mentor.key()) |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
460 |
|
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
461 |
fields = {'additional_mentors': additional_mentors} |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
462 |
project_logic.updateEntityProperties(entity, fields) |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
463 |
|
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
464 |
# redirect to the same page |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
465 |
redirect = request.path |
c4d40ab98f71
Added functionality to set additional mentors for a Student Project.
Lennard de Rijk
parents:
2241
diff
changeset
|
466 |
return http.HttpResponseRedirect(redirect) |
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
467 |
|
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
468 |
@decorators.merge_params |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
469 |
@decorators.check_access |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
470 |
def manageOverview(self, request, access_type, |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
471 |
page_name=None, params=None, **kwargs): |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
472 |
"""View that allows Organization Admins to see an overview of |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
473 |
their Organization's Student Projects. |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
474 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
475 |
For params see base.View().public() |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
476 |
""" |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
477 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
478 |
# make sure the organization exists |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
479 |
org_entity = org_logic.getFromKeyNameOr404(kwargs['scope_path']) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
480 |
fields = {'scope': org_entity} |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
481 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
482 |
# get the context for this webpage |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
483 |
context = responses.getUniversalContext(request) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
484 |
responses.useJavaScript(context, params['js_uses_all']) |
2117
f1a1a75cdb00
Add missing imports, remove unsused imports, fix too long lines and some other style fixes in soc.views.models.student_project module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2115
diff
changeset
|
485 |
context['page_name'] = '%s %s' % (page_name, org_entity.name) |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
486 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
487 |
list_params = params.copy() |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
488 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
489 |
#list all active projects |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
490 |
fields['status'] = ['accepted', 'mid_term_passed'] |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
491 |
active_params = list_params.copy() |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
492 |
active_params['list_description'] = \ |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
493 |
'List of all active %(name_plural)s' % list_params |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
494 |
active_params['list_action'] = (redirects.getManageRedirect, list_params) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
495 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
496 |
active_list = lists.getListContent( |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
497 |
request, active_params, fields, idx=0) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
498 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
499 |
# list all failed projects |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
500 |
fields['status'] = ['mid_term_failed', 'final_failed'] |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
501 |
failed_params = list_params.copy() |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
502 |
failed_params['list_description'] = ('List of all failed %(name_plural)s, ' |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
503 |
'these cannot be managed.') % list_params |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
504 |
failed_params['list_action'] = (redirects.getPublicRedirect, list_params) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
505 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
506 |
failed_list = lists.getListContent( |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
507 |
request, failed_params, fields, idx=1, need_content=True) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
508 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
509 |
#list all completed projects |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
510 |
fields['status'] = ['passed'] |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
511 |
completed_params = list_params.copy() |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
512 |
completed_params['list_description'] = ('List of %(name_plural)s that have ' |
2117
f1a1a75cdb00
Add missing imports, remove unsused imports, fix too long lines and some other style fixes in soc.views.models.student_project module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2115
diff
changeset
|
513 |
'successfully completed the program, ' |
f1a1a75cdb00
Add missing imports, remove unsused imports, fix too long lines and some other style fixes in soc.views.models.student_project module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2115
diff
changeset
|
514 |
'these cannot be managed.' % list_params) |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
515 |
completed_params['list_action'] = (redirects.getPublicRedirect, list_params) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
516 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
517 |
completed_list = lists.getListContent( |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
518 |
request, completed_params, fields, idx=2, need_content=True) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
519 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
520 |
# always show the list with active projects |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
521 |
content = [active_list] |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
522 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
523 |
if failed_list != None: |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
524 |
# do not show empty failed list |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
525 |
content.append(failed_list) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
526 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
527 |
if completed_list != None: |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
528 |
# do not show empty completed list |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
529 |
content.append(completed_list) |
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
530 |
|
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
531 |
# call the _list method from base to display the list |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
532 |
return self._list(request, list_params, content, |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
533 |
context['page_name'], context) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
534 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
535 |
@decorators.merge_params |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
536 |
@decorators.check_access |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
537 |
def stEdit(self, request, access_type, |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
538 |
page_name=None, params=None, **kwargs): |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
539 |
"""View that allows students to edit information about their project. |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
540 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
541 |
For params see base.View().public() |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
542 |
""" |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
543 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
544 |
try: |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
545 |
entity = self._logic.getFromKeyFieldsOr404(kwargs) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
546 |
except out_of_band.Error, error: |
2117
f1a1a75cdb00
Add missing imports, remove unsused imports, fix too long lines and some other style fixes in soc.views.models.student_project module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2115
diff
changeset
|
547 |
return responses.errorResponse( |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
548 |
error, request, template=params['error_public']) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
549 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
550 |
# get the context for this webpage |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
551 |
context = responses.getUniversalContext(request) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
552 |
responses.useJavaScript(context, params['js_uses_all']) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
553 |
context['page_name'] = page_name |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
554 |
# cancel should go to the public view |
2330
068540d91bde
Now clicking cancel button returns user to previous page. Fixes issue 569.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2281
diff
changeset
|
555 |
params['cancel_redirect'] = redirects.getPublicRedirect(entity, params) |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
556 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
557 |
if request.POST: |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
558 |
return self.stEditPost(request, context, params, entity, **kwargs) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
559 |
else: #request.GET |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
560 |
return self.stEditGet(request, context, params, entity, **kwargs) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
561 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
562 |
def stEditGet(self, request, context, params, entity, **kwargs): |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
563 |
"""Handles the GET request for the student's edit page. |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
564 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
565 |
Args: |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
566 |
entity: the student project entity |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
567 |
rest: see base.View.public() |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
568 |
""" |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
569 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
570 |
# populate form with the existing entity |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
571 |
form = params['student_edit_form'](instance=entity) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
572 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
573 |
return self._constructResponse(request, entity, context, form, params) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
574 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
575 |
def stEditPost(self, request, context, params, entity, **kwargs): |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
576 |
"""Handles the POST request for the student's edit page. |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
577 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
578 |
Args: |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
579 |
entity: the student project entity |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
580 |
rest: see base.View.public() |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
581 |
""" |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
582 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
583 |
form = params['student_edit_form'](request.POST) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
584 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
585 |
if not form.is_valid(): |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
586 |
return self._constructResponse(request, entity, context, form, params) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
587 |
|
2117
f1a1a75cdb00
Add missing imports, remove unsused imports, fix too long lines and some other style fixes in soc.views.models.student_project module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents:
2115
diff
changeset
|
588 |
_, fields = forms_helper.collectCleanedFields(form) |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
589 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
590 |
project_logic.updateEntityProperties(entity, fields) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
591 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
592 |
return self.stEditGet(request, context, params, entity, **kwargs) |
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
593 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
594 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
595 |
view = View() |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
596 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
597 |
admin = decorators.view(view.admin) |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
598 |
create = decorators.view(view.create) |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
599 |
delete = decorators.view(view.delete) |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
600 |
edit = decorators.view(view.edit) |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
601 |
list = decorators.view(view.list) |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
602 |
manage = decorators.view(view.manage) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
603 |
manage_overview = decorators.view(view.manageOverview) |
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
604 |
public = decorators.view(view.public) |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
605 |
st_edit = decorators.view(view.stEdit) |
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
606 |
export = decorators.view(view.export) |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
607 |
pick = decorators.view(view.pick) |