app/soc/views/models/group_app.py
author Lennard de Rijk <ljvderijk@gmail.com>
Thu, 30 Jul 2009 09:29:36 +0200
changeset 2686 ada26cef0b06
parent 2656 25210120d67b
permissions -rw-r--r--
Added new table templates for showing Suryves on the Project manage page. Note that a system for showing SurveyRecords still needs to be committed.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
791
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     1
#!/usr/bin/python2.5
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     2
#
1307
091a21cf3627 Update the copyright notice for 2009.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1296
diff changeset
     3
# Copyright 2009 the Melange authors.
791
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     4
#
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     5
# Licensed under the Apache License, Version 2.0 (the "License");
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     6
# you may not use this file except in compliance with the License.
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     7
# You may obtain a copy of the License at
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     8
#
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     9
#   http://www.apache.org/licenses/LICENSE-2.0
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    10
#
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    11
# Unless required by applicable law or agreed to in writing, software
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    12
# distributed under the License is distributed on an "AS IS" BASIS,
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    13
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    14
# See the License for the specific language governing permissions and
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    15
# limitations under the License.
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    16
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    17
"""Views for Group App.
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    18
"""
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    19
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    20
__authors__ = [
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    21
    '"Sverre Rabbelier" <sverre@rabbelier.nl>',
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
    22
    '"Lennard de Rijk" <ljvderijk@gmail.com>',
791
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    23
  ]
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    24
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    25
2656
25210120d67b Added validation to email fields where needed.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2235
diff changeset
    26
from django import forms
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
    27
from django import http
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
    28
from django.utils.translation import ugettext
791
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    29
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
    30
from soc.logic import cleaning
791
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    31
from soc.logic import dicts
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
    32
from soc.logic.helper import notifications
1644
64ccd9628f15 Style fixes plus remove unused imports in soc.views.models.group_app module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1565
diff changeset
    33
from soc.logic.models.group_app import logic as group_app_logic
64ccd9628f15 Style fixes plus remove unused imports in soc.views.models.group_app module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1565
diff changeset
    34
from soc.logic.models.user import logic as user_logic
1139
7a6f94ffcc87 Changed the url regexpr for review and added 2 missing imports.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1138
diff changeset
    35
from soc.views import out_of_band
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
    36
from soc.views.helper import decorators
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
    37
from soc.views.helper import lists as list_helper
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
    38
from soc.views.helper import redirects
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
    39
from soc.views.helper import responses
1229
ec3768cbf369 Refactored the picker so that it is more generic
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1225
diff changeset
    40
from soc.views.helper import widgets
791
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    41
from soc.views.models import base
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    42
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    43
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
    44
DEF_APPLICATION_LIST_DESCRIPTION_FMT = ugettext(
1565
d36ad73a2060 Grammar fix in group_app list view.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1504
diff changeset
    45
    'Overview of %(name_plural)s whose status is "%(status)s"')
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
    46
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
    47
791
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    48
class View(base.View):
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    49
  """View methods for the Group App model.
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    50
  """
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    51
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    52
  def __init__(self, params=None):
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    53
    """Defines the fields and methods required for the base View class
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    54
    to provide the user with list, public, create, edit and delete views.
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    55
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    56
    Params:
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    57
      params: a dict with params for this View
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    58
    """
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    59
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    60
    new_params = {}
1644
64ccd9628f15 Style fixes plus remove unused imports in soc.views.models.group_app module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1565
diff changeset
    61
    new_params['logic'] = group_app_logic
791
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    62
799
30a912906a57 Construct names automatically from base name.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 791
diff changeset
    63
    new_params['name'] = "Group Application"
