app/soc/views/models/organization.py
author Pawel Solyga <Pawel.Solyga@gmail.com>
Fri, 03 Apr 2009 17:41:08 +0000
changeset 2076 1cd180cc56c9
parent 2037 3f355dca3679
child 2093 987913140e31
permissions -rw-r--r--
Style fixes and removal of unused imports in soc.views.models. Patch by: Pawel Solyga Reviewed by: to-be-reviewed
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
682
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     1
#!/usr/bin/python2.5
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     2
#
1308
35b75ffcbb37 Partially reverted "Update the copyright notice for 2009."
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1307
diff changeset
     3
# Copyright 2008 the Melange authors.
682
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     4
#
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     5
# Licensed under the Apache License, Version 2.0 (the "License");
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     6
# you may not use this file except in compliance with the License.
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     7
# You may obtain a copy of the License at
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     8
#
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     9
#   http://www.apache.org/licenses/LICENSE-2.0
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    10
#
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    11
# Unless required by applicable law or agreed to in writing, software
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    12
# distributed under the License is distributed on an "AS IS" BASIS,
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    13
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    14
# See the License for the specific language governing permissions and
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    15
# limitations under the License.
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    16
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    17
"""Views for Organizations.
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    18
"""
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    19
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    20
__authors__ = [
1599
b56976cac36b Add myself to authors on this file, and allow my whitespace cleanup hook to cleanup whitespace.
Augie Fackler <durin42@gmail.com>
parents: 1598
diff changeset
    21
    '"Augie Fackler" <durin42@gmail.com>',
682
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    22
    '"Sverre Rabbelier" <sverre@rabbelier.nl>',
1126
4fc86db70a76 Added organization view and templates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1079
diff changeset
    23
    '"Lennard de Rijk" <ljvderijk@gmail.com>',
682
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    24
  ]
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    25
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    26
1685
4b48cd4e4aa9 Added a rank column to the proposals list.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1683
diff changeset
    27
import itertools
4b48cd4e4aa9 Added a rank column to the proposals list.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1683
diff changeset
    28
682
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    29
from django import forms
1641
c2201decd4b4 Some style fixes, removal of unused imports and add ugettext where it was missing in soc.views.models.organization module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1605
diff changeset
    30
from django.utils.translation import ugettext
682
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    31
690
14e9f484412c Fix imports sorting in soc.views.models.organization.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 682
diff changeset
    32
from soc.logic import cleaning
682
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    33
from soc.logic import dicts
1344
d94410538f8e Redirect to the admin view in listPublic
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1343
diff changeset
    34
from soc.logic import accounts
1489
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
    35
from soc.logic.models import mentor as mentor_logic
1266
e8feadcbc47f Changed the access checks for organization.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1264
diff changeset
    36
from soc.logic.models import organization as org_logic
e8feadcbc47f Changed the access checks for organization.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1264
diff changeset
    37
from soc.logic.models import org_admin as org_admin_logic
1154
77276e2c46f7 Implement the last step in the org application process.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1126
diff changeset
    38
from soc.logic.models import org_app as org_app_logic
1526
5c31184594a5 Convert everything to use the new access methods
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1491
diff changeset
    39
from soc.logic.models import user as user_logic
1567
b5589e656ed1 Member template in organization is now called Contributor Template.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1526
diff changeset
    40
from soc.views import helper
1598
a55296590875 Fix a missing import reported in #melange.
Augie Fackler <durin42@gmail.com>
parents: 1596
diff changeset
    41
from soc.views import out_of_band
1126
4fc86db70a76 Added organization view and templates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1079
diff changeset
    42
from soc.views.helper import access
1325
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
    43
from soc.views.helper import decorators
1154
77276e2c46f7 Implement the last step in the org application process.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1126
diff changeset
    44
from soc.views.helper import dynaform
1325
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
    45
from soc.views.helper import lists
682
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    46
from soc.views.helper import redirects
1154
77276e2c46f7 Implement the last step in the org application process.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1126
diff changeset
    47
from soc.views.helper import widgets
682
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    48
from soc.views.models import group
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    49
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    50
import soc.models.organization
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    51
import soc.logic.models.organization
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    52
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    53
class View(group.View):
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    54
  """View methods for the Organization model.
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    55
  """
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    56
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    57
  def __init__(self, params=None):
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    58
    """Defines the fields and methods required for the base View class
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    59
    to provide the user with list, public, create, edit and delete views.
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    60
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    61
    Params:
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    62
      original_params: a dict with params for this View
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    63
    """
2076
1cd180cc56c9 Style fixes and removal of unused imports in soc.views.models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2037
diff changeset
    64
    
1cd180cc56c9 Style fixes and removal of unused imports in soc.views.models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2037
diff changeset
    65
    from soc.views.models import program as program_view
1cd180cc56c9 Style fixes and removal of unused imports in soc.views.models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2037
diff changeset
    66
    
1126
4fc86db70a76 Added organization view and templates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1079
diff changeset
    67
    rights = access.Checker(params)
1325
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
    68
    rights['any_access'] = ['allow']
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
    69
    rights['show'] = ['allow']
1126
4fc86db70a76 Added organization view and templates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1079
diff changeset
    70
    rights['create'] = ['checkIsDeveloper']
1526
5c31184594a5 Convert everything to use the new access methods
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1491
diff changeset
    71
    rights['edit'] = [('checkHasActiveRoleForKeyFieldsAsScope',
5c31184594a5 Convert everything to use the new access methods
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1491
diff changeset
    72
                           org_admin_logic.logic,),
5c31184594a5 Convert everything to use the new access methods
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1491
diff changeset
    73
                      ('checkGroupIsActiveForLinkId', org_logic.logic)]
1126
4fc86db70a76 Added organization view and templates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1079
diff changeset
    74
    rights['delete'] = ['checkIsDeveloper']
4fc86db70a76 Added organization view and templates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1079
diff changeset
    75
    rights['home'] = ['allow']
1325
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
    76
    rights['public_list'] = ['allow']
