app/soc/views/models/presence.py
author Lennard de Rijk <ljvderijk@gmail.com>
Tue, 03 Feb 2009 13:50:41 +0000
changeset 1201 0a4c1af700a0
parent 1115 0a723ff3d27c
child 1218 569a3fe9cb88
permissions -rw-r--r--
Added checkCanReviewGroupApp to acces.py. To make this work allowSidebar decorator was added as well. This will make sure that the Review buttons show up in the sidebar. Patch by: Lennard de Rijk Reviewed by: to-be-reviewed
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
446
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     1
#!/usr/bin/python2.5
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     2
#
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     3
# Copyright 2008 the Melange authors.
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     4
#
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     5
# Licensed under the Apache License, Version 2.0 (the "License");
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     6
# you may not use this file except in compliance with the License.
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     7
# You may obtain a copy of the License at
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     8
#
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     9
#   http://www.apache.org/licenses/LICENSE-2.0
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    10
#
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    11
# Unless required by applicable law or agreed to in writing, software
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    12
# distributed under the License is distributed on an "AS IS" BASIS,
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    13
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    14
# See the License for the specific language governing permissions and
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    15
# limitations under the License.
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    16
534
c31cfbf1a20f Replace HomeSettings with Presence Model class. Replace SiteSettings with
Todd Larsen <tlarsen@google.com>
parents: 514
diff changeset
    17
"""Views for Models with a "presence" on a Melange site.
446
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    18
"""
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    19
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    20
__authors__ = [
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    21
    '"Sverre Rabbelier" <sverre@rabbelier.nl>',
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    22
  ]
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    23
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    24
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    25
from google.appengine.ext import db
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    26
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    27
from django import forms
970
8b5611d5b053 Use ugettext instead of ugettext_lazy
Sverre Rabbelier <srabbelier@gmail.com>
parents: 926
diff changeset
    28
from django.utils.translation import ugettext
446
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    29
901
d580a057103d Presence is now a 'abstract' View, pull in members from program
Sverre Rabbelier <srabbelier@gmail.com>
parents: 858
diff changeset
    30
from soc.logic import cleaning
446
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    31
from soc.logic import dicts
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    32
from soc.logic import validate
452
160c748988a2 Fixes to {Site,Home}Settings
Sverre Rabbelier <srabbelier@gmail.com>
parents: 446
diff changeset
    33
from soc.logic.models import document as document_logic
446
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    34
from soc.views import helper
710
edb5dbb1dea7 Add explicit access_types from the url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 662
diff changeset
    35
from soc.views.helper import access
921
e499cc2641f6 Create a new 'home' view for Presences
Sverre Rabbelier <srabbelier@gmail.com>
parents: 904
diff changeset
    36
from soc.views.helper import decorators
844
b55c68d25b35 Make getToSLink() an actual method for re-use by others.
Todd Larsen <tlarsen@google.com>
parents: 807
diff changeset
    37
from soc.views.helper import redirects
446
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    38
from soc.views.models import base
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    39
534
c31cfbf1a20f Replace HomeSettings with Presence Model class. Replace SiteSettings with
Todd Larsen <tlarsen@google.com>
parents: 514
diff changeset
    40
import soc.models.presence
c31cfbf1a20f Replace HomeSettings with Presence Model class. Replace SiteSettings with
Todd Larsen <tlarsen@google.com>
parents: 514
diff changeset
    41
import soc.logic.models.presence
446
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    42
import soc.logic.dicts
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    43
import soc.views.helper
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    44
import soc.views.helper.widgets
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    45
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    46
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    47
class View(base.View):
844
b55c68d25b35 Make getToSLink() an actual method for re-use by others.
Todd Larsen <tlarsen@google.com>
parents: 807
diff changeset
    48
  """View methods for the Presence model.
446
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    49
  """
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    50
656
a76f1b443ea4 Cleanups in the views module
Sverre Rabbelier <srabbelier@gmail.com>
parents: 632
diff changeset
    51
  def __init__(self, params=None):
446
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    52
    """Defines the fields and methods required for the base View class
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    53
    to provide the user with list, public, create, edit and delete views.
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    54
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    55
    Params:
656
a76f1b443ea4 Cleanups in the views module
Sverre Rabbelier <srabbelier@gmail.com>
parents: 632
diff changeset
    56
      params: a dict with params for this View
446
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    57
    """
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    58
1007
3b66772d21a5 Major refactor of the access module
Sverre Rabbelier <srabbelier@gmail.com>
parents: 970
diff changeset
    59
    rights = access.Checker(params)
