app/soc/views/models/student_project.py
author Lennard de Rijk <ljvderijk@gmail.com>
Tue, 07 Apr 2009 21:40:23 +0000
changeset 2121 4f6344dfab28
parent 2117 f1a1a75cdb00
child 2122 b709f9d1566a
permissions -rw-r--r--
Added list of projects to the organization home page. Only projects that have not failed will be shown here. The list will link to each project public page which will contain the necessary info about the project. Addresses part of Issue 491. Patch by: Madhusudan C.S Reviewed by: Lennard de Rijk
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
1936
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    45
from soc.views.models import base
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    46
from soc.views.models import organization as org_view
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    47
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    48
import soc.logic.models.student_project
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    49
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
class View(base.View):
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    52
  """View methods for the Student Project model.
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
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    55
  def __init__(self, params=None):
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    56
    """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
    57
    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
    58
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    59
    Params:
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    60
      params: a dict with params for this View
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
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    63
    rights = access.Checker(params)
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    64
    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
    65
    rights['edit'] = ['checkIsDeveloper']
1936
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    66
    rights['delete'] = ['checkIsDeveloper']
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    67
    rights['show'] = ['allow']
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    68
    rights['list'] = ['checkIsDeveloper']
2115
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
    69
    rights['manage'] = [('checkHasActiveRoleForScope',
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
    70
                         org_admin_logic),
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
    71
        ('checkStudentProjectHasStatus', ['accepted', 'mid_term_passed'])]
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
    72
    rights['manage_overview'] = [('checkHasActiveRoleForScope',
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
    73
                         org_admin_logic)]
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
    74
    # TODO lack of better name here!
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
    75
    rights['st_edit'] = ['checkIsMyStudentProject',
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
    76
        ('checkStudentProjectHasStatus', 
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
    77
            ['accepted', 'mid_term_passed', 'passed'])
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
    78
        ]
1936
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    79
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    80
    new_params = {}
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    81
    new_params['logic'] = soc.logic.models.student_project.logic
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    82
    new_params['rights'] = rights
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    83
    new_params['name'] = "Student Project"
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    84
    new_params['url_name'] = "student_project"
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    85
    new_params['sidebar_grouping'] = 'Students'
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    86
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    87
    new_params['scope_view'] = org_view
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    88
    new_params['scope_redirect'] = redirects.getCreateRedirect
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    89
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    90
    new_params['no_create_with_key_fields'] = True
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    91
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    92
    new_params['extra_dynaexclude'] = ['program', 'status', 'link_id',
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    93
                                       'mentor', 'student']
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    94
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    95
    new_params['create_extra_dynaproperties'] = {
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    96
        'scope_path': forms.CharField(widget=forms.HiddenInput,
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    97
            required=True),
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    98
        'student_id': forms.CharField(label='Student Link ID',
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
    99
            required=True),
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   100
        'mentor_id': forms.CharField(label='Mentor Link ID',
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   101
            required=True),
2115
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   102
        'clean_abstract': cleaning.clean_content_length('abstract'),
1936
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   103
        'clean_student': cleaning.clean_link_id('student'),
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   104
        'clean_mentor': cleaning.clean_link_id('mentor'),
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   105
        'clean_additional_info': cleaning.clean_url('additional_info'),
2115
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   106
        'clean': cleaning.validate_student_project('scope_path',
1936
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   107
            'mentor_id', 'student_id')
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   108
        }
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   109
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   110
    new_params['edit_extra_dynaproperties'] = {
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   111
        'link_id': forms.CharField(widget=forms.HiddenInput),
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   112
        }
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   113
2115
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   114
    patterns = [
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   115
        (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
   116
        '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
   117
        '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
   118
        (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
   119
        '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
   120
        'Manage %(name)s'),
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>st_edit)/%(key_fields)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.st_edit',
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   123
        'Edit my %(name)s'),
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   124
    ]
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   125
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   126
    new_params['extra_django_patterns'] = patterns
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   127
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   128
    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
   129
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   130
    # TODO(ljvderijk) list all projects for one student
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   131
    # TODO(ljvderijk) add manage item to org menu for admins