1405
43b482f48b12 Added apply as a mentor view which lists all orgs for a given program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1391
diff changeset
    77
    rights['apply_mentor'] = ['checkIsUser']
1526
5c31184594a5 Convert everything to use the new access methods
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1491
diff changeset
    78
    rights['list_requests'] = [('checkHasActiveRoleForKeyFieldsAsScope',
5c31184594a5 Convert everything to use the new access methods
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1491
diff changeset
    79
                                org_admin_logic.logic)]
5c31184594a5 Convert everything to use the new access methods
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1491
diff changeset
    80
    rights['list_roles'] = [('checkHasActiveRoleForKeyFieldsAsScope',
5c31184594a5 Convert everything to use the new access methods
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1491
diff changeset
    81
                             org_admin_logic.logic)]
1266
e8feadcbc47f Changed the access checks for organization.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1264
diff changeset
    82
    rights['applicant'] = [('checkIsApplicationAccepted',
e8feadcbc47f Changed the access checks for organization.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1264
diff changeset
    83
                            org_app_logic.logic)]
1489
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
    84
    rights['list_proposals'] = [('checkHasAny', [
1605
df05cd289b2f Fixed two bugs introduced in r2160.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1600
diff changeset
    85
        [('checkHasActiveRoleForKeyFieldsAsScope', [org_admin_logic.logic]),
df05cd289b2f Fixed two bugs introduced in r2160.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1600
diff changeset
    86
         ('checkHasActiveRoleForKeyFieldsAsScope', [mentor_logic.logic])]
1489
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
    87
        ])]
1126
4fc86db70a76 Added organization view and templates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1079
diff changeset
    88
682
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    89
    new_params = {}
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    90
    new_params['logic'] = soc.logic.models.organization.logic
1325
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
    91
    new_params['rights'] = rights
682
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    92
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    93
    new_params['scope_view'] = program_view
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    94
    new_params['scope_redirect'] = redirects.getCreateRedirect
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    95
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    96
    new_params['name'] = "Organization"
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    97
    new_params['url_name'] = "org"
1303
08433090cff8 Add prefix filtering and refactored program field generation
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1284
diff changeset
    98
    new_params['document_prefix'] = "org"
1126
4fc86db70a76 Added organization view and templates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1079
diff changeset
    99
    new_params['sidebar_grouping'] = 'Organizations'
682
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   100
1126
4fc86db70a76 Added organization view and templates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1079
diff changeset
   101
    new_params['public_template'] = 'soc/organization/public.html'
4fc86db70a76 Added organization view and templates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1079
diff changeset
   102
    new_params['list_row'] = 'soc/organization/list/row.html'
4fc86db70a76 Added organization view and templates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1079
diff changeset
   103
    new_params['list_heading'] = 'soc/organization/list/heading.html'
4fc86db70a76 Added organization view and templates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1079
diff changeset
   104
1154
77276e2c46f7 Implement the last step in the org application process.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1126
diff changeset
   105
    new_params['application_logic'] = org_app_logic
77276e2c46f7 Implement the last step in the org application process.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1126
diff changeset
   106
    new_params['group_applicant_url'] = True
1325
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   107
    new_params['sans_link_id_public_list'] = True
1154
77276e2c46f7 Implement the last step in the org application process.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1126
diff changeset
   108
2037
3f355dca3679 Added nr_applications and nr_mentors
Sverre Rabbelier <srabbelier@gmail.com>
parents: 2036
diff changeset
   109
    new_params['extra_dynaexclude'] = ['slots', 'nr_applications', 'nr_mentors']
1760
393891d794e2 Hide 'slots' and add 'slots_desired'
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1702
diff changeset
   110
1405
43b482f48b12 Added apply as a mentor view which lists all orgs for a given program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1391
diff changeset
   111
    patterns = []
43b482f48b12 Added apply as a mentor view which lists all orgs for a given program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1391
diff changeset
   112
1702
6c69b7cff908 Minor style fixes
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1700
diff changeset
   113
    patterns += [
6c69b7cff908 Minor style fixes
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1700
diff changeset
   114
        (r'^%(url_name)s/(?P<access_type>apply_mentor)/%(scope)s$',
1599
b56976cac36b Add myself to authors on this file, and allow my whitespace cleanup hook to cleanup whitespace.
Augie Fackler <durin42@gmail.com>
parents: 1598
diff changeset
   115
        'soc.views.models.%(module_name)s.apply_mentor',
1489
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   116
        "List of all %(name_plural)s you can apply to"),
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   117
        (r'^%(url_name)s/(?P<access_type>list_proposals)/%(key_fields)s$',
1599
b56976cac36b Add myself to authors on this file, and allow my whitespace cleanup hook to cleanup whitespace.
Augie Fackler <durin42@gmail.com>
parents: 1598
diff changeset
   118
        'soc.views.models.%(module_name)s.list_proposals',
1702
6c69b7cff908 Minor style fixes
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1700
diff changeset
   119
        "List of all Student Proposals for this %(name)s"),
6c69b7cff908 Minor style fixes
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1700
diff changeset
   120
        ]
1405
43b482f48b12 Added apply as a mentor view which lists all orgs for a given program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1391
diff changeset
   121
43b482f48b12 Added apply as a mentor view which lists all orgs for a given program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1391
diff changeset
   122
    new_params['extra_django_patterns'] = patterns
43b482f48b12 Added apply as a mentor view which lists all orgs for a given program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1391
diff changeset
   123
1875
69d60793092a Specify the type of Link ID used
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1838
diff changeset
   124
    new_params['create_dynafields'] = [
69d60793092a Specify the type of Link ID used
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1838
diff changeset
   125
        {'name': 'link_id',
69d60793092a Specify the type of Link ID used
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1838
diff changeset
   126
         'base': forms.fields.CharField,
69d60793092a Specify the type of Link ID used
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1838
diff changeset
   127
         'label': 'Organization Link ID',
69d60793092a Specify the type of Link ID used
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1838
diff changeset
   128
         },
69d60793092a Specify the type of Link ID used
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1838
diff changeset
   129
        ]
