app/soc/views/models/organization.py
author Pawel Solyga <Pawel.Solyga@gmail.com>
Wed, 04 Mar 2009 19:00:44 +0000
changeset 1645 c7e05dafaede
parent 1641 c2201decd4b4
child 1668 e3780ee24322
permissions -rw-r--r--
Style fixes plus removal of unused imports, add missing docstring and fix too long lines in soc.views.models.org_app module. 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
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    27
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
    28
from django.utils.translation import ugettext
682
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    29
690
14e9f484412c Fix imports sorting in soc.views.models.organization.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 682
diff changeset
    30
from soc.logic import cleaning
682
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    31
from soc.logic import dicts
1344
d94410538f8e Redirect to the admin view in listPublic
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1343
diff changeset
    32
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
    33
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
    34
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
    35
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
    36
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
    37
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
    38
from soc.views import helper
1598
a55296590875 Fix a missing import reported in #melange.
Augie Fackler <durin42@gmail.com>
parents: 1596
diff changeset
    39
from soc.views import out_of_band
1126
4fc86db70a76 Added organization view and templates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1079
diff changeset
    40
from soc.views.helper import access
1325
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
    41
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
    42
from soc.views.helper import dynaform
1325
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
    43
from soc.views.helper import lists
682
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    44
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
    45
from soc.views.helper import widgets
682
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    46
from soc.views.models import group
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    47
from soc.views.models import program as program_view
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    48
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    49
import soc.models.organization
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    50
import soc.logic.models.organization
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    51
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    52
class View(group.View):
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    53
  """View methods for the Organization model.
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    54
  """
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    55
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    56
  def __init__(self, params=None):
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    57
    """Defines the fields and methods required for the base View class
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    58
    to provide the user with list, public, create, edit and delete views.
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    59
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    60
    Params:
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    61
      original_params: a dict with params for this View
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    62
    """
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    63
1126
4fc86db70a76 Added organization view and templates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1079
diff changeset
    64
    rights = access.Checker(params)
1325
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
    65
    rights['any_access'] = ['allow']
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
    66
    rights['show'] = ['allow']
1126
4fc86db70a76 Added organization view and templates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1079
diff changeset
    67
    rights['create'] = ['checkIsDeveloper']
1526
5c31184594a5 Convert everything to use the new access methods
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1491
diff changeset
    68
    rights['edit'] = [('checkHasActiveRoleForKeyFieldsAsScope',
5c31184594a5 Convert everything to use the new access methods
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1491
diff changeset
    69
                           org_admin_logic.logic,),
5c31184594a5 Convert everything to use the new access methods
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1491
diff changeset
    70
                      ('checkGroupIsActiveForLinkId', org_logic.logic)]
1126
4fc86db70a76 Added organization view and templates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1079
diff changeset
    71
    rights['delete'] = ['checkIsDeveloper']
4fc86db70a76 Added organization view and templates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1079
diff changeset
    72
    rights['home'] = ['allow']
1325
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
    73
    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
    74
    rights['apply_mentor'] = ['checkIsUser']
1526
5c31184594a5 Convert everything to use the new access methods
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1491
diff changeset
    75
    rights['list_requests'] = [('checkHasActiveRoleForKeyFieldsAsScope',
5c31184594a5 Convert everything to use the new access methods
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1491
diff changeset
    76
                                org_admin_logic.logic)]
5c31184594a5 Convert everything to use the new access methods
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1491
diff changeset
    77
    rights['list_roles'] = [('checkHasActiveRoleForKeyFieldsAsScope',
5c31184594a5 Convert everything to use the new access methods
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1491
diff changeset
    78
                             org_admin_logic.logic)]
1266
e8feadcbc47f Changed the access checks for organization.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1264
diff changeset
    79
    rights['applicant'] = [('checkIsApplicationAccepted',
e8feadcbc47f Changed the access checks for organization.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1264
diff changeset
    80
                            org_app_logic.logic)]
1489
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
    81
    rights['list_proposals'] = [('checkHasAny', [
1605
df05cd289b2f Fixed two bugs introduced in r2160.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1600
diff changeset
    82
        [('checkHasActiveRoleForKeyFieldsAsScope', [org_admin_logic.logic]),
df05cd289b2f Fixed two bugs introduced in r2160.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1600
diff changeset
    83
         ('checkHasActiveRoleForKeyFieldsAsScope', [mentor_logic.logic])]
1489
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
    84
        ])]
1126
4fc86db70a76 Added organization view and templates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1079
diff changeset
    85
