app/soc/views/models/group_app.py
author Mario Ferraro <fadinlight@gmail.com>
Sun, 15 Nov 2009 22:12:20 +0100
changeset 3093 d1be59b6b627
parent 2656 25210120d67b
permissions -rw-r--r--
GMaps related JS changed to use new google namespace. Google is going to change permanently in the future the way to load its services, so better stay safe. Also this commit shows uses of the new melange.js module. Fixes Issue 634.
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