69d60793092a Specify the type of Link ID used
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1838
diff changeset
   130
1430
ff8cc6b15e6a Rename dynafields to dynaproperties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1406
diff changeset
   131
    new_params['create_extra_dynaproperties'] = {
682
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   132
        'scope_path': forms.CharField(widget=forms.HiddenInput,
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   133
                                   required=True),
1683
866667e9343d Make org description use TinyMCE
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1676
diff changeset
   134
        'description': forms.fields.CharField(
866667e9343d Make org description use TinyMCE
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1676
diff changeset
   135
            widget=helper.widgets.FullTinyMCE(
866667e9343d Make org description use TinyMCE
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1676
diff changeset
   136
                attrs={'rows': 25, 'cols': 100})),
1567
b5589e656ed1 Member template in organization is now called Contributor Template.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1526
diff changeset
   137
        'contrib_template': forms.fields.CharField(
b5589e656ed1 Member template in organization is now called Contributor Template.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1526
diff changeset
   138
            widget=helper.widgets.FullTinyMCE(
b5589e656ed1 Member template in organization is now called Contributor Template.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1526
diff changeset
   139
                attrs={'rows': 25, 'cols': 100})),
1683
866667e9343d Make org description use TinyMCE
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1676
diff changeset
   140
        'clean_description': cleaning.clean_html_content('description'),
2076
1cd180cc56c9 Style fixes and removal of unused imports in soc.views.models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2037
diff changeset
   141
        'clean_contrib_template': cleaning.clean_html_content(
1cd180cc56c9 Style fixes and removal of unused imports in soc.views.models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2037
diff changeset
   142
            'contrib_template'),
1391
09a95e57caa7 Added a missing cleaner to org idea list
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1344
diff changeset
   143
        'clean_ideas': cleaning.clean_url('ideas'),
1221
0130e63704ac Remove extra whitespaces in soc.views.models.organization module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1205
diff changeset
   144
        'clean': cleaning.validate_new_group('link_id', 'scope_path',
1325
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   145
            soc.logic.models.organization, org_app_logic)
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   146
        }
1205
2e88261aba72 Added validate_new_group to cleaning and removed clean_new_club_link_id.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1154
diff changeset
   147
1430
ff8cc6b15e6a Rename dynafields to dynaproperties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1406
diff changeset
   148
    new_params['edit_extra_dynaproperties'] = {
1700
599a5ff8f422 Clean document references
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1685
diff changeset
   149
        'clean': cleaning.clean_refs(new_params, ['home_link_id'])
599a5ff8f422 Clean document references
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1685
diff changeset
   150
        }
682
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   151
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   152
    params = dicts.merge(params, new_params)
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   153
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   154
    super(View, self).__init__(params=params)
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   155
1154
77276e2c46f7 Implement the last step in the org application process.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1126
diff changeset
   156
    # create and store the special form for applicants
77276e2c46f7 Implement the last step in the org application process.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1126
diff changeset
   157
    updated_fields = {
77276e2c46f7 Implement the last step in the org application process.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1126
diff changeset
   158
        'link_id': forms.CharField(widget=widgets.ReadOnlyInput(),
77276e2c46f7 Implement the last step in the org application process.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1126
diff changeset
   159
            required=False),
1325
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   160
        'clean_link_id': cleaning.clean_link_id('link_id')
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   161
        }
1154
77276e2c46f7 Implement the last step in the org application process.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1126
diff changeset
   162
77276e2c46f7 Implement the last step in the org application process.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1126
diff changeset
   163
    applicant_create_form = dynaform.extendDynaForm(
77276e2c46f7 Implement the last step in the org application process.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1126
diff changeset
   164
        dynaform = self._params['create_form'],
1430
ff8cc6b15e6a Rename dynafields to dynaproperties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1406
diff changeset
   165
        dynaproperties = updated_fields)
1154
77276e2c46f7 Implement the last step in the org application process.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1126
diff changeset
   166
77276e2c46f7 Implement the last step in the org application process.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1126
diff changeset
   167
    params['applicant_create_form'] = applicant_create_form
77276e2c46f7 Implement the last step in the org application process.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1126
diff changeset
   168
1325
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   169
  @decorators.merge_params
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   170
  @decorators.check_access
1405
43b482f48b12 Added apply as a mentor view which lists all orgs for a given program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1391
diff changeset
   171
  def applyMentor(self, request, access_type,
43b482f48b12 Added apply as a mentor view which lists all orgs for a given program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1391
diff changeset
   172
                  page_name=None, params=None, **kwargs):
1599
b56976cac36b Add myself to authors on this file, and allow my whitespace cleanup hook to cleanup whitespace.
Augie Fackler <durin42@gmail.com>
parents: 1598
diff changeset
   173
    """Shows a list of all organizations and you can choose one to
1405
43b482f48b12 Added apply as a mentor view which lists all orgs for a given program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1391
diff changeset
   174
       apply to become a mentor.
43b482f48b12 Added apply as a mentor view which lists all orgs for a given program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1391
diff changeset
   175
43b482f48b12 Added apply as a mentor view which lists all orgs for a given program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1391
diff changeset
   176
    Args:
43b482f48b12 Added apply as a mentor view which lists all orgs for a given program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1391
diff changeset
   177
      request: the standard Django HTTP request object
43b482f48b12 Added apply as a mentor view which lists all orgs for a given program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1391
diff changeset
   178
      access_type : the name of the access type which should be checked
43b482f48b12 Added apply as a mentor view which lists all orgs for a given program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1391
diff changeset
   179
      page_name: the page name displayed in templates as page and header title
43b482f48b12 Added apply as a mentor view which lists all orgs for a given program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1391
diff changeset
   180
      params: a dict with params for this View
43b482f48b12 Added apply as a mentor view which lists all orgs for a given program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1391
diff changeset
   181
      kwargs: the Key Fields for the specified entity
43b482f48b12 Added apply as a mentor view which lists all orgs for a given program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1391
diff changeset
   182
    """
