/usr/share/pyshared/schooltool/note/browser.py is in python-schooltool 1:2.1.0-0ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | #
# SchoolTool - common information systems platform for school administration
# Copyright (c) 2005 Shuttleworth Foundation
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
"""
Browser views for notes.
"""
from zope.publisher.browser import BrowserView
from zope.app.form.browser.add import AddView
from zope.traversing.browser.absoluteurl import absoluteURL
from schooltool.note.interfaces import IHaveNotes, INotes, INote
from schooltool.note.note import Note
class NotesView(BrowserView):
# __used_for__ = ?
def __init__(self, context, request):
BrowserView.__init__(self, context, request)
notes = INotes(context)
self.notes = [note for note in notes
if note.privacy == 'public'
or note.owner == request.principal.id]
if 'DELETE_NOTE' in request:
notes.remove(request['uid'])
class NoteAddView(AddView):
"""A view for adding a note."""
__used_for__ = IHaveNotes
# Form error message for the page template
error = None
# Override some fields of AddView
schema = INote
_factory = Note
_arguments = ['title', 'body', 'privacy']
_keyword_arguments = []
_set_before_add = []
_set_after_add = []
def create(self, title, body, privacy):
owner = self.request.principal.id
note = self._factory(title=title, body=body, privacy=privacy,
owner=owner)
return note
def add(self, note):
"""Add `note` to the object."""
notes = INotes(self.context)
notes.add(note)
return note
def update(self):
if 'CANCEL' in self.request:
url = absoluteURL(self.context, self.request)
self.request.response.redirect(url)
return AddView.update(self)
def nextURL(self):
"""See zope.browser.interfaces.IAdding"""
return absoluteURL(self.context, self.request)
|