app/soc/views/models/group_app.py
author Sverre Rabbelier <srabbelier@gmail.com>
Mon, 30 Mar 2009 22:38:08 +0000
changeset 2036 d23379c80b48
parent 1991 3aeda3007467
child 2076 1cd180cc56c9
permissions -rw-r--r--
Use ugettext and shorter variable names for inellegible list We use the abbreviated variable names in other list views as well to make it doable to work with them (with the meaning of the abbreviation explained with a comment after the definition). Bring the inellegible list up to date with this. Patch by: Sverre Rabbelier
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
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
    26
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
    27
from django.utils.translation import ugettext
791
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    28
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
    29
from soc.logic import cleaning
791
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    30
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
    31
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
    32
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
    33
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
    34
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
    35
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
    36
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
    37
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
    38
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
    39
from soc.views.helper import widgets
791
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    40
from soc.views.models import base
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    41
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    42
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
    43
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
    44
    '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
    45
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
    46
791
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    47
class View(base.View):
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    48
  """View methods for the Group App model.
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    49
  """
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
  def __init__(self, params=None):
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    52
    """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
    53
    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
    54
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    55
    Params:
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    56
      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
    57
    """
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
    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
    60
    new_params['logic'] = group_app_logic
791
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    61
799
30a912906a57 Construct names automatically from base name.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 791
diff changeset
    62
    new_params['name'] = "Group Application"
791
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    63
    new_params['name_short'] = "Group App"
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    64
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
    65
    # 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
    66
    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
    67
    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
    68
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
    69
    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
    70
        '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
    71
        'List my %(name_plural)s'),
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
    72
        (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
    73
        '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
    74
        '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
    75
        (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
    76
          '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
    77
          'Review %(name_short)s')]
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
    78
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
    79
    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
    80
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
    81
    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
    82
        '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
    83
1456
27e4b7ff2246 Specify example_text for backup admin link id
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1430
diff changeset
    84
    new_params['create_dynafields'] = [
27e4b7ff2246 Specify example_text for backup admin link id
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1430
diff changeset
    85
        {'name': 'backup_admin_link_id',
27e4b7ff2246 Specify example_text for backup admin link id
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1430
diff changeset
    86
         'base': widgets.ReferenceField,
27e4b7ff2246 Specify example_text for backup admin link id
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1430
diff changeset
    87
         'passthrough': ['reference_url', 'required', 'label'],
27e4b7ff2246 Specify example_text for backup admin link id
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1430
diff changeset
    88
         'reference_url': 'user',
27e4b7ff2246 Specify example_text for backup admin link id
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1430
diff changeset
    89
         'required': False,
27e4b7ff2246 Specify example_text for backup admin link id
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1430
diff changeset
    90
         '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
    91
         '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
    92
         },
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
1430
ff8cc6b15e6a Rename dynafields to dynaproperties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1365
diff changeset
    95
    new_params['create_extra_dynaproperties'] = {
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
    96
        '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
    97
            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
    98
        }
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
    99
1430
ff8cc6b15e6a Rename dynafields to dynaproperties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1365
diff changeset
   100
    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
   101
        '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
   102
        }
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   103
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   104
    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
   105
30da180c4bca Added the club_app view, logic and model
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   106
    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
   107
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   108
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   109
  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
   110
    """See base.View._editGet().
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   111
    """
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   112
1290
b2919e3ffdae Brown Paper Bag Fix: L2R Appspot error logs.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1289
diff changeset
   113
    if entity.backup_admin:
1289
86a4e0e75ea6 Fixed a bug in group_app view.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1255
diff changeset
   114
      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
   115
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   116
    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
   117
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   118
  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
   119
    """See base.View._editPost().
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   120
    """
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   121
1202
8060f33a164f Added removal of an existing group application when someone else is applying.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1196
diff changeset
   122
    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
   123
      # 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
   124
      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
   125
8060f33a164f Added removal of an existing group application when someone else is applying.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1196
diff changeset
   126
    #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
   127
    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
   128
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   129
    # 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
   130
    # 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
   131
    fields['status'] = 'needs review'
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   132
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   133
    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
   134
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   135
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   136
  @decorators.merge_params
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   137
  @decorators.check_access
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   138
  def list(self, request, access_type,
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   139
           page_name=None, params=None, filter={}, **kwargs):