682
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    86
    new_params = {}
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    87
    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
    88
    new_params['rights'] = rights
682
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    89
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    90
    new_params['scope_view'] = program_view
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    91
    new_params['scope_redirect'] = redirects.getCreateRedirect
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['name'] = "Organization"
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    94
    new_params['url_name'] = "org"
1303
08433090cff8 Add prefix filtering and refactored program field generation
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1284
diff changeset
    95
    new_params['document_prefix'] = "org"
1126
4fc86db70a76 Added organization view and templates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1079
diff changeset
    96
    new_params['sidebar_grouping'] = 'Organizations'
682
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    97
1126
4fc86db70a76 Added organization view and templates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1079
diff changeset
    98
    new_params['public_template'] = 'soc/organization/public.html'
4fc86db70a76 Added organization view and templates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1079
diff changeset
    99
    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
   100
    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
   101
1154
77276e2c46f7 Implement the last step in the org application process.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1126
diff changeset
   102
    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
   103
    new_params['group_applicant_url'] = True
1325
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   104
    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
   105
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
   106
    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
   107
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
   108
    patterns += [(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
   109
        '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
   110
        "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
   111
        (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
   112
        'soc.views.models.%(module_name)s.list_proposals',
1489
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   113
        "List of all Student Proposals for this %(name)s"),]
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
   114
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
   115
    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
   116
1430
ff8cc6b15e6a Rename dynafields to dynaproperties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1406
diff changeset
   117
    new_params['create_extra_dynaproperties'] = {
682
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   118
        'scope_path': forms.CharField(widget=forms.HiddenInput,
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   119
                                   required=True),
1567
b5589e656ed1 Member template in organization is now called Contributor Template.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1526
diff changeset
   120
        '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
   121
            widget=helper.widgets.FullTinyMCE(
b5589e656ed1 Member template in organization is now called Contributor Template.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1526
diff changeset
   122
                attrs={'rows': 25, 'cols': 100})),
1391
09a95e57caa7 Added a missing cleaner to org idea list
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1344
diff changeset
   123
        '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
   124
        '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
   125
            soc.logic.models.organization, org_app_logic)
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   126
        }
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
   127
2e88261aba72 Added validate_new_group to cleaning and removed clean_new_club_link_id.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1154
diff changeset
   128
    # get rid of the clean method
1430
ff8cc6b15e6a Rename dynafields to dynaproperties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1406
diff changeset
   129
    new_params['edit_extra_dynaproperties'] = {
1221
0130e63704ac Remove extra whitespaces in soc.views.models.organization module.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1205
diff changeset
   130
        'clean': (lambda x: x.cleaned_data)}
682
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   131
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   132
    params = dicts.merge(params, new_params)
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   133
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   134
    super(View, self).__init__(params=params)
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   135
1154
77276e2c46f7 Implement the last step in the org application process.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1126
diff changeset
   136
    # 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
   137
    updated_fields = {
77276e2c46f7 Implement the last step in the org application process.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1126
diff changeset
   138
        '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
   139
            required=False),
1325
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   140
        '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
   141
        }
1154
77276e2c46f7 Implement the last step in the org application process.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1126
diff changeset
   142
77276e2c46f7 Implement the last step in the org application process.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1126
diff changeset
   143
    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
   144
        dynaform = self._params['create_form'],
1430
ff8cc6b15e6a Rename dynafields to dynaproperties
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1406
diff changeset
   145
        dynaproperties = updated_fields)
1154
77276e2c46f7 Implement the last step in the org application process.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1126
diff changeset
   146
77276e2c46f7 Implement the last step in the org application process.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1126
diff changeset
   147
    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
   148
1325
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   149
  @decorators.merge_params
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   150
  @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
   151
  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
   152
                  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
   153
    """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
   154
       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
   155
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
   156
    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
   157
      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
   158
      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
   159
      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
   160
      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
   161
      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
   162
    """
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
   163
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
   164
    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
   165
    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
   166
    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
   167
        '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
   168
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
   169
    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
   170
              '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
   171
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
   172
    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
   173
        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
   174
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
  @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
   176
  @decorators.check_access
1489
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   177
  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
   178
                    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
   179
    """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
   180
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   181
    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
   182
    """
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   183
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   184
    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
   185
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   186
    org_entity = org_logic.logic.getFromKeyFields(kwargs)
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   187
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   188
    filter = {'org' : org_entity,
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   189
              'status': ['new', 'pending', 'accepted']}
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   190
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   191
    list_params = student_proposal_view.view.getParams().copy()
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
   192
    list_params['list_description'] = 'List of %s send to %s ' % (
1489
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   193
        list_params['name_plural'], org_entity.name)
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   194
    list_params['list_action'] = (redirects.getPublicRedirect, list_params)
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   195
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   196
    return self.list(request, access_type=access_type, page_name=page_name,
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   197
                     params=list_params, filter=filter, **kwargs)
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   198
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   199
  @decorators.merge_params
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   200
  @decorators.check_access