43b482f48b12 Added apply as a mentor view which lists all orgs for a given program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1391
diff changeset
   183
43b482f48b12 Added apply as a mentor view which lists all orgs for a given program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1391
diff changeset
   184
    list_params = params.copy()
43b482f48b12 Added apply as a mentor view which lists all orgs for a given program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1391
diff changeset
   185
    list_params['list_action'] = (redirects.getRequestRedirectForRole, 'mentor')
1641
c2201decd4b4 Some style fixes, removal of unused imports and add ugettext where it was missing in soc.views.models.organization module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1605
diff changeset
   186
    list_params['list_description'] = ugettext('Choose an Organization which '
1405
43b482f48b12 Added apply as a mentor view which lists all orgs for a given program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1391
diff changeset
   187
        'you want to become a Mentor for.')
43b482f48b12 Added apply as a mentor view which lists all orgs for a given program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1391
diff changeset
   188
43b482f48b12 Added apply as a mentor view which lists all orgs for a given program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1391
diff changeset
   189
    filter = {'scope_path': kwargs['scope_path'],
43b482f48b12 Added apply as a mentor view which lists all orgs for a given program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1391
diff changeset
   190
              'status' : 'active'}
43b482f48b12 Added apply as a mentor view which lists all orgs for a given program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1391
diff changeset
   191
1599
b56976cac36b Add myself to authors on this file, and allow my whitespace cleanup hook to cleanup whitespace.
Augie Fackler <durin42@gmail.com>
parents: 1598
diff changeset
   192
    return self.list(request, access_type,
1405
43b482f48b12 Added apply as a mentor view which lists all orgs for a given program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1391
diff changeset
   193
        page_name, params=list_params, filter=filter)
43b482f48b12 Added apply as a mentor view which lists all orgs for a given program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1391
diff changeset
   194
43b482f48b12 Added apply as a mentor view which lists all orgs for a given program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1391
diff changeset
   195
  @decorators.merge_params
43b482f48b12 Added apply as a mentor view which lists all orgs for a given program.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1391
diff changeset
   196
  @decorators.check_access
1489
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   197
  def listProposals(self, request, access_type,
1491
acf7e32de8ca Style fixes in student_proposal and organization view.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1490
diff changeset
   198
                    page_name=None, params=None, **kwargs):
1489
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   199
    """Lists all proposals for the organization given in kwargs.
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   200
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   201
    For params see base.View.public().
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   202
    """
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   203
1685
4b48cd4e4aa9 Added a rank column to the proposals list.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1683
diff changeset
   204
    from soc.logic.models.ranker_root import logic as ranker_root_logic
4b48cd4e4aa9 Added a rank column to the proposals list.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1683
diff changeset
   205
    from soc.models import student_proposal
1928
8001eee3160f The org list proposals page now shows the amount of assigned slots.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1920
diff changeset
   206
    from soc.views.helper import list_info as list_info_helper
1489
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   207
    from soc.views.models import student_proposal as student_proposal_view
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   208
1668
e3780ee24322 The organization proposal list has been significantly changed.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1641
diff changeset
   209
    try:
e3780ee24322 The organization proposal list has been significantly changed.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1641
diff changeset
   210
      org_entity = self._logic.getFromKeyFieldsOr404(kwargs)
e3780ee24322 The organization proposal list has been significantly changed.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1641
diff changeset
   211
    except out_of_band.Error, error:
e3780ee24322 The organization proposal list has been significantly changed.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1641
diff changeset
   212
      return helper.responses.errorResponse(
e3780ee24322 The organization proposal list has been significantly changed.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1641
diff changeset
   213
          error, request, template=params['error_public'])
1489
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   214
1928
8001eee3160f The org list proposals page now shows the amount of assigned slots.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1920
diff changeset
   215
    context = {}
8001eee3160f The org list proposals page now shows the amount of assigned slots.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1920
diff changeset
   216
    context['entity'] = org_entity
8001eee3160f The org list proposals page now shows the amount of assigned slots.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1920
diff changeset
   217
1489
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   218
    list_params = student_proposal_view.view.getParams().copy()
1928
8001eee3160f The org list proposals page now shows the amount of assigned slots.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1920
diff changeset
   219
    list_params['list_template'] = 'soc/student_proposal/list_for_org.html'
1668
e3780ee24322 The organization proposal list has been significantly changed.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1641
diff changeset
   220
e3780ee24322 The organization proposal list has been significantly changed.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1641
diff changeset
   221
    ranked_params = list_params.copy()# ranked proposals
1685
4b48cd4e4aa9 Added a rank column to the proposals list.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1683
diff changeset
   222
    ranked_params['list_row'] = ('soc/%(module_name)s/list/'
4b48cd4e4aa9 Added a rank column to the proposals list.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1683
diff changeset
   223
        'detailed_row.html' % list_params)
4b48cd4e4aa9 Added a rank column to the proposals list.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1683
diff changeset
   224
    ranked_params['list_heading'] = ('soc/%(module_name)s/list/'
4b48cd4e4aa9 Added a rank column to the proposals list.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1683
diff changeset
   225
        'detailed_heading.html' % list_params)
1920
0eba9cb1b331 Change the order of student proposals lists for org admins and mentors. Now the new proposals list shows up at the top. Also don't show the list of new proposals if it's empty.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1875
diff changeset
   226
    ranked_params['list_description'] = '%s already under review sent to %s' % (
1668
e3780ee24322 The organization proposal list has been significantly changed.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1641
diff changeset
   227
        ranked_params['name_plural'], org_entity.name)
e3780ee24322 The organization proposal list has been significantly changed.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1641
diff changeset
   228
    ranked_params['list_action'] = (redirects.getReviewRedirect, ranked_params)
e3780ee24322 The organization proposal list has been significantly changed.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1641
diff changeset
   229
1676
a3c33bef2ea8 Organization Proposals list now correctly sorts.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1668
diff changeset
   230
    # TODO(ljvderijk) once sorting with IN operator is fixed, 
a3c33bef2ea8 Organization Proposals list now correctly sorts.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1668
diff changeset
   231
    # make this list show more