3b66772d21a5 Major refactor of the access module
Sverre Rabbelier <srabbelier@gmail.com>
parents: 970
diff changeset
    60
    rights['home'] = ['allow']
926
390c8a98cdd0 Bugfixes to last commit
Sverre Rabbelier <srabbelier@gmail.com>
parents: 923
diff changeset
    61
901
d580a057103d Presence is now a 'abstract' View, pull in members from program
Sverre Rabbelier <srabbelier@gmail.com>
parents: 858
diff changeset
    62
    new_params = {}
926
390c8a98cdd0 Bugfixes to last commit
Sverre Rabbelier <srabbelier@gmail.com>
parents: 923
diff changeset
    63
    new_params['rights'] = rights
901
d580a057103d Presence is now a 'abstract' View, pull in members from program
Sverre Rabbelier <srabbelier@gmail.com>
parents: 858
diff changeset
    64
d580a057103d Presence is now a 'abstract' View, pull in members from program
Sverre Rabbelier <srabbelier@gmail.com>
parents: 858
diff changeset
    65
    new_params['extra_dynaexclude'] = ['home', 'tos']
921
e499cc2641f6 Create a new 'home' view for Presences
Sverre Rabbelier <srabbelier@gmail.com>
parents: 904
diff changeset
    66
    new_params['home_template'] = 'soc/presence/home.html'
710
edb5dbb1dea7 Add explicit access_types from the url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 662
diff changeset
    67
901
d580a057103d Presence is now a 'abstract' View, pull in members from program
Sverre Rabbelier <srabbelier@gmail.com>
parents: 858
diff changeset
    68
    new_params['create_extra_dynafields'] = {
d580a057103d Presence is now a 'abstract' View, pull in members from program
Sverre Rabbelier <srabbelier@gmail.com>
parents: 858
diff changeset
    69
        'home_link_id': forms.CharField(required=False,
970
8b5611d5b053 Use ugettext instead of ugettext_lazy
Sverre Rabbelier <srabbelier@gmail.com>
parents: 926
diff changeset
    70
            label=ugettext('Home page Document link ID'),
901
d580a057103d Presence is now a 'abstract' View, pull in members from program
Sverre Rabbelier <srabbelier@gmail.com>
parents: 858
diff changeset
    71
            help_text=soc.models.work.Work.link_id.help_text),
446
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    72
901
d580a057103d Presence is now a 'abstract' View, pull in members from program
Sverre Rabbelier <srabbelier@gmail.com>
parents: 858
diff changeset
    73
        # add cleaning of the link id and feed url
1079
be1aacb33b0f Changed clean_link_id to be in a wrapper form as well.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1051
diff changeset
    74
        'clean_link_id': cleaning.clean_link_id('link_id'),
901
d580a057103d Presence is now a 'abstract' View, pull in members from program
Sverre Rabbelier <srabbelier@gmail.com>
parents: 858
diff changeset
    75
        'clean_feed_url': cleaning.clean_feed_url,
d580a057103d Presence is now a 'abstract' View, pull in members from program
Sverre Rabbelier <srabbelier@gmail.com>
parents: 858
diff changeset
    76
        }
446
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    77
923
5a10f6db154b Hook up the 'home' view for site and program
Sverre Rabbelier <srabbelier@gmail.com>
parents: 921
diff changeset
    78
    patterns = []
5a10f6db154b Hook up the 'home' view for site and program
Sverre Rabbelier <srabbelier@gmail.com>
parents: 921
diff changeset
    79
5a10f6db154b Hook up the 'home' view for site and program
Sverre Rabbelier <srabbelier@gmail.com>
parents: 921
diff changeset
    80
    page_name = "Home"
5a10f6db154b Hook up the 'home' view for site and program
Sverre Rabbelier <srabbelier@gmail.com>
parents: 921
diff changeset
    81
    patterns += [(r'^%(url_name)s/(?P<access_type>home)/%(key_fields)s$',
5a10f6db154b Hook up the 'home' view for site and program
Sverre Rabbelier <srabbelier@gmail.com>
parents: 921
diff changeset
    82
                  'soc.views.models.%(module_name)s.home',
5a10f6db154b Hook up the 'home' view for site and program
Sverre Rabbelier <srabbelier@gmail.com>
parents: 921
diff changeset
    83
                  page_name)]
5a10f6db154b Hook up the 'home' view for site and program
Sverre Rabbelier <srabbelier@gmail.com>
parents: 921
diff changeset
    84