1325
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   201
  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
   202
                 params=None, filter=None, **kwargs):
1325
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   203
    """See base.View.list.
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   204
    """
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   205
1600
0aa3de1b2acc Fix access bug due to forgotten normalization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1599
diff changeset
   206
    account = accounts.getCurrentAccount()
1596
834ead6528a8 Fixed a missing .logic in organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1584
diff changeset
   207
    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
   208
5c31184594a5 Convert everything to use the new access methods
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1491
diff changeset
   209
    try:
5c31184594a5 Convert everything to use the new access methods
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1491
diff changeset
   210
      rights = self._params['rights']
5c31184594a5 Convert everything to use the new access methods
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1491
diff changeset
   211
      rights.setCurrentUser(account, user)
5c31184594a5 Convert everything to use the new access methods
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1491
diff changeset
   212
      rights.checkIsHost()
5c31184594a5 Convert everything to use the new access methods
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1491
diff changeset
   213
      is_host = True
5c31184594a5 Convert everything to use the new access methods
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1491
diff changeset
   214
    except out_of_band.Error:
5c31184594a5 Convert everything to use the new access methods
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1491
diff changeset
   215
      is_host = False
5c31184594a5 Convert everything to use the new access methods
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1491
diff changeset
   216
1605
df05cd289b2f Fixed two bugs introduced in r2160.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1600
diff changeset
   217
    new_params = {}
df05cd289b2f Fixed two bugs introduced in r2160.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1600
diff changeset
   218
1526
5c31184594a5 Convert everything to use the new access methods
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1491
diff changeset
   219
    if is_host:
1344
d94410538f8e Redirect to the admin view in listPublic
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1343
diff changeset
   220
      new_params['list_action'] = (redirects.getAdminRedirect, params)
d94410538f8e Redirect to the admin view in listPublic
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1343
diff changeset
   221
    else:
d94410538f8e Redirect to the admin view in listPublic
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1343
diff changeset
   222
      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
   223
    # 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
   224
    params = dicts.merge(new_params, params)
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   225
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   226
    new_filter = {}
1406
60b68fc36df2 List public view for organizations should be program limited.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1405
diff changeset
   227
60b68fc36df2 List public view for organizations should be program limited.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1405
diff changeset
   228
    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
   229
    new_filter['status'] = 'active'
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   230
    filter = dicts.merge(filter, new_filter)
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   231
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   232
    content = lists.getListContent(request, params, filter)
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   233
    contents = [content]
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   234
8368086dd3a7 Add a list_public view to organization
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1317
diff changeset
   235
    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
   236
1264
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   237
  def _getExtraMenuItems(self, role_description, params=None):
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   238
    """Used to create the specific Organization menu entries.
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   239
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   240
    For args see group.View._getExtraMenuItems().
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   241
    """
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   242
    submenus = []
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   243
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   244
    group_entity = role_description['group']
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   245
    roles = role_description['roles']
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   246
1489
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   247
    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
   248
      # 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
   249
      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
   250
          "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
   251
      submenus.append(submenu)
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   252
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   253
1264
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   254
    if roles.get('org_admin'):
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   255
      # add a link to the management page
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   256
      submenu = (redirects.getListRolesRedirect(group_entity, params),
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   257
          "Manage Admins and Mentors", 'any_access')
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   258
      submenus.append(submenu)
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   259
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   260
      # add a link to invite an org admin
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   261
      submenu = (redirects.getInviteRedirectForRole(group_entity, 'org_admin'),
1463
d25793debbfb Remove superfluous 'Org' in links
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1436
diff changeset
   262
          "Invite an Admin", 'any_access')
