forked from wmgraham1/NewDemo
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathviews.py
More file actions
113 lines (92 loc) · 3.52 KB
/
Copy pathviews.py
File metadata and controls
113 lines (92 loc) · 3.52 KB
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
import jinja2
import os
import webapp2
from datetime import datetime
from google.appengine.ext import db
from google.appengine.api import users
from models import Notes
TEMPLATE_DIR = os.path.join(os.path.dirname(__file__), 'templates')
jinja_environment = \
jinja2.Environment(loader=jinja2.FileSystemLoader(TEMPLATE_DIR))
class BaseHandler(webapp2.RequestHandler):
@webapp2.cached_property
def jinja2(self):
return jinja2.get_jinja2(app=self.app)
def render_template(
self,
filename,
template_values,
**template_args
):
template = jinja_environment.get_template(filename)
self.response.out.write(template.render(template_values))
class MainPage(BaseHandler):
def get(self):
notes = Notes.all()
logout = None
login = None
currentuser = users.get_current_user()
if currentuser:
logout = users.create_logout_url('/notes/create' )
else:
login = users.create_login_url('/notes/create')
self.render_template('index.html', {'notes': notes,'currentuser':currentuser, 'login':login, 'logout': logout})
class CreateNote(BaseHandler):
def post(self):
n = Notes(author=self.request.get('author'),
text=self.request.get('text'),
priority=self.request.get('priority'),
status=self.request.get('status')
, whichuser=users.get_current_user()
)
n.put()
return webapp2.redirect('/notes')
def get(self):
logout = None
login = None
currentuser = users.get_current_user()
if currentuser:
logout = users.create_logout_url('/notes/create' )
else:
login = users.create_login_url('/notes/create')
self.render_template('create.html', {'currentuser':currentuser, 'login':login, 'logout': logout})
class EditNote(BaseHandler):
def post(self, note_id):
iden = int(note_id)
note = db.get(db.Key.from_path('Notes', iden))
currentuser = users.get_current_user()
if currentuser != note.whichuser and not users.is_current_user_admin():
self.abort(403)
return
note.author = self.request.get('author')
note.text = self.request.get('text')
note.priority = self.request.get('priority')
note.status = self.request.get('status')
note.date = datetime.now()
note.put()
return webapp2.redirect('/notes')
def get(self, note_id):
iden = int(note_id)
note = db.get(db.Key.from_path('Notes', iden))
currentuser = users.get_current_user()
if currentuser != note.whichuser and not users.is_current_user_admin():
self.abort(403)
return
logout = None
login = None
currentuser = users.get_current_user()
if currentuser:
logout = users.create_logout_url('/notes/create' )
else:
login = users.create_login_url('/notes/create')
self.render_template('edit.html', {'note': note,'currentuser':currentuser, 'login':login, 'logout': logout})
class DeleteNote(BaseHandler):
def get(self, note_id):
iden = int(note_id)
note = db.get(db.Key.from_path('Notes', iden))
currentuser = users.get_current_user()
if currentuser != note.whichuser and not users.is_current_user_admin():
self.abort(403)
return
db.delete(note)
return webapp2.redirect('/notes')