791
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    64
    new_params['name_short'] = "Group App"
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    65
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
    66
    # use the twoline templates for these questionnaires
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
    67
    new_params['create_template'] = 'soc/models/twoline_edit.html'
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
    68
    new_params['edit_template'] = 'soc/models/twoline_edit.html'
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
    69
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
    70
    patterns = [(r'^%(url_name)s/(?P<access_type>list_self)/%(scope)s$',
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
    71
        'soc.views.models.%(module_name)s.list_self',
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
    72
        'List my %(name_plural)s'),
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
    73
        (r'^%(url_name)s/(?P<access_type>review_overview)/%(scope)s$',
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
    74
        'soc.views.models.%(module_name)s.review_overview',
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
    75
        'List of %(name_plural)s for reviewing'),
1139
7a6f94ffcc87 Changed the url regexpr for review and added 2 missing imports.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1138
diff changeset
    76
        (r'^%(url_name)s/(?P<access_type>review)/%(key_fields)s$',
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
    77
          'soc.views.models.%(module_name)s.review',
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
    78
          'Review %(name_short)s')]
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
    79
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
    80
    new_params['extra_django_patterns'] = patterns
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
    81
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
    82
    new_params['extra_dynaexclude'] = ['applicant', 'backup_admin', 'status',
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
    83
        'created_on', 'last_modified_on']
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
    84
1456
27e4b7ff2246 Specify example_text for backup admin link id
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1430
diff changeset
    85
    new_params['create_dynafields'] = [
27e4b7ff2246 Specify example_text for backup admin link id
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1430
diff changeset
    86
        {'name': 'backup_admin_link_id',
27e4b7ff2246 Specify example_text for backup admin link id
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1430
diff changeset
    87
         'base': widgets.ReferenceField,
27e4b7ff2246 Specify example_text for backup admin link id
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1430
diff changeset
    88
         'passthrough': ['reference_url', 'required', 'label'],
27e4b7ff2246 Specify example_text for backup admin link id
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1430
diff changeset
    89
         'reference_url': 'user',
27e4b7ff2246 Specify example_text for backup admin link id
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1430
diff changeset
    90
         'required': False,
27e4b7ff2246 Specify example_text for backup admin link id
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1430
diff changeset
    91
         'label': params['logic'].getModel().backup_admin.verbose_name,
27e4b7ff2246 Specify example_text for backup admin link id
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1430
diff changeset
    92
         'example_text': ugettext('The link_id of the backup admin'),
27e4b7ff2246 Specify example_text for backup admin link id
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1430
diff changeset
    93
         },
27e4b7ff2246 Specify example_text for backup admin link id
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1430
diff changeset
    94
         ]
27e4b7ff2246 Specify example_text for backup admin link id
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1430
diff changeset
    95
1430
ff8cc6b15e6a Rename dynafields to dynaproperties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1365
diff changeset
    96
    new_params['create_extra_dynaproperties'] = {
2656
25210120d67b Added validation to email fields where needed.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 2235
diff changeset
    97
        'email': forms.fields.EmailField(required=True),
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
    98
        'clean_backup_admin_link_id': 
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
    99
            cleaning.clean_users_not_same('backup_admin_link_id'),
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   100
        }
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   101
1430
ff8cc6b15e6a Rename dynafields to dynaproperties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1365
diff changeset
   102
    new_params['edit_extra_dynaproperties'] = {
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   103
        'clean_link_id' : cleaning.clean_link_id('link_id'),
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   104
        }
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   105
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   106
    params = dicts.merge(params, new_params, sub_merge=True)
791
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   107
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   108
    super(View, self).__init__(params=params)
858
e79e7a22326f Add an export() view, and implement it as text/text for Document.
Todd Larsen <tlarsen@google.com>
parents: 799
diff changeset
   109
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   110
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   111
  def _editGet(self, request, entity, form):
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   112
    """See base.View._editGet().
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   113
    """
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   114
1290
b2919e3ffdae Brown Paper Bag Fix: L2R Appspot error logs.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1289
diff changeset
   115
    if entity.backup_admin:
1289
86a4e0e75ea6 Fixed a bug in group_app view.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1255
diff changeset
   116
      form.fields['backup_admin_link_id'].initial = entity.backup_admin.link_id
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   117
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   118
    super(View, self)._editGet(request, entity, form)
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   119
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   120
  def _editPost(self, request, entity, fields):
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   121
    """See base.View._editPost().
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   122
    """
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   123
1202
8060f33a164f Added removal of an existing group application when someone else is applying.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1196
diff changeset
   124
    if not entity:
8060f33a164f Added removal of an existing group application when someone else is applying.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1196
diff changeset
   125
      # set the applicant field to the current user
1644
64ccd9628f15 Style fixes plus remove unused imports in soc.views.models.group_app module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1565
diff changeset
   126
      fields['applicant'] = user_logic.getForCurrentAccount()
1202
8060f33a164f Added removal of an existing group application when someone else is applying.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1196
diff changeset
   127
8060f33a164f Added removal of an existing group application when someone else is applying.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1196
diff changeset
   128
    #set the backup_admin field with the cleaned link_id
8060f33a164f Added removal of an existing group application when someone else is applying.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1196
diff changeset
   129
    fields['backup_admin'] = fields['backup_admin_link_id']
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   130
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   131
    # the application has either been created or edited so
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   132
    # the status needs to be set accordingly
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   133
    fields['status'] = 'needs review'
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   134
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   135
    super(View, self)._editPost(request, entity, fields)
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   136
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   137
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   138
  @decorators.merge_params
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   139
  @decorators.check_access
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   140
  def list(self, request, access_type,
2076
1cd180cc56c9 Style fixes and removal of unused imports in soc.views.models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1991
diff changeset
   141
           page_name=None, params=None, filter=None, order=None, **kwargs):
1504
f9d0bf275917 Add the ability to put GroupApplications into the pre-rejected state.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1456
diff changeset
   142
    """Lists all notifications in separate tables, depending on their status.
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   143
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   144
    for parameters see base.list()
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   145
    """
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   146
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   147
    # create the selection list
1644
64ccd9628f15 Style fixes plus remove unused imports in soc.views.models.group_app module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1565
diff changeset
   148
    selection = [('needs review', (redirects.getEditRedirect, params)), 
64ccd9628f15 Style fixes plus remove unused imports in soc.views.models.group_app module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1565
diff changeset
   149
                 ('pre-accepted', (redirects.getEditRedirect, params)),
64ccd9628f15 Style fixes plus remove unused imports in soc.views.models.group_app module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1565
diff changeset
   150
                 ('accepted', (redirects.getEditRedirect, params)),
64ccd9628f15 Style fixes plus remove unused imports in soc.views.models.group_app module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1565
diff changeset
   151
                 ('pre-rejected', (redirects.getEditRedirect, params)),
64ccd9628f15 Style fixes plus remove unused imports in soc.views.models.group_app module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1565
diff changeset
   152
                 ('rejected', (redirects.getEditRedirect, params)),
64ccd9628f15 Style fixes plus remove unused imports in soc.views.models.group_app module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1565
diff changeset
   153
                 ('ignored', (redirects.getEditRedirect, params)),]
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   154
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   155
    return self._applicationListConstructor(request, params, page_name, 
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   156
        filter=filter, selection=selection, **kwargs)
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   157
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   158
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   159
  def _applicationListConstructor(self, request, params, page_name, filter={}, 
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   160
                                  selection=[], **kwargs):
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   161
    """Constructs the list containing applications for the given the arguments.
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   162
    
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   163
    Args:
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   164
      filter: This is the filter used for all application
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   165
      selection: This is a list containing tuples stating the status for an
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   166
        application and the redirect action.
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   167
      See base.View.public() for the rest.
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   168
    
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   169
    Returns:
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   170
      HTTP Response containing the list view.
1232
3bce6205e24e Added pre-accpeted status to group_app.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1229
diff changeset
   171
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   172
    """
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   173
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   174
    contents = []
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   175
    list_params = params.copy()
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   176
    index = 0
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   177
2235
d97e75574590 Major brown paper bag fix
Sverre Rabbelier <srabbelier@gmail.com>
parents: 2084
diff changeset
   178
    if not filter:
d97e75574590 Major brown paper bag fix
Sverre Rabbelier <srabbelier@gmail.com>
parents: 2084
diff changeset
   179
      filter = {}
2084
93c8a683dc12 Fixed a missing variable declaration
Sverre Rabbelier <srabbelier@gmail.com>
parents: 2076
diff changeset
   180
1851
8ff0858f5b03 Pre-accepted or pre-rejected orgs should stay under 'needs review'
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1836
diff changeset
   181
    for status, action in selection:
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   182
      # only select the requests that have been pre-accpeted
1851
8ff0858f5b03 Pre-accepted or pre-rejected orgs should stay under 'needs review'
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1836
diff changeset
   183
      filter['status'] = status
8ff0858f5b03 Pre-accepted or pre-rejected orgs should stay under 'needs review'
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1836
diff changeset
   184
8ff0858f5b03 Pre-accepted or pre-rejected orgs should stay under 'needs review'
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1836
diff changeset
   185
      name = status[0] if isinstance(status, list) else status
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   186
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   187
      list_params['list_description'] = (
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   188
          DEF_APPLICATION_LIST_DESCRIPTION_FMT % (
1851
8ff0858f5b03 Pre-accepted or pre-rejected orgs should stay under 'needs review'
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1836
diff changeset
   189
          {'name_plural': params['name_plural'], 'status': name}))
8ff0858f5b03 Pre-accepted or pre-rejected orgs should stay under 'needs review'
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1836
diff changeset
   190
      list_params['list_action'] = action
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   191
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   192
      list_content = list_helper.getListContent(
1667
95bc81b4cd5c Updated list to use the new order in getForFields.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1644
diff changeset
   193
          request, list_params, filter, idx=index)
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   194
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   195
      contents += [list_content]
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   196
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   197
      index += 1
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   198
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   199
    # call the _list method from base to display the list
1312
9b253b8e4d40 Fix a bug in group_app
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1307
diff changeset
   200
    if kwargs.get('context'):
1296
64918d0c97ea Implemented the 2nd part of bulk acceptance.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1290
diff changeset
   201
      context = kwargs['context']
64918d0c97ea Implemented the 2nd part of bulk acceptance.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1290
diff changeset
   202
    else:
64918d0c97ea Implemented the 2nd part of bulk acceptance.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1290
diff changeset
   203
      context = {}
64918d0c97ea Implemented the 2nd part of bulk acceptance.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1290
diff changeset
   204
64918d0c97ea Implemented the 2nd part of bulk acceptance.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1290
diff changeset
   205
    return self._list(request, params, contents, page_name, context=context)
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   206
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   207
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   208
  @decorators.merge_params
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   209
  @decorators.check_access
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   210
  def listSelf(self, request, access_type,
2076
1cd180cc56c9 Style fixes and removal of unused imports in soc.views.models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1991
diff changeset
   211
               page_name=None, params=None, **kwargs):
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   212
    """List all applications from the current logged-in user.
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   213
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   214
    For params see base.View.public().
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   215
    """
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   216
1644
64ccd9628f15 Style fixes plus remove unused imports in soc.views.models.group_app module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1565
diff changeset
   217
    user_entity = user_logic.getForCurrentAccount()
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   218
    filter = {'applicant' : user_entity}
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   219
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   220
    if kwargs['scope_path']:
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   221
      filter['scope_path'] = kwargs['scope_path']
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   222
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   223
    # create the selection list