a3c33bef2ea8 Organization Proposals list now correctly sorts.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1668
diff changeset
   232
    filter = {'org': org_entity,
a3c33bef2ea8 Organization Proposals list now correctly sorts.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1668
diff changeset
   233
              'status': 'pending'}
1668
e3780ee24322 The organization proposal list has been significantly changed.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1641
diff changeset
   234
e3780ee24322 The organization proposal list has been significantly changed.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1641
diff changeset
   235
    # order by descending score
e3780ee24322 The organization proposal list has been significantly changed.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1641
diff changeset
   236
    order = ['-score']
1489
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   237
1668
e3780ee24322 The organization proposal list has been significantly changed.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1641
diff changeset
   238
    prop_list = lists.getListContent(
e3780ee24322 The organization proposal list has been significantly changed.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1641
diff changeset
   239
        request, ranked_params, filter, order=order, idx=0)
e3780ee24322 The organization proposal list has been significantly changed.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1641
diff changeset
   240
1685
4b48cd4e4aa9 Added a rank column to the proposals list.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1683
diff changeset
   241
    proposals = prop_list['data']
4b48cd4e4aa9 Added a rank column to the proposals list.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1683
diff changeset
   242
4b48cd4e4aa9 Added a rank column to the proposals list.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1683
diff changeset
   243
    # get a list of scores
4b48cd4e4aa9 Added a rank column to the proposals list.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1683
diff changeset
   244
    scores = [[proposal.score] for proposal in proposals]
4b48cd4e4aa9 Added a rank column to the proposals list.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1683
diff changeset
   245
4b48cd4e4aa9 Added a rank column to the proposals list.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1683
diff changeset
   246
    # retrieve the ranker
4b48cd4e4aa9 Added a rank column to the proposals list.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1683
diff changeset
   247
    fields = {'link_id': student_proposal.DEF_RANKER_NAME,
4b48cd4e4aa9 Added a rank column to the proposals list.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1683
diff changeset
   248
                'scope': org_entity}
4b48cd4e4aa9 Added a rank column to the proposals list.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1683
diff changeset
   249
4b48cd4e4aa9 Added a rank column to the proposals list.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1683
diff changeset
   250
    ranker_root = ranker_root_logic.getForFields(fields, unique=True)
4b48cd4e4aa9 Added a rank column to the proposals list.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1683
diff changeset
   251
    ranker = ranker_root_logic.getRootFromEntity(ranker_root)
4b48cd4e4aa9 Added a rank column to the proposals list.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1683
diff changeset
   252
4b48cd4e4aa9 Added a rank column to the proposals list.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1683
diff changeset
   253
    # retrieve the ranks for these scores
4b48cd4e4aa9 Added a rank column to the proposals list.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1683
diff changeset
   254
    ranks = [rank+1 for rank in ranker.FindRanks(scores)]
4b48cd4e4aa9 Added a rank column to the proposals list.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1683
diff changeset
   255
4b48cd4e4aa9 Added a rank column to the proposals list.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1683
diff changeset
   256
    # link the proposals to the rank
4b48cd4e4aa9 Added a rank column to the proposals list.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1683
diff changeset
   257
    ranking = dict([i for i in itertools.izip(proposals, ranks)])
4b48cd4e4aa9 Added a rank column to the proposals list.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1683
diff changeset
   258
1928
8001eee3160f The org list proposals page now shows the amount of assigned slots.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1920
diff changeset
   259
    assigned_proposals = []
8001eee3160f The org list proposals page now shows the amount of assigned slots.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1920
diff changeset
   260
2076
1cd180cc56c9 Style fixes and removal of unused imports in soc.views.models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2037
diff changeset
   261
    # only when the program allows allocations 
1cd180cc56c9 Style fixes and removal of unused imports in soc.views.models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2037
diff changeset
   262
    # to be seen we should color the list
1928
8001eee3160f The org list proposals page now shows the amount of assigned slots.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1920
diff changeset
   263
    if org_entity.scope.allocations_visible:
8001eee3160f The org list proposals page now shows the amount of assigned slots.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1920
diff changeset
   264
      # get the limit and offset for the list
2076
1cd180cc56c9 Style fixes and removal of unused imports in soc.views.models.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 2037
diff changeset
   265
      _, offset = lists.getLimitAndOffset(request, 'offset_0', 'limit_0')
1928
8001eee3160f The org list proposals page now shows the amount of assigned slots.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1920
diff changeset
   266
8001eee3160f The org list proposals page now shows the amount of assigned slots.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1920
diff changeset
   267
      # determine the amount of proposals to color
8001eee3160f The org list proposals page now shows the amount of assigned slots.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1920
diff changeset
   268
      to_color = max(0, org_entity.slots - offset)
8001eee3160f The org list proposals page now shows the amount of assigned slots.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1920
diff changeset
   269
      assigned_proposals = proposals[0:to_color]
8001eee3160f The org list proposals page now shows the amount of assigned slots.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1920
diff changeset
   270
8001eee3160f The org list proposals page now shows the amount of assigned slots.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1920
diff changeset
   271
      # show the amount of slots assigned on the webpage
8001eee3160f The org list proposals page now shows the amount of assigned slots.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1920
diff changeset
   272
      context['slots_visible'] = True
8001eee3160f The org list proposals page now shows the amount of assigned slots.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1920
diff changeset
   273
8001eee3160f The org list proposals page now shows the amount of assigned slots.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1920
diff changeset
   274
    # update the prop_list with the ranking and coloring information
8001eee3160f The org list proposals page now shows the amount of assigned slots.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1920
diff changeset
   275
    prop_list['info'] = (list_info_helper.getStudentProposalInfo(ranking,
8001eee3160f The org list proposals page now shows the amount of assigned slots.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1920
diff changeset
   276
        assigned_proposals), None)
1685
4b48cd4e4aa9 Added a rank column to the proposals list.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1683
diff changeset
   277