1264
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   263
      submenus.append(submenu)
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   264
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   265
      # add a link to invite a member
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   266
      submenu = (redirects.getInviteRedirectForRole(group_entity, 'mentor'),
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   267
          "Invite a Mentor", 'any_access')
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   268
      submenus.append(submenu)
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   269
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   270
      # 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
   271
      submenu = (redirects.getListRequestsRedirect(group_entity, params),
1264
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   272
          "List Requests and Invites", 'any_access')
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   273
      submenus.append(submenu)
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   274
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   275
      # 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
   276
      submenu = (redirects.getEditRedirect(group_entity, params),
1264
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   277
          "Edit Organization Profile", 'any_access')
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   278
      submenus.append(submenu)
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   279
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   280
    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
   281
      submenu = (redirects.getCreateDocumentRedirect(group_entity, 'org'),
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   282
          "Create a New Document", 'any_access')
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   283
      submenus.append(submenu)
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   284
1317
fad74cf4e5da Add a 'list documents' link everywhere
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1308
diff changeset
   285
      submenu = (redirects.getListDocumentsRedirect(group_entity, 'org'),
fad74cf4e5da Add a 'list documents' link everywhere
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1308
diff changeset
   286
          "List Documents", 'any_access')
fad74cf4e5da Add a 'list documents' link everywhere
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1308
diff changeset
   287
      submenus.append(submenu)
fad74cf4e5da Add a 'list documents' link everywhere
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1308
diff changeset
   288
1489
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   289
1264
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   290
    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
   291
      # 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
   292
      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
   293
          {'url_name': 'org_admin'}),
1463
d25793debbfb Remove superfluous 'Org' in links
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1436
diff changeset
   294
          "Resign as Admin", 'any_access')
1264
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   295
      submenus.append(submenu)
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   296
1283
438dceed3132 Add ToS agreement to org_admin application related forms.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1266
diff changeset
   297
      # 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
   298
      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
   299
          {'url_name': 'org_admin'}),
1463
d25793debbfb Remove superfluous 'Org' in links
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1436
diff changeset
   300
          "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
   301
      submenus.append(submenu)
438dceed3132 Add ToS agreement to org_admin application related forms.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1266
diff changeset
   302
1489
e12e08c8b258 Added view for organizations to list all proposals.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1463
diff changeset
   303
1264
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   304
    if roles.get('mentor'):
1284
92f7a24d8f42 Add ToS agreement to mentor application related forms.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1283
diff changeset
   305
      # 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
   306
      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
   307
          {'url_name' : 'mentor'}),
1264
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   308
          "Resign as Mentor", 'any_access')
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   309
      submenus.append(submenu)
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   310
1284
92f7a24d8f42 Add ToS agreement to mentor application related forms.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1283
diff changeset
   311
      # 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
   312
      submenu = (redirects.getEditRedirect(roles['mentor'],
92f7a24d8f42 Add ToS agreement to mentor application related forms.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1283
diff changeset
   313
          {'url_name': 'mentor'}),
1463
d25793debbfb Remove superfluous 'Org' in links
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1436
diff changeset
   314
          "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
   315
      submenus.append(submenu)
92f7a24d8f42 Add ToS agreement to mentor application related forms.
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1283
diff changeset
   316
1264
4d46b09f3751 Added organization entity sidebar entries.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1221
diff changeset
   317
    return submenus
1126
4fc86db70a76 Added organization view and templates.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1079
diff changeset
   318
682
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   319
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   320
view = View()
187f4d95fedb Added organizations
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   321
1584
d8ba8c917f37 Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1567
diff changeset
   322
admin = decorators.view(view.admin)
d8ba8c917f37 Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1567
diff changeset
   323
applicant = decorators.view(view.applicant)
d8ba8c917f37 Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1567
diff changeset
   324
apply_mentor = decorators.view(view.applyMentor)
d8ba8c917f37 Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1567
diff changeset
   325
create = decorators.view(view.create)
d8ba8c917f37 Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1567
diff changeset
   326
delete = decorators.view(view.delete)
d8ba8c917f37 Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1567
diff changeset
   327
edit = decorators.view(view.edit)
d8ba8c917f37 Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1567
diff changeset
   328
home = decorators.view(view.home)
d8ba8c917f37 Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1567
diff changeset
   329
list = decorators.view(view.list)
d8ba8c917f37 Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1567
diff changeset
   330
list_proposals = decorators.view(view.listProposals)
d8ba8c917f37 Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1567
diff changeset
   331
list_public = decorators.view(view.listPublic)
d8ba8c917f37 Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1567
diff changeset
   332
list_requests = decorators.view(view.listRequests)
d8ba8c917f37 Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1567
diff changeset
   333
list_roles = decorators.view(view.listRoles)
d8ba8c917f37 Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1567
diff changeset
   334
public = decorators.view(view.public)
d8ba8c917f37 Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1567
diff changeset
   335
export = decorators.view(view.export)
d8ba8c917f37 Make use of decorators.view for all views
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1567
diff changeset
   336
pick = decorators.view(view.pick)