1851
8ff0858f5b03 Pre-accepted or pre-rejected orgs should stay under 'needs review'
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1836
diff changeset
   224
    selection = [(['needs review', 'pre-accepted', 'pre-rejected'],
8ff0858f5b03 Pre-accepted or pre-rejected orgs should stay under 'needs review'
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1836
diff changeset
   225
                  (redirects.getEditRedirect, params)),
1644
64ccd9628f15 Style fixes plus remove unused imports in soc.views.models.group_app module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1565
diff changeset
   226
                 ('accepted', (redirects.getApplicantRedirect, 
64ccd9628f15 Style fixes plus remove unused imports in soc.views.models.group_app module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1565
diff changeset
   227
                    {'url_name': params['group_url_name']})),
1836
1ca77835020a The rejected applications subsection now links to the public page for the list_self view.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1667
diff changeset
   228
                 ('rejected', (redirects.getPublicRedirect, params))]
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   229
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   230
    return self._applicationListConstructor(request, params, page_name,
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   231
        filter=filter, selection=selection, **kwargs)
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   232
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   233
  @decorators.merge_params
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   234
  @decorators.check_access
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   235
  def review(self, request, access_type,
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   236
             page_name=None, params=None, **kwargs):
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   237
    """Handles the view containing the review of an application.
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   238
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   239
    accepted (true or false) in the GET data will mark
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   240
    the application accordingly.
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   241
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   242
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   243
    For params see base.View.public().
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   244
    """
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   245
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   246
    try:
1218
569a3fe9cb88 Cleaned up getKeyNameFromFields in Logic base.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1217
diff changeset
   247
      entity = self._logic.getFromKeyFieldsOr404(kwargs)
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   248
    except out_of_band.Error, error:
1644
64ccd9628f15 Style fixes plus remove unused imports in soc.views.models.group_app module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1565
diff changeset
   249
      return responses.errorResponse(
1365
c31e06f66029 Fix a bug in group_app.py (not defined context was used).
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1357
diff changeset
   250
          error, request, template=params['error_public'])
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   251
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   252
    get_dict = request.GET
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   253
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   254
    # check to see if we can make a decision for this application
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   255
    if 'status' in get_dict.keys():
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   256
      status_value = get_dict['status']
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   257
1504
f9d0bf275917 Add the ability to put GroupApplications into the pre-rejected state.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1456
diff changeset
   258
      if status_value in ['accepted', 'rejected', 'ignored', 'pre-accepted',
f9d0bf275917 Add the ability to put GroupApplications into the pre-rejected state.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1456
diff changeset
   259
          'pre-rejected']:
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   260
        # this application has been properly reviewed update the status
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   261
1196
11dbdf12d7c2 Only do the update routine when the status changes for group_app's and role requests.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1139
diff changeset
   262
        # only update if the status changes
11dbdf12d7c2 Only do the update routine when the status changes for group_app's and role requests.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1139
diff changeset
   263
        if entity.status != status_value:
11dbdf12d7c2 Only do the update routine when the status changes for group_app's and role requests.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1139
diff changeset
   264
          fields = {'status' : status_value}
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   265
1196
11dbdf12d7c2 Only do the update routine when the status changes for group_app's and role requests.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1139
diff changeset
   266
          self._logic.updateEntityProperties(entity, fields)
1296
64918d0c97ea Implemented the 2nd part of bulk acceptance.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1290
diff changeset
   267
          self._review(request, params, entity, status_value, **kwargs)
1196
11dbdf12d7c2 Only do the update routine when the status changes for group_app's and role requests.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1139
diff changeset
   268
11dbdf12d7c2 Only do the update routine when the status changes for group_app's and role requests.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1139
diff changeset
   269
          if status_value == 'accepted':
11dbdf12d7c2 Only do the update routine when the status changes for group_app's and role requests.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1139
diff changeset
   270
            # the application has been accepted send out a notification