1504
f9d0bf275917 Add the ability to put GroupApplications into the pre-rejected state.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1456
diff changeset
   140
    """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
   141
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   142
    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
   143
    """
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   144
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   145
    # 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
   146
    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
   147
                 ('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
   148
                 ('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
   149
                 ('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
   150
                 ('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
   151
                 ('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
   152
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   153
    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
   154
        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
   155
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   156
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   157
  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
   158
                                  selection=[], **kwargs):
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   159
    """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
   160
    
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   161
    Args:
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   162
      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
   163
      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
   164
        application and the redirect action.
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   165
      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
   166
    
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   167
    Returns:
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   168
      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
   169
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   170
    """
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   171
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   172
    contents = []
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   173
    list_params = params.copy()
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   174
    index = 0
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   175
1851
8ff0858f5b03 Pre-accepted or pre-rejected orgs should stay under 'needs review'
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1836
diff changeset
   176
    for status, action in selection:
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   177
      # 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
   178
      filter['status'] = status
8ff0858f5b03 Pre-accepted or pre-rejected orgs should stay under 'needs review'
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1836
diff changeset
   179
8ff0858f5b03 Pre-accepted or pre-rejected orgs should stay under 'needs review'
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1836
diff changeset
   180
      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
   181
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   182
      list_params['list_description'] = (
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   183
          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
   184
          {'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
   185
      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
   186
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   187
      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
   188
          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
   189
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   190
      contents += [list_content]
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
      index += 1
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   193
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   194
    # 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
   195
    if kwargs.get('context'):
1296
64918d0c97ea Implemented the 2nd part of bulk acceptance.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1290
diff changeset
   196
      context = kwargs['context']
64918d0c97ea Implemented the 2nd part of bulk acceptance.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1290
diff changeset
   197
    else:
64918d0c97ea Implemented the 2nd part of bulk acceptance.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1290
diff changeset
   198
      context = {}
64918d0c97ea Implemented the 2nd part of bulk acceptance.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1290
diff changeset
   199
64918d0c97ea Implemented the 2nd part of bulk acceptance.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1290
diff changeset
   200
    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
   201
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   202
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   203
  @decorators.merge_params
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   204
  @decorators.check_access
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   205
  def listSelf(self, request, access_type,
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   206
             page_name=None, params=None, **kwargs):
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   207
    """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
   208
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   209
    For params see base.View.public().
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   210
    """
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   211
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
   212
    user_entity = user_logic.getForCurrentAccount()
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   213
    filter = {'applicant' : user_entity}
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   214
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   215
    if kwargs['scope_path']:
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   216
      filter['scope_path'] = kwargs['scope_path']
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   217
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   218
    # 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
   219
    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
   220
                  (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
   221
                 ('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
   222
                    {'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
   223
                 ('rejected', (redirects.getPublicRedirect, params))]
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   224
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   225
    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
   226
        filter=filter, selection=selection, **kwargs)
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   227
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   228
  @decorators.merge_params
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   229
  @decorators.check_access
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   230
  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
   231
             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
   232
    """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
   233
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   234
    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
   235
    the application accordingly.
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   236
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   237
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   238
    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
   239
    """
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   240
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   241
    try:
1218
569a3fe9cb88 Cleaned up getKeyNameFromFields in Logic base.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1217
diff changeset
   242
      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
   243
    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
   244
      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
   245
          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
   246
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   247
    get_dict = request.GET
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   248
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   249
    # 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
   250
    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
   251
      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
   252
1504
f9d0bf275917 Add the ability to put GroupApplications into the pre-rejected state.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1456
diff changeset
   253
      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
   254
          'pre-rejected']:
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   255
        # 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
   256
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
   257
        # 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
   258
        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
   259
          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
   260
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
   261
          self._logic.updateEntityProperties(entity, fields)
1296
64918d0c97ea Implemented the 2nd part of bulk acceptance.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1290
diff changeset
   262
          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
   263
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
          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
   265
            # 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
   266
            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
   267
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   268
        # redirect to the review overview
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   269
        fields = {'url_name': params['url_name']}
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   270
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   271
        scope_path = entity.scope_path
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   272
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   273
        if not scope_path:
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   274
          scope_path = ''
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
        # add scope_path to the dictionary
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   277
        fields['scope_path'] = scope_path
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   278
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   279
        return http.HttpResponseRedirect(
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   280
            '/%(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
   281
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   282
    # 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
   283
    # 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
   284
    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
   285
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   286
    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
   287
        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
   288
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   289
1296
64918d0c97ea Implemented the 2nd part of bulk acceptance.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1290
diff changeset
   290
  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
   291
    """Does any required post review processing.
64918d0c97ea Implemented the 2nd part of bulk acceptance.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1290
diff changeset
   292
64918d0c97ea Implemented the 2nd part of bulk acceptance.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1290
diff changeset
   293
    Args:
64918d0c97ea Implemented the 2nd part of bulk acceptance.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1290
diff changeset
   294
      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
   295
      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
   296
      app_entity: The update application entity
64918d0c97ea Implemented the 2nd part of bulk acceptance.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1290
diff changeset
   297
      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
   298
64918d0c97ea Implemented the 2nd part of bulk acceptance.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1290
diff changeset
   299
    """
64918d0c97ea Implemented the 2nd part of bulk acceptance.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1290
diff changeset
   300
    pass
64918d0c97ea Implemented the 2nd part of bulk acceptance.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1290
diff changeset
   301
64918d0c97ea Implemented the 2nd part of bulk acceptance.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1290
diff changeset
   302
1138
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   303
  @decorators.merge_params
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   304
  @decorators.check_access
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   305
  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
   306
             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
   307
    """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
   308
    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
   309
    """
18ef39338211 Refactored review and reviewoverview out of club_app.py
Lennard de Rijk <ljvderijk@gmail.com>
parents: 858
diff changeset
   310
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
   311
    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
   312
                 ('pre-accepted', (redirects.getReviewRedirect, params)),
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   313
                 ('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
   314
                 ('pre-rejected', (redirects.getReviewRedirect, params)),
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   315
                 ('rejected', (redirects.getReviewRedirect, params)),
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   316
                 ('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
   317
1246
756fd7195213 Fixing r1855 that was bugged by Tortoise ^_^.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1244
diff changeset
   318
    filter = {}
756fd7195213 Fixing r1855 that was bugged by Tortoise ^_^.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1244
diff changeset
   319
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   320
    if kwargs['scope_path']:
1246
756fd7195213 Fixing r1855 that was bugged by Tortoise ^_^.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1244
diff changeset
   321
      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
   322
1255
9fe8c6c54933 Redone the listing in group_app.py.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1253
diff changeset
   323
    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
   324
        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
   325