1668
e3780ee24322 The organization proposal list has been significantly changed.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1641
diff changeset
   278
    new_params = list_params.copy() # new proposals
1998
0df5351ac18a Fixed a typo in proposal listing
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1928
diff changeset
   279
    new_params['list_description'] = 'List of new %s sent to %s ' % (
1668
e3780ee24322 The organization proposal list has been significantly changed.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1641
diff changeset
   280
        new_params['name_plural'], org_entity.name)
e3780ee24322 The organization proposal list has been significantly changed.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1641
diff changeset
   281
    new_params['list_action'] = (redirects.getReviewRedirect, new_params)
e3780ee24322 The organization proposal list has been significantly changed.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1641
diff changeset
   282
1685
4b48cd4e4aa9 Added a rank column to the proposals list.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1683
diff changeset
   283
    filter = {'org': org_entity,
1766
75531b82a4e2 Add indention in soc.views.models.organization module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1760
diff changeset
   284
              'status': 'new'}
1668
e3780ee24322 The organization proposal list has been significantly changed.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1641
diff changeset
   285
1920
0eba9cb1b331 Change the order of student proposals lists for org admins and mentors. Now the new proposals list shows up at the top. Also don't show the list of new proposals if it's empty.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1875
diff changeset
   286
    contents = []
1668
e3780ee24322 The organization proposal list has been significantly changed.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1641
diff changeset
   287
    new_list = lists.getListContent(
1920
0eba9cb1b331 Change the order of student proposals lists for org admins and mentors. Now the new proposals list shows up at the top. Also don't show the list of new proposals if it's empty.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1875
diff changeset
   288
        request, new_params, filter, idx=1, need_content=True)
1928
8001eee3160f The org list proposals page now shows the amount of assigned slots.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1920
diff changeset
   289
2036
d23379c80b48 Use ugettext and shorter variable names for inellegible list
Sverre Rabbelier <srabbelier@gmail.com>
parents: 2035
diff changeset
   290
    ip_params = list_params.copy() # ineligible proposals
d23379c80b48 Use ugettext and shorter variable names for inellegible list
Sverre Rabbelier <srabbelier@gmail.com>
parents: 2035
diff changeset
   291
d23379c80b48 Use ugettext and shorter variable names for inellegible list
Sverre Rabbelier <srabbelier@gmail.com>
parents: 2035
diff changeset
   292
    description = ugettext('List of ineligible %s sent to %s ') % (
d23379c80b48 Use ugettext and shorter variable names for inellegible list
Sverre Rabbelier <srabbelier@gmail.com>
parents: 2035
diff changeset
   293
        ip_params['name_plural'], org_entity.name)
d23379c80b48 Use ugettext and shorter variable names for inellegible list
Sverre Rabbelier <srabbelier@gmail.com>
parents: 2035
diff changeset
   294
d23379c80b48 Use ugettext and shorter variable names for inellegible list
Sverre Rabbelier <srabbelier@gmail.com>
parents: 2035
diff changeset
   295
    ip_params['list_description'] = description
d23379c80b48 Use ugettext and shorter variable names for inellegible list
Sverre Rabbelier <srabbelier@gmail.com>
parents: 2035
diff changeset
   296
    ip_params['list_action'] = (redirects.getReviewRedirect, ip_params)
2035
5b663ac5bb14 Add listing of ineligible Student Proposals to "View all Students Proposals" view. Now mentors and org admin can see what application has been marked as ineligible or withdrawn by student.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1998
diff changeset
   297
5b663ac5bb14 Add listing of ineligible Student Proposals to "View all Students Proposals" view. Now mentors and org admin can see what application has been marked as ineligible or withdrawn by student.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1998
diff changeset
   298
    filter = {'org': org_entity,
5b663ac5bb14 Add listing of ineligible Student Proposals to "View all Students Proposals" view. Now mentors and org admin can see what application has been marked as ineligible or withdrawn by student.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1998
diff changeset
   299
              'status': 'invalid'}
5b663ac5bb14 Add listing of ineligible Student Proposals to "View all Students Proposals" view. Now mentors and org admin can see what application has been marked as ineligible or withdrawn by student.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1998
diff changeset
   300
2036
d23379c80b48 Use ugettext and shorter variable names for inellegible list
Sverre Rabbelier <srabbelier@gmail.com>
parents: 2035
diff changeset
   301
    ip_list = lists.getListContent(
d23379c80b48 Use ugettext and shorter variable names for inellegible list
Sverre Rabbelier <srabbelier@gmail.com>
parents: 2035
diff changeset
   302
        request, ip_params, filter, idx=1, need_content=True)
2035
5b663ac5bb14 Add listing of ineligible Student Proposals to "View all Students Proposals" view. Now mentors and org admin can see what application has been marked as ineligible or withdrawn by student.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1998
diff changeset
   303
1668
e3780ee24322 The organization proposal list has been significantly changed.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1641
diff changeset
   304
    # fill contents with all the needed lists
1920
0eba9cb1b331 Change the order of student proposals lists for org admins and mentors. Now the new proposals list shows up at the top. Also don't show the list of new proposals if it's empty.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1875
diff changeset
   305
    if new_list != None:
0eba9cb1b331 Change the order of student proposals lists for org admins and mentors. Now the new proposals list shows up at the top. Also don't show the list of new proposals if it's empty.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1875
diff changeset
   306
      contents.append(new_list)
2036
d23379c80b48 Use ugettext and shorter variable names for inellegible list
Sverre Rabbelier <srabbelier@gmail.com>
parents: 2035
diff changeset
   307
1920
0eba9cb1b331 Change the order of student proposals lists for org admins and mentors. Now the new proposals list shows up at the top. Also don't show the list of new proposals if it's empty.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1875
diff changeset
   308
    contents.append(prop_list)
2036
d23379c80b48 Use ugettext and shorter variable names for inellegible list
Sverre Rabbelier <srabbelier@gmail.com>
parents: 2035
diff changeset
   309
d23379c80b48 Use ugettext and shorter variable names for inellegible list
Sverre Rabbelier <srabbelier@gmail.com>
parents: 2035
diff changeset
   310
    if ip_list != None:
d23379c80b48 Use ugettext and shorter variable names for inellegible list
Sverre Rabbelier <srabbelier@gmail.com>
parents: 2035
diff changeset
   311
      contents.append(ip_list)
1668
e3780ee24322 The organization proposal list has been significantly changed.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1641
diff changeset
   312
e3780ee24322 The organization proposal list has been significantly changed.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1641
diff changeset
   313
    # call the _list method from base to display the list
1928
8001eee3160f The org list proposals page now shows the amount of assigned slots.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1920
diff changeset
   314
    return self._list(request, list_params, contents, page_name, context)
1489
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   315
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   316
  @decorators.merge_params
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   317
  @decorators.check_access
1325
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   318
  def listPublic(self, request, access_type, page_name=None,
1491
acf7e32de8ca Style fixes in student_proposal and organization view.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1490
diff changeset
   319
                 params=None, filter=None, **kwargs):
1325
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   320
    """See base.View.list.
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   321
    """
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   322
1600
0aa3de1b2acc Fix access bug due to forgotten normalization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1599
diff changeset
   323
    account = accounts.getCurrentAccount()
1596
834ead6528a8 Fixed a missing .logic in organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1584
diff changeset
   324
    user = user_logic.logic.getForAccount(account) if account else None
1526
5c31184594a5 Convert everything to use the new access methods
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1491
diff changeset
   325
5c31184594a5 Convert everything to use the new access methods
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1491
diff changeset
   326
    try:
5c31184594a5 Convert everything to use the new access methods
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1491
diff changeset
   327
      rights = self._params['rights']
5c31184594a5 Convert everything to use the new access methods
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1491
diff changeset
   328
      rights.setCurrentUser(account, user)
5c31184594a5 Convert everything to use the new access methods
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1491
diff changeset
   329
      rights.checkIsHost()
5c31184594a5 Convert everything to use the new access methods
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1491
diff changeset
   330
      is_host = True
5c31184594a5 Convert everything to use the new access methods
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1491
diff changeset
   331
    except out_of_band.Error:
5c31184594a5 Convert everything to use the new access methods
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1491
diff changeset
   332
      is_host = False
5c31184594a5 Convert everything to use the new access methods
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1491
diff changeset
   333
1605
df05cd289b2f Fixed two bugs introduced in r2160.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1600
diff changeset
   334
    new_params = {}
df05cd289b2f Fixed two bugs introduced in r2160.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1600
diff changeset
   335
1526
5c31184594a5 Convert everything to use the new access methods
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1491
diff changeset
   336
    if is_host:
1344
d94410538f8e Redirect to the admin view in listPublic
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1343
diff changeset
   337
      new_params['list_action'] = (redirects.getAdminRedirect, params)
d94410538f8e Redirect to the admin view in listPublic
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1343
diff changeset
   338
    else:
d94410538f8e Redirect to the admin view in listPublic
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1343
diff changeset
   339
      new_params['list_action'] = (redirects.getPublicRedirect, params)
1325
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   340
    # safe to merge them the wrong way around because of @merge_params
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   341
    params = dicts.merge(new_params, params)
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   342
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   343
    new_filter = {}
1406
60b68fc36df2 List public view for organizations should be program limited.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1405
diff changeset
   344
60b68fc36df2 List public view for organizations should be program limited.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1405
diff changeset
   345
    new_filter['scope_path'] = kwargs['scope_path']
1325
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   346
    new_filter['status'] = 'active'
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   347
    filter = dicts.merge(filter, new_filter)
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   348
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   349
    content = lists.getListContent(request, params, filter)
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   350
    contents = [content]
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   351
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   352
    return self._list(request, params, contents, page_name)
1154
77276e2c46f7 Implement the last step in the org application process.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1126
diff changeset
   353
1264
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   354
  def _getExtraMenuItems(self, role_description, params=None):
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   355
    """Used to create the specific Organization menu entries.
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   356
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   357
    For args see group.View._getExtraMenuItems().
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   358
    """
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   359
    submenus = []
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   360
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   361
    group_entity = role_description['group']
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   362
    roles = role_description['roles']
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   363
1489
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   364
    if roles.get('org_admin') or roles.get('mentor'):
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   365
      # add a link to view all the student proposals
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   366
      submenu = (redirects.getListProposalsRedirect(group_entity, params),
1490
cb7a272bfd04 Textual changes in organization and program view.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1489
diff changeset
   367
          "View all Student Proposals", 'any_access')
1489
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   368
      submenus.append(submenu)
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   369
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   370
1264
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   371
    if roles.get('org_admin'):
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   372
      # add a link to the management page
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   373
      submenu = (redirects.getListRolesRedirect(group_entity, params),
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   374
          "Manage Admins and Mentors", 'any_access')
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   375
      submenus.append(submenu)
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   376
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   377
      # add a link to invite an org admin
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   378
      submenu = (redirects.getInviteRedirectForRole(group_entity, 'org_admin'),
1463
d25793debbfb Remove superfluous 'Org' in links
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1436
diff changeset
   379
          "Invite an Admin", 'any_access')
1264
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   380
      submenus.append(submenu)
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   381
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   382
      # add a link to invite a member
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   383
      submenu = (redirects.getInviteRedirectForRole(group_entity, 'mentor'),
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   384
          "Invite a Mentor", 'any_access')
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   385
      submenus.append(submenu)
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   386
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   387
      # add a link to the request page
1599
b56976cac36b Add myself to authors on this file, and allow my whitespace cleanup hook to cleanup whitespace.
Augie Fackler <durin42@gmail.com>
parents: 1598
diff changeset
   388
      submenu = (redirects.getListRequestsRedirect(group_entity, params),
1264
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   389
          "List Requests and Invites", 'any_access')
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   390
      submenus.append(submenu)
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   391
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   392
      # add a link to the edit page