1936
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   132
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   133
    params = dicts.merge(params, new_params)
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   134
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   135
    super(View, self).__init__(params=params)
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   136
2115
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   137
    # 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
   138
    dynaproperties = {
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   139
        'clean_abstract': cleaning.clean_content_length('abstract'),
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   140
        'clean_additional_info': cleaning.clean_url('additional_info'),
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   141
        }
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   142
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   143
    student_edit_form = dynaform.newDynaForm(
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   144
        dynabase = params['dynabase'],
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   145
        dynamodel = params['logic'].getModel(),
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   146
        dynaexclude = params['create_dynaexclude'],
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   147
        dynaproperties = dynaproperties,
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
    params['student_edit_form'] = student_edit_form
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   151
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   152
1936
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   153
  def _editGet(self, request, entity, form):
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   154
    """See base.View._editGet().
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   155
    """
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   156
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   157
    form.fields['link_id'].initial = entity.link_id
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   158
    form.fields['student_id'].initial = entity.student.link_id
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   159
    form.fields['mentor_id'].initial = entity.mentor.link_id
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   160
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   161
    return super(View, self)._editGet(request, entity, form)
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
  def _editPost(self, request, entity, fields):
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   164
    """See base.View._editPost().
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   165
    """
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
    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
   168
      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
   169
    else:
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   170
      fields['link_id'] = entity.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
    # fill in the scope via call to super
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   173
    super(View, self)._editPost(request, entity, fields)
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   174
2115
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   175
    # 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
   176
    if entity:
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   177
      organization = entity.scope
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   178
    else:
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   179
      organization = fields['scope']
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   180
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   181
    fields['program'] = organization.scope
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   182
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   183
    filter = {'scope': fields['program'],
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   184
              'link_id': fields['student_id']}
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   185
    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
   186
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   187
    filter = {'scope': organization,
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   188
              'link_id': fields['mentor_id'],
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   189
              'status': 'active'}
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   190
    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
   191
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   192
  @decorators.merge_params
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   193
  @decorators.check_access
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   194
  def manage(self, request, access_type,
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   195
             page_name=None, params=None, **kwargs):
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   196
    """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
   197
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   198
    For params see base.View().public()
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   199
    """
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   200
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   201
    try:
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   202
      entity = self._logic.getFromKeyFieldsOr404(kwargs)
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   203
    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
   204
      return responses.errorResponse(
2115
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   205
          error, request, template=params['error_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
    # get the context for this webpage
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   208
    context = responses.getUniversalContext(request)
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   209
    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
   210
    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
   211
                                                entity.student.name())
2115
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   212
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   213
    # 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
   214
    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
   215
    params['edit_cancel_redirect'] = redirects.getManageOverviewRedirect(
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   216
        entity.scope, params)
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   217
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   218
    # get all mentors for this organization
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   219
    fields = {'scope': entity.scope,
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   220
              'status': 'active'}
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   221
    mentors = mentor_logic.logic.getForFields(fields)
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   222
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   223
    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
   224
                  for mentor in mentors]
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   225
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   226
    # 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
   227
    dynafields = [
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   228
        {'name': 'mentor_id',
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   229
         'base': forms.ChoiceField,
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   230
         'label': 'Mentor',
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   231
         'required': True,
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   232
         'passthrough': ['required', 'choices', 'label'],
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   233
         'choices': choices,
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   234
        },]
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   235
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   236
    dynaproperties = params_helper.getDynaFields(dynafields)
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   237
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   238
    mentor_edit_form = dynaform.newDynaForm(
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   239
        dynabase = params['dynabase'],
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   240
        dynaproperties = dynaproperties,
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
    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
   244
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   245
    if request.POST:
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   246
      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
   247
    else: #request.GET
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   248
      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
   249
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   250
  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
   251
    """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
   252
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   253
    Args:
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   254
        entity: the student project entity
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   255
        rest: see base.View.public()
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
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   258
    # populate form with the current mentor
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   259
    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
   260
    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
   261
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   262
    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
   263
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   264
  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
   265
    """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
   266
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   267
    Args:
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   268
        entity: the student project entity
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   269
        rest: see base.View.public()
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
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   272
    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
   273
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   274
    if not form.is_valid():
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   275
      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
   276
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
   277
    _, fields = forms_helper.collectCleanedFields(form)
2115
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
    # get the mentor from the form
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   280
    fields = {'link_id': fields['mentor_id'],
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   281
              'scope': entity.scope,
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   282
              'status': 'active'}
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   283
    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
   284
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   285
    # 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
   286
    fields = {'mentor': mentor}
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   287
    project_logic.updateEntityProperties(entity, fields)
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   288
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   289
    return self.manageGet(request, context, params, entity)
1936
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   290
2115
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   291
  @decorators.merge_params
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   292
  @decorators.check_access
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   293
  def manageOverview(self, request, access_type,
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   294
             page_name=None, params=None, **kwargs):
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   295
    """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
   296
       their Organization's Student Projects.
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   297
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   298
    For params see base.View().public()
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   299
    """
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   300
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   301
    # make sure the organization exists
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   302
    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
   303
    fields = {'scope': org_entity}
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
    # get the context for this webpage
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   306
    context = responses.getUniversalContext(request)
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   307
    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
   308
    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
   309
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   310
    list_params = params.copy()
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
    #list all active projects
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   313
    fields['status'] = ['accepted', 'mid_term_passed']
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   314
    active_params = list_params.copy()
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   315
    active_params['list_description'] = \
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   316
        '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
   317
    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
   318
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   319
    active_list = lists.getListContent(
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   320
        request, active_params, fields, idx=0)
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   321
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   322
    # list all failed projects
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   323
    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
   324
    failed_params = list_params.copy()
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   325
    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
   326
        'these cannot be managed.') % list_params
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   327
    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
   328
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   329
    failed_list = lists.getListContent(
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   330
        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
   331
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   332
    #list all completed projects
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   333
    fields['status'] = ['passed']
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   334
    completed_params = list_params.copy()
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   335
    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
   336
        '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
   337
        '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
   338
    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
   339
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   340
    completed_list = lists.getListContent(
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   341
        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
   342
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   343
    # 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
   344
    content = [active_list]
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   345
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   346
    if failed_list != None:
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   347
      # do not show empty failed list
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   348
      content.append(failed_list)
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
    if completed_list != None:
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   351
      # do not show empty completed list
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   352
      content.append(completed_list)
1936
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   353
2115
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   354
    # 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
   355
    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
   356
                      context['page_name'], context)
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   357
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   358
  @decorators.merge_params
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   359
  @decorators.check_access
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   360
  def stEdit(self, request, access_type,
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   361
             page_name=None, params=None, **kwargs):
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   362
    """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
   363
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   364
    For params see base.View().public()
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   365
    """
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
    try:
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   368
      entity = self._logic.getFromKeyFieldsOr404(kwargs)
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   369
    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
   370
      return responses.errorResponse(
2115
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   371
          error, request, template=params['error_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
    # get the context for this webpage
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   374
    context = responses.getUniversalContext(request)
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   375
    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
   376
    context['page_name'] = page_name
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   377
    # 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
   378
    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
   379
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   380
    if request.POST:
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   381
      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
   382
    else: #request.GET
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   383
      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
   384
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   385
  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
   386
    """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
   387
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   388
    Args:
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   389
        entity: the student project entity
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   390
        rest: see base.View.public()
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
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   393
    # populate form with the existing entity
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   394
    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
   395
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   396
    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
   397
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   398
  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
   399
    """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
   400
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   401
    Args:
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   402
        entity: the student project entity
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   403
        rest: see base.View.public()
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
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   406
    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
   407
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   408
    if not form.is_valid():
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   409
      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
   410
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
   411
    _, fields = forms_helper.collectCleanedFields(form)
2115
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
    project_logic.updateEntityProperties(entity, fields)
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
    return self.stEditGet(request, context, params, entity, **kwargs)
1936
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   416
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   417
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   418
view = View()
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   419
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   420
admin = decorators.view(view.admin)
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   421
create = decorators.view(view.create)
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   422
delete = decorators.view(view.delete)
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   423
edit = decorators.view(view.edit)
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   424
list = decorators.view(view.list)
2115
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   425
manage = decorators.view(view.manage)
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   426
manage_overview = decorators.view(view.manageOverview)
1936
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   427
public = decorators.view(view.public)
2115
fafd021def7e Major update to the views concerning StudentProjects.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2076
diff changeset
   428
st_edit = decorators.view(view.stEdit)
1936
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   429
export = decorators.view(view.export)
ea886e0aedc4 Added basic student project view.
Lennard de Rijk <ljvderijk@gmail.com>
parents:
diff changeset
   430
pick = decorators.view(view.pick)