11dbdf12d7c2 Only do the update routine when the status changes for group_app's and role requests.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1139
diff changeset
   271
            notifications.sendNewGroupNotification(entity, params)
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   272
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   273
        # redirect to the review overview
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   274
        fields = {'url_name': params['url_name']}
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   275
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   276
        scope_path = entity.scope_path
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   277
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   278
        if not scope_path:
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   279
          scope_path = ''
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   280
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   281
        # add scope_path to the dictionary
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   282
        fields['scope_path'] = scope_path
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   283
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   284
        return http.HttpResponseRedirect(
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   285
            '/%(url_name)s/review_overview/%(scope_path)s' %fields)
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   286
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   287
    # the application has not been reviewed so show the information
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   288
    # using the appropriate review template
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   289
    params['public_template'] = params['review_template']
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   290
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   291
    return super(View, self).public(request, access_type,
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   292
        page_name=page_name, params=params, **kwargs)
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   293
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   294
1296
64918d0c97ea Implemented the 2nd part of bulk acceptance.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1290
diff changeset
   295
  def _review(self, request, params, app_entity, status, **kwargs):
64918d0c97ea Implemented the 2nd part of bulk acceptance.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1290
diff changeset
   296
    """Does any required post review processing.
64918d0c97ea Implemented the 2nd part of bulk acceptance.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1290
diff changeset
   297
64918d0c97ea Implemented the 2nd part of bulk acceptance.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1290
diff changeset
   298
    Args:
64918d0c97ea Implemented the 2nd part of bulk acceptance.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1290
diff changeset
   299
      request: the standard Django HTTP request object
64918d0c97ea Implemented the 2nd part of bulk acceptance.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1290
diff changeset
   300
      params: a dict with params for this View
64918d0c97ea Implemented the 2nd part of bulk acceptance.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1290
diff changeset
   301
      app_entity: The update application entity
64918d0c97ea Implemented the 2nd part of bulk acceptance.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1290
diff changeset
   302
      status: The status that was given to the reviewed app_entity
64918d0c97ea Implemented the 2nd part of bulk acceptance.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1290
diff changeset
   303
64918d0c97ea Implemented the 2nd part of bulk acceptance.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1290
diff changeset
   304
    """
64918d0c97ea Implemented the 2nd part of bulk acceptance.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1290
diff changeset
   305
    pass
64918d0c97ea Implemented the 2nd part of bulk acceptance.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1290
diff changeset
   306
64918d0c97ea Implemented the 2nd part of bulk acceptance.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1290
diff changeset
   307
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   308
  @decorators.merge_params
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   309
  @decorators.check_access
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   310
  def reviewOverview(self, request, access_type,
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   311
             page_name=None, params=None, **kwargs):
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   312
    """Displays multiple lists of applications that are in a different
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   313
    status of the application process.
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   314
    """
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   315
1644
64ccd9628f15 Style fixes plus remove unused imports in soc.views.models.group_app module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1565
diff changeset
   316
    selection = [('needs review', (redirects.getReviewRedirect, params)),
1504
f9d0bf275917 Add the ability to put GroupApplications into the pre-rejected state.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1456
diff changeset
   317
                 ('pre-accepted', (redirects.getReviewRedirect, params)),
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   318
                 ('accepted', (redirects.getReviewRedirect, params)),
1504
f9d0bf275917 Add the ability to put GroupApplications into the pre-rejected state.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1456
diff changeset
   319
                 ('pre-rejected', (redirects.getReviewRedirect, params)),
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   320
                 ('rejected', (redirects.getReviewRedirect, params)),
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   321
                 ('ignored', (redirects.getReviewRedirect, params)),]
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   322
1246
756fd7195213 Fixing r1855 that was bugged by Tortoise ^_^.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1244
diff changeset
   323
    filter = {}
756fd7195213 Fixing r1855 that was bugged by Tortoise ^_^.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1244
diff changeset
   324
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   325
    if kwargs['scope_path']:
1246
756fd7195213 Fixing r1855 that was bugged by Tortoise ^_^.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1244
diff changeset
   326
      filter['scope_path'] = kwargs['scope_path']
1232
3bce6205e24e Added pre-accpeted status to group_app.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1229
diff changeset
   327
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   328
    return self._applicationListConstructor(request, params, page_name,
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   329
        filter=filter, selection=selection, **kwargs)
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   330