1599
b56976cac36b Add myself to authors on this file, and allow my whitespace cleanup hook to cleanup whitespace.
Augie Fackler <durin42@gmail.com>
parents: 1598
diff changeset
   393
      submenu = (redirects.getEditRedirect(group_entity, params),
1264
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   394
          "Edit Organization Profile", 'any_access')
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   395
      submenus.append(submenu)
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   396
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   397
    if roles.get('org_admin') or roles.get('mentor'):
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   398
      submenu = (redirects.getCreateDocumentRedirect(group_entity, 'org'),
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   399
          "Create a New Document", 'any_access')
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   400
      submenus.append(submenu)
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   401
1317
fad74cf4e5da Add a 'list documents' link everywhere
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1308
diff changeset
   402
      submenu = (redirects.getListDocumentsRedirect(group_entity, 'org'),
fad74cf4e5da Add a 'list documents' link everywhere
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1308
diff changeset
   403
          "List Documents", 'any_access')
fad74cf4e5da Add a 'list documents' link everywhere
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1308
diff changeset
   404
      submenus.append(submenu)
fad74cf4e5da Add a 'list documents' link everywhere
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1308
diff changeset
   405
1489
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   406
1264
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   407
    if roles.get('org_admin'):
1283
438dceed3132 Add ToS agreement to org_admin application related forms.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1266
diff changeset
   408
      # add a link to the resign page
1599
b56976cac36b Add myself to authors on this file, and allow my whitespace cleanup hook to cleanup whitespace.
Augie Fackler <durin42@gmail.com>
parents: 1598
diff changeset
   409
      submenu = (redirects.getManageRedirect(roles['org_admin'],
b56976cac36b Add myself to authors on this file, and allow my whitespace cleanup hook to cleanup whitespace.
Augie Fackler <durin42@gmail.com>
parents: 1598
diff changeset
   410
          {'url_name': 'org_admin'}),
1463
d25793debbfb Remove superfluous 'Org' in links
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1436
diff changeset
   411
          "Resign as Admin", 'any_access')
1264
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   412
      submenus.append(submenu)
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   413
1283
438dceed3132 Add ToS agreement to org_admin application related forms.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1266
diff changeset
   414
      # add a link to the edit page
438dceed3132 Add ToS agreement to org_admin application related forms.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1266
diff changeset
   415
      submenu = (redirects.getEditRedirect(roles['org_admin'],
438dceed3132 Add ToS agreement to org_admin application related forms.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1266
diff changeset
   416
          {'url_name': 'org_admin'}),
1463
d25793debbfb Remove superfluous 'Org' in links
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1436
diff changeset
   417
          "Edit My Admin Profile", 'any_access')
1283
438dceed3132 Add ToS agreement to org_admin application related forms.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1266
diff changeset
   418
      submenus.append(submenu)
438dceed3132 Add ToS agreement to org_admin application related forms.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1266
diff changeset
   419
1489
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   420
1264
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   421
    if roles.get('mentor'):
1284
92f7a24d8f42 Add ToS agreement to mentor application related forms.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1283
diff changeset
   422
      # add a link to the resign page
1599
b56976cac36b Add myself to authors on this file, and allow my whitespace cleanup hook to cleanup whitespace.
Augie Fackler <durin42@gmail.com>
parents: 1598
diff changeset
   423
      submenu = (redirects.getManageRedirect(roles['mentor'],
b56976cac36b Add myself to authors on this file, and allow my whitespace cleanup hook to cleanup whitespace.
Augie Fackler <durin42@gmail.com>
parents: 1598
diff changeset
   424
          {'url_name' : 'mentor'}),
1264
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   425
          "Resign as Mentor", 'any_access')
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   426
      submenus.append(submenu)
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   427
1284
92f7a24d8f42 Add ToS agreement to mentor application related forms.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1283
diff changeset
   428
      # add a link to the edit page
92f7a24d8f42 Add ToS agreement to mentor application related forms.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1283
diff changeset
   429
      submenu = (redirects.getEditRedirect(roles['mentor'],
92f7a24d8f42 Add ToS agreement to mentor application related forms.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1283
diff changeset
   430
          {'url_name': 'mentor'}),
1463
d25793debbfb Remove superfluous 'Org' in links
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1436
diff changeset
   431
          "Edit My Mentor Profile", 'any_access')
1284
92f7a24d8f42 Add ToS agreement to mentor application related forms.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1283
diff changeset
   432
      submenus.append(submenu)
92f7a24d8f42 Add ToS agreement to mentor application related forms.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1283
diff changeset
   433
1264
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   434
    return submenus
1126
4fc86db70a76 Added organization view and templates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1079
diff changeset
   435
682
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   436
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   437
view = View()
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   438
1584
d8ba8c917f37 Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1567
diff changeset
   439
admin = decorators.view(view.admin)
d8ba8c917f37 Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1567
diff changeset
   440
applicant = decorators.view(view.applicant)
d8ba8c917f37 Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1567
diff changeset
   441
apply_mentor = decorators.view(view.applyMentor)
d8ba8c917f37 Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1567
diff changeset
   442
create = decorators.view(view.create)
d8ba8c917f37 Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1567
diff changeset
   443
delete = decorators.view(view.delete)
d8ba8c917f37 Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1567
diff changeset
   444
edit = decorators.view(view.edit)
d8ba8c917f37 Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1567
diff changeset
   445
home = decorators.view(view.home)
d8ba8c917f37 Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1567
diff changeset
   446
list = decorators.view(view.list)
d8ba8c917f37 Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1567
diff changeset
   447
list_proposals = decorators.view(view.listProposals)
d8ba8c917f37 Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1567
diff changeset
   448
list_public = decorators.view(view.listPublic)
d8ba8c917f37 Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1567
diff changeset
   449
list_requests = decorators.view(view.listRequests)
d8ba8c917f37 Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1567
diff changeset
   450
list_roles = decorators.view(view.listRoles)
d8ba8c917f37 Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1567
diff changeset
   451
public = decorators.view(view.public)
d8ba8c917f37 Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1567
diff changeset
   452
export = decorators.view(view.export)
d8ba8c917f37 Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1567
diff changeset
   453
pick = decorators.view(view.pick)