5a10f6db154b Hook up the 'home' view for site and program
Sverre Rabbelier <srabbelier@gmail.com>
parents: 921
diff changeset
    85
    new_params['extra_django_patterns'] = patterns
5a10f6db154b Hook up the 'home' view for site and program
Sverre Rabbelier <srabbelier@gmail.com>
parents: 921
diff changeset
    86
901
d580a057103d Presence is now a 'abstract' View, pull in members from program
Sverre Rabbelier <srabbelier@gmail.com>
parents: 858
diff changeset
    87
    params = dicts.merge(params, new_params, sub_merge=True)
446
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    88
656
a76f1b443ea4 Cleanups in the views module
Sverre Rabbelier <srabbelier@gmail.com>
parents: 632
diff changeset
    89
    super(View, self).__init__(params=params)
446
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    90
921
e499cc2641f6 Create a new 'home' view for Presences
Sverre Rabbelier <srabbelier@gmail.com>
parents: 904
diff changeset
    91
  @decorators.check_access
e499cc2641f6 Create a new 'home' view for Presences
Sverre Rabbelier <srabbelier@gmail.com>
parents: 904
diff changeset
    92
  def home(self, request, access_type,
e499cc2641f6 Create a new 'home' view for Presences
Sverre Rabbelier <srabbelier@gmail.com>
parents: 904
diff changeset
    93
             page_name=None, params=None, **kwargs):
e499cc2641f6 Create a new 'home' view for Presences
Sverre Rabbelier <srabbelier@gmail.com>
parents: 904
diff changeset
    94
    """See base.View.public().
e499cc2641f6 Create a new 'home' view for Presences
Sverre Rabbelier <srabbelier@gmail.com>
parents: 904
diff changeset
    95
e499cc2641f6 Create a new 'home' view for Presences
Sverre Rabbelier <srabbelier@gmail.com>
parents: 904
diff changeset
    96
    Overrides public_template to point at 'home_template'.
e499cc2641f6 Create a new 'home' view for Presences
Sverre Rabbelier <srabbelier@gmail.com>
parents: 904
diff changeset
    97
    """
e499cc2641f6 Create a new 'home' view for Presences
Sverre Rabbelier <srabbelier@gmail.com>
parents: 904
diff changeset
    98
e499cc2641f6 Create a new 'home' view for Presences
Sverre Rabbelier <srabbelier@gmail.com>
parents: 904
diff changeset
    99
    new_params = {}
e499cc2641f6 Create a new 'home' view for Presences
Sverre Rabbelier <srabbelier@gmail.com>
parents: 904
diff changeset
   100
    new_params['public_template'] = self._params['home_template']
e499cc2641f6 Create a new 'home' view for Presences
Sverre Rabbelier <srabbelier@gmail.com>
parents: 904
diff changeset
   101
e499cc2641f6 Create a new 'home' view for Presences
Sverre Rabbelier <srabbelier@gmail.com>
parents: 904
diff changeset
   102
    params = dicts.merge(params, new_params)
e499cc2641f6 Create a new 'home' view for Presences
Sverre Rabbelier <srabbelier@gmail.com>
parents: 904
diff changeset
   103
e499cc2641f6 Create a new 'home' view for Presences
Sverre Rabbelier <srabbelier@gmail.com>
parents: 904
diff changeset
   104
    return self.public(request, access_type,
e499cc2641f6 Create a new 'home' view for Presences
Sverre Rabbelier <srabbelier@gmail.com>
parents: 904
diff changeset
   105
                       page_name=page_name, params=params, **kwargs)
e499cc2641f6 Create a new 'home' view for Presences
Sverre Rabbelier <srabbelier@gmail.com>
parents: 904
diff changeset
   106
446
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   107
  def _public(self, request, entity, context):
710
edb5dbb1dea7 Add explicit access_types from the url
Sverre Rabbelier <srabbelier@gmail.com>
parents: 662
diff changeset
   108
    """See base.View._public().
446
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   109
    """
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   110
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   111
    if not entity:
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   112
      return
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   113
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   114
    try:
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   115
      home_doc = entity.home
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   116
    except db.Error:
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   117
      home_doc = None
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   118
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   119
    if home_doc:
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   120
      home_doc.content = helper.templates.unescape(home_doc.content)
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   121
      context['home_document'] = home_doc
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   122
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   123
  def _editGet(self, request, entity, form):
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   124
    """See base.View._editGet().
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   125
    """
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   126
0b479d573a4c Refactoring of {site/home}_settings to make them use base.View
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
   127
    try:
452
160c748988a2 Fixes to {Site,Home}Settings
Sverre Rabbelier <srabbelier@gmail.com>
parents: 446
diff changeset
   128
      if entity.home:
807
b6db9fb1246d Hack in tos_scope_path and tos_link_id to select Terms of Service Document.
Todd Larsen <tlarsen@google.com>
parents: 799
diff changeset
   129
        form.fields['home_link_id'].initial = entity.home.link_id
901
d580a057103d Presence is now a 'abstract' View, pull in members from program
Sverre Rabbelier <srabbelier@gmail.com>
parents: 858
diff changeset
   130
    except db.Error:
d580a057103d Presence is now a 'abstract' View, pull in members from program
Sverre Rabbelier <srabbelier@gmail.com>
parents: 858
diff changeset
   131
      pass
807
b6db9fb1246d Hack in tos_scope_path and tos_link_id to select Terms of Service Document.
Todd Larsen <tlarsen@google.com>
parents: 799
diff changeset
   132
662
0e89b027b140 Make use of the new generic key_name by lookup up scope_path
Sverre Rabbelier <srabbelier@gmail.com>
parents: 656
diff changeset
   133
    super(View, self)._editGet(request, entity, form)
0e89b027b140 Make use of the new generic key_name by lookup up scope_path
Sverre Rabbelier <srabbelier@gmail.com>
parents: 656
diff changeset
   134
452
160c748988a2 Fixes to {Site,Home}Settings
Sverre Rabbelier <srabbelier@gmail.com>
parents: 446
diff changeset
   135
  def _editPost(self, request, entity, fields):
160c748988a2 Fixes to {Site,Home}Settings
Sverre Rabbelier <srabbelier@gmail.com>
parents: 446
diff changeset
   136
    """See base.View._editPost().
160c748988a2 Fixes to {Site,Home}Settings
Sverre Rabbelier <srabbelier@gmail.com>
parents: 446
diff changeset
   137
    """
160c748988a2 Fixes to {Site,Home}Settings
Sverre Rabbelier <srabbelier@gmail.com>
parents: 446
diff changeset
   138
1115
0a723ff3d27c Cleanups in base.Logic
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1101
diff changeset
   139
    key_fields = self._logic.getKeyFieldsFromFields(fields)
0a723ff3d27c Cleanups in base.Logic
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1101
diff changeset
   140
    scope_path = self._logic.getKeyNameFromFields(key_fields)
0a723ff3d27c Cleanups in base.Logic
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1101
diff changeset
   141
0a723ff3d27c Cleanups in base.Logic
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1101
diff changeset
   142
    key_fields = {
0a723ff3d27c Cleanups in base.Logic
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1101
diff changeset
   143
        'scope_path': scope_path,
0a723ff3d27c Cleanups in base.Logic
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1101
diff changeset
   144
        'link_id': fields['home_link_id'],
0a723ff3d27c Cleanups in base.Logic
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1101
diff changeset
   145
        'prefix': self._params['document_prefix'],
0a723ff3d27c Cleanups in base.Logic
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1101
diff changeset
   146
        }
452
160c748988a2 Fixes to {Site,Home}Settings
Sverre Rabbelier <srabbelier@gmail.com>
parents: 446
diff changeset
   147
160c748988a2 Fixes to {Site,Home}Settings
Sverre Rabbelier <srabbelier@gmail.com>
parents: 446
diff changeset
   148
    # TODO notify the user if home_doc is not found
1115
0a723ff3d27c Cleanups in base.Logic
Sverre Rabbelier <srabbelier@gmail.com>
parents: 1101
diff changeset
   149
    home_doc = document_logic.logic.getFromKeyFields(key_fields)
452
160c748988a2 Fixes to {Site,Home}Settings
Sverre Rabbelier <srabbelier@gmail.com>
parents: 446
diff changeset
   150
160c748988a2 Fixes to {Site,Home}Settings
Sverre Rabbelier <srabbelier@gmail.com>
parents: 446
diff changeset
   151
    fields['home'] = home_doc
160c748988a2 Fixes to {Site,Home}Settings
Sverre Rabbelier <srabbelier@gmail.com>
parents: 446
diff changeset
   152
662
0e89b027b140 Make use of the new generic key_name by lookup up scope_path
Sverre Rabbelier <srabbelier@gmail.com>
parents: 656
diff changeset
   153
    super(View, self)._editPost(request, entity, fields)