author | Sverre Rabbelier <srabbelier@gmail.com> |
Wed, 15 Apr 2009 23:21:40 +0000 | |
changeset 2189 | 8c9ab031a6b3 |
parent 2183 | 4e036dcc79ba |
child 2241 | 5e5b7f5d9a89 |
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 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
25 |
import time |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
26 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
27 |
from django import forms |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
28 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
29 |
from soc.logic import cleaning |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
30 |
from soc.logic import dicts |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
31 |
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
|
32 |
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
|
33 |
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
|
34 |
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
|
35 |
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
|
36 |
from soc.views import out_of_band |
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
37 |
from soc.views.helper import access |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
38 |
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
|
39 |
from soc.views.helper import dynaform |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
40 |
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
|
41 |
from soc.views.helper import lists |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
42 |
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
|
43 |
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
|
44 |
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
|
45 |
from soc.views.helper import widgets |
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
46 |
from soc.views.models import base |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
47 |
from soc.views.models import organization as org_view |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
48 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
49 |
import soc.logic.models.student_project |
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 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
52 |
class View(base.View): |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
53 |
"""View methods for the Student Project model. |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
54 |
""" |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
55 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
56 |
def __init__(self, params=None): |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
57 |
"""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
|
58 |
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
|
59 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
60 |
Params: |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
61 |
params: a dict with params for this View |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
62 |
""" |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
63 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
64 |
rights = access.Checker(params) |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
65 |
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
|
66 |
rights['edit'] = ['checkIsDeveloper'] |
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
67 |
rights['delete'] = ['checkIsDeveloper'] |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
68 |
rights['show'] = ['allow'] |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
69 |
rights['list'] = ['checkIsDeveloper'] |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
70 |
rights['manage'] = [('checkHasActiveRoleForScope', |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
71 |
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
|
72 |
('checkStudentProjectHasStatus', [['accepted', 'mid_term_passed']])] |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
73 |
rights['manage_overview'] = [('checkHasActiveRoleForScope', |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
74 |
org_admin_logic)] |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
75 |
# TODO lack of better name here! |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
76 |
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
|
77 |
('checkStudentProjectHasStatus', |
3c3f0cd9873d
Brown paper bag fix for Student Project Manage and Edit access check.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2146
diff
changeset
|
78 |
[['accepted', 'mid_term_passed', 'passed']]) |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
79 |
] |
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
80 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
81 |
new_params = {} |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
82 |
new_params['logic'] = soc.logic.models.student_project.logic |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
83 |
new_params['rights'] = rights |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
84 |
new_params['name'] = "Student Project" |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
85 |
new_params['url_name'] = "student_project" |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
86 |
new_params['sidebar_grouping'] = 'Students' |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
87 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
88 |
new_params['scope_view'] = org_view |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
89 |
new_params['scope_redirect'] = redirects.getCreateRedirect |
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['no_create_with_key_fields'] = True |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
92 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
93 |
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
|
94 |
'mentor', 'additional_mentors', |
4e036dcc79ba
Added additional_mentors property to StudentProject.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2177
diff
changeset
|
95 |
'student'] |
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
96 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
97 |
new_params['create_extra_dynaproperties'] = { |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
98 |
'scope_path': forms.CharField(widget=forms.HiddenInput, |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
99 |
required=True), |
2125
c24e8423cd1a
Added public info as TinyMCE to the edit pages.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2122
diff
changeset
|
100 |
'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
|
101 |
widget=widgets.FullTinyMCE(attrs={'rows': 25, 'cols': 100})), |
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
102 |
'student_id': forms.CharField(label='Student Link ID', |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
103 |
required=True), |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
104 |
'mentor_id': forms.CharField(label='Mentor Link ID', |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
105 |
required=True), |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
106 |
'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
|
107 |
'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
|
108 |
'clean_student': cleaning.clean_link_id('student'), |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
109 |
'clean_mentor': cleaning.clean_link_id('mentor'), |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
110 |
'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
|
111 |
'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
|
112 |
'clean': cleaning.validate_student_project('scope_path', |
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
113 |
'mentor_id', 'student_id') |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
114 |
} |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
115 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
116 |
new_params['edit_extra_dynaproperties'] = { |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
117 |
'link_id': forms.CharField(widget=forms.HiddenInput), |
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 |
|
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
120 |
patterns = [ |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
121 |
(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
|
122 |
'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
|
123 |
'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
|
124 |
(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
|
125 |
'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
|
126 |
'Manage %(name)s'), |
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>st_edit)/%(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.st_edit', |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
129 |
'Edit my %(name)s'), |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
130 |
] |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
131 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
132 |
new_params['extra_django_patterns'] = patterns |
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 |
new_params['edit_template'] = 'soc/student_project/edit.html' |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
135 |
|
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
136 |
params = dicts.merge(params, new_params) |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
137 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
138 |
super(View, self).__init__(params=params) |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
139 |
|
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
140 |
# 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
|
141 |
dynaproperties = { |
2125
c24e8423cd1a
Added public info as TinyMCE to the edit pages.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2122
diff
changeset
|
142 |
'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
|
143 |
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
|
144 |
'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
|
145 |
'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
|
146 |
'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
|
147 |
'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
|
148 |
} |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
149 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
150 |
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
|
151 |
dynabase = self._params['dynabase'], |
e2c193e1f631
Do not rely on dicts.merge to change target
Sverre Rabbelier <srabbelier@gmail.com>
parents:
2154
diff
changeset
|
152 |
dynamodel = self._params['logic'].getModel(), |
e2c193e1f631
Do not rely on dicts.merge to change target
Sverre Rabbelier <srabbelier@gmail.com>
parents:
2154
diff
changeset
|
153 |
dynaexclude = self._params['create_dynaexclude'], |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
154 |
dynaproperties = dynaproperties, |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
155 |
) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
156 |
|
2177
e2c193e1f631
Do not rely on dicts.merge to change target
Sverre Rabbelier <srabbelier@gmail.com>
parents:
2154
diff
changeset
|
157 |
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
|
158 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
159 |
|
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
160 |
def _editGet(self, request, entity, form): |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
161 |
"""See base.View._editGet(). |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
162 |
""" |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
163 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
164 |
form.fields['link_id'].initial = entity.link_id |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
165 |
form.fields['student_id'].initial = entity.student.link_id |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
166 |
form.fields['mentor_id'].initial = entity.mentor.link_id |
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 |
return super(View, self)._editGet(request, entity, form) |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
169 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
170 |
def _editPost(self, request, entity, fields): |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
171 |
"""See base.View._editPost(). |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
172 |
""" |
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 |
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
|
175 |
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
|
176 |
else: |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
177 |
fields['link_id'] = entity.link_id |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
178 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
179 |
# fill in the scope via call to super |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
180 |
super(View, self)._editPost(request, entity, fields) |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
181 |
|
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
182 |
# 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
|
183 |
if entity: |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
184 |
organization = entity.scope |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
185 |
else: |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
186 |
organization = fields['scope'] |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
187 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
188 |
fields['program'] = organization.scope |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
189 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
190 |
filter = {'scope': fields['program'], |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
191 |
'link_id': fields['student_id']} |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
192 |
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
|
193 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
194 |
filter = {'scope': organization, |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
195 |
'link_id': fields['mentor_id'], |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
196 |
'status': 'active'} |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
197 |
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
|
198 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
199 |
@decorators.merge_params |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
200 |
@decorators.check_access |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
201 |
def manage(self, request, access_type, |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
202 |
page_name=None, params=None, **kwargs): |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
203 |
"""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
|
204 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
205 |
For params see base.View().public() |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
206 |
""" |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
207 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
208 |
try: |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
209 |
entity = self._logic.getFromKeyFieldsOr404(kwargs) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
210 |
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
|
211 |
return responses.errorResponse( |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
212 |
error, request, template=params['error_public']) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
213 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
214 |
# get the context for this webpage |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
215 |
context = responses.getUniversalContext(request) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
216 |
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
|
217 |
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
|
218 |
entity.student.name()) |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
219 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
220 |
# use another template and make the cancel button goes to the public view |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
221 |
params['edit_template'] = 'soc/student_project/manage.html' |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
222 |
params['edit_cancel_redirect'] = redirects.getManageOverviewRedirect( |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
223 |
entity.scope, params) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
224 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
225 |
# get all mentors for this organization |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
226 |
fields = {'scope': entity.scope, |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
227 |
'status': 'active'} |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
228 |
mentors = mentor_logic.logic.getForFields(fields) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
229 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
230 |
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
|
231 |
for mentor in mentors] |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
232 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
233 |
# 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
|
234 |
dynafields = [ |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
235 |
{'name': 'mentor_id', |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
236 |
'base': forms.ChoiceField, |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
237 |
'label': 'Mentor', |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
238 |
'required': True, |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
239 |
'passthrough': ['required', 'choices', 'label'], |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
240 |
'choices': choices, |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
241 |
},] |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
242 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
243 |
dynaproperties = params_helper.getDynaFields(dynafields) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
244 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
245 |
mentor_edit_form = dynaform.newDynaForm( |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
246 |
dynabase = params['dynabase'], |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
247 |
dynaproperties = dynaproperties, |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
248 |
) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
249 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
250 |
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
|
251 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
252 |
if request.POST: |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
253 |
return self.managePost(request, context, params, entity, **kwargs) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
254 |
else: #request.GET |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
255 |
return self.manageGet(request, context, params, entity, **kwargs) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
256 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
257 |
def manageGet(self, request, context, params, entity, **kwargs): |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
258 |
"""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
|
259 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
260 |
Args: |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
261 |
entity: the student project entity |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
262 |
rest: see base.View.public() |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
263 |
""" |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
264 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
265 |
# populate form with the current mentor |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
266 |
initial = {'mentor_id': entity.mentor.link_id} |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
267 |
form = params['mentor_edit_form'](initial=initial) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
268 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
269 |
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
|
270 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
271 |
def managePost(self, request, context, params, entity, **kwargs): |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
272 |
"""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
|
273 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
274 |
Args: |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
275 |
entity: the student project entity |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
276 |
rest: see base.View.public() |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
277 |
""" |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
278 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
279 |
form = params['mentor_edit_form'](request.POST) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
280 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
281 |
if not form.is_valid(): |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
282 |
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
|
283 |
|
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
|
284 |
_, fields = forms_helper.collectCleanedFields(form) |
2115
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 |
# get the mentor from the form |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
287 |
fields = {'link_id': fields['mentor_id'], |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
288 |
'scope': entity.scope, |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
289 |
'status': 'active'} |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
290 |
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
|
291 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
292 |
# 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
|
293 |
fields = {'mentor': mentor} |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
294 |
project_logic.updateEntityProperties(entity, fields) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
295 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
296 |
return self.manageGet(request, context, params, entity) |
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
297 |
|
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
298 |
@decorators.merge_params |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
299 |
@decorators.check_access |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
300 |
def manageOverview(self, request, access_type, |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
301 |
page_name=None, params=None, **kwargs): |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
302 |
"""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
|
303 |
their Organization's Student Projects. |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
304 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
305 |
For params see base.View().public() |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
306 |
""" |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
307 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
308 |
# make sure the organization exists |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
309 |
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
|
310 |
fields = {'scope': org_entity} |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
311 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
312 |
# get the context for this webpage |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
313 |
context = responses.getUniversalContext(request) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
314 |
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
|
315 |
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
|
316 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
317 |
list_params = params.copy() |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
318 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
319 |
#list all active projects |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
320 |
fields['status'] = ['accepted', 'mid_term_passed'] |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
321 |
active_params = list_params.copy() |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
322 |
active_params['list_description'] = \ |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
323 |
'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
|
324 |
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
|
325 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
326 |
active_list = lists.getListContent( |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
327 |
request, active_params, fields, idx=0) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
328 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
329 |
# list all failed projects |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
330 |
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
|
331 |
failed_params = list_params.copy() |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
332 |
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
|
333 |
'these cannot be managed.') % list_params |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
334 |
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
|
335 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
336 |
failed_list = lists.getListContent( |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
337 |
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
|
338 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
339 |
#list all completed projects |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
340 |
fields['status'] = ['passed'] |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
341 |
completed_params = list_params.copy() |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
342 |
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
|
343 |
'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
|
344 |
'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
|
345 |
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
|
346 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
347 |
completed_list = lists.getListContent( |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
348 |
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
|
349 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
350 |
# 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
|
351 |
content = [active_list] |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
352 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
353 |
if failed_list != None: |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
354 |
# do not show empty failed list |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
355 |
content.append(failed_list) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
356 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
357 |
if completed_list != None: |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
358 |
# do not show empty completed list |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
359 |
content.append(completed_list) |
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
360 |
|
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
361 |
# 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
|
362 |
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
|
363 |
context['page_name'], context) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
364 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
365 |
@decorators.merge_params |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
366 |
@decorators.check_access |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
367 |
def stEdit(self, request, access_type, |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
368 |
page_name=None, params=None, **kwargs): |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
369 |
"""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
|
370 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
371 |
For params see base.View().public() |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
372 |
""" |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
373 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
374 |
try: |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
375 |
entity = self._logic.getFromKeyFieldsOr404(kwargs) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
376 |
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
|
377 |
return responses.errorResponse( |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
378 |
error, request, template=params['error_public']) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
379 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
380 |
# get the context for this webpage |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
381 |
context = responses.getUniversalContext(request) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
382 |
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
|
383 |
context['page_name'] = page_name |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
384 |
# cancel should go to the public view |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
385 |
params['edit_cancel_redirect'] = redirects.getPublicRedirect(entity, params) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
386 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
387 |
if request.POST: |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
388 |
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
|
389 |
else: #request.GET |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
390 |
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
|
391 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
392 |
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
|
393 |
"""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
|
394 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
395 |
Args: |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
396 |
entity: the student project entity |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
397 |
rest: see base.View.public() |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
398 |
""" |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
399 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
400 |
# populate form with the existing entity |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
401 |
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
|
402 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
403 |
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
|
404 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
405 |
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
|
406 |
"""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
|
407 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
408 |
Args: |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
409 |
entity: the student project entity |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
410 |
rest: see base.View.public() |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
411 |
""" |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
412 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
413 |
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
|
414 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
415 |
if not form.is_valid(): |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
416 |
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
|
417 |
|
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
|
418 |
_, fields = forms_helper.collectCleanedFields(form) |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
419 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
420 |
project_logic.updateEntityProperties(entity, fields) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
421 |
|
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
422 |
return self.stEditGet(request, context, params, entity, **kwargs) |
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
423 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
424 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
425 |
view = View() |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
426 |
|
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
427 |
admin = decorators.view(view.admin) |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
428 |
create = decorators.view(view.create) |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
429 |
delete = decorators.view(view.delete) |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
430 |
edit = decorators.view(view.edit) |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
431 |
list = decorators.view(view.list) |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
432 |
manage = decorators.view(view.manage) |
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
433 |
manage_overview = decorators.view(view.manageOverview) |
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
434 |
public = decorators.view(view.public) |
2115
fafd021def7e
Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
2076
diff
changeset
|
435 |
st_edit = decorators.view(view.stEdit) |
1936
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
436 |
export = decorators.view(view.export) |
ea886e0aedc4
Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff
changeset
|
437 |
pick = decorators.view(view.pick) |