annotate frontend/mfrontend/views/frontend.py @ 33:028cb06a24c9 tip

usunąłem thumbs.db
author Michał Rudowicz <michal.rudowicz@fl9.eu>
date Mon, 13 Jun 2011 09:55:17 +0200
parents c87f82a15606
children
rev   line source
3
79fc37fe85a6 Zabawy z Flaskiem ciąg dalszy, zaczyna to jakoś wyglądać
michalr
parents: 1
diff changeset
1 #!/usr/bin/python
79fc37fe85a6 Zabawy z Flaskiem ciąg dalszy, zaczyna to jakoś wyglądać
michalr
parents: 1
diff changeset
2 # -*- coding: utf-8 -*-
79fc37fe85a6 Zabawy z Flaskiem ciąg dalszy, zaczyna to jakoś wyglądać
michalr
parents: 1
diff changeset
3
5
3ba60dfc1d64 Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 4
diff changeset
4 from flask import Module, render_template, request, url_for
10
58a993029d9f Dodawanie nowych zadań i dekorator sprawdzający zalogowanie.
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 7
diff changeset
5 from flask import escape, session, redirect, flash, abort, g
6
27d63cac76ac Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 5
diff changeset
6 from mfrontend import db, utils, exceptions
1
michalr
parents:
diff changeset
7 frontend = Module(__name__)
michalr
parents:
diff changeset
8
michalr
parents:
diff changeset
9 @frontend.route('/')
michalr
parents:
diff changeset
10 def index():
16
c87f82a15606 Dopisałem co nieco do dokumentacji i małę poprawki w zarządzainu zadaniami
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 10
diff changeset
11 """ Funkcja wyświetlająca stronę główną aplikacji.
c87f82a15606 Dopisałem co nieco do dokumentacji i małę poprawki w zarządzainu zadaniami
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 10
diff changeset
12 """
4
cf786ee26a22 MOŻNA SIĘ LOGOWAĆ I WYLOGOWAĆ jestem wspaniały
michalr
parents: 3
diff changeset
13 return render_template('hello.html')
3
79fc37fe85a6 Zabawy z Flaskiem ciąg dalszy, zaczyna to jakoś wyglądać
michalr
parents: 1
diff changeset
14
6
27d63cac76ac Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 5
diff changeset
15 @frontend.route('/install/')
5
3ba60dfc1d64 Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 4
diff changeset
16 def install():
3ba60dfc1d64 Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 4
diff changeset
17 """Instaluje aplikację, tworząc pustą bazę danych
3ba60dfc1d64 Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 4
diff changeset
18 według schematu.
3ba60dfc1d64 Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 4
diff changeset
19 """
3ba60dfc1d64 Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 4
diff changeset
20 if db.init_db():
3ba60dfc1d64 Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 4
diff changeset
21 return render_template('install_ok.html')
3ba60dfc1d64 Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 4
diff changeset
22 else:
3ba60dfc1d64 Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 4
diff changeset
23 abort(404)
3ba60dfc1d64 Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 4
diff changeset
24
6
27d63cac76ac Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 5
diff changeset
25 @frontend.route('/login/', methods=['GET', 'POST'])
3
79fc37fe85a6 Zabawy z Flaskiem ciąg dalszy, zaczyna to jakoś wyglądać
michalr
parents: 1
diff changeset
26 def login():
16
c87f82a15606 Dopisałem co nieco do dokumentacji i małę poprawki w zarządzainu zadaniami
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 10
diff changeset
27 """ Funkcja logująca użytkownika w wypadku, gdy za pomocą
c87f82a15606 Dopisałem co nieco do dokumentacji i małę poprawki w zarządzainu zadaniami
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 10
diff changeset
28 metody POST zostały wysłane dane do logowania, a w
c87f82a15606 Dopisałem co nieco do dokumentacji i małę poprawki w zarządzainu zadaniami
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 10
diff changeset
29 przeciwnym wypadku wyświetlająca formularz logowania.
c87f82a15606 Dopisałem co nieco do dokumentacji i małę poprawki w zarządzainu zadaniami
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 10
diff changeset
30 """
3
79fc37fe85a6 Zabawy z Flaskiem ciąg dalszy, zaczyna to jakoś wyglądać
michalr
parents: 1
diff changeset
31 if request.method == 'POST':
6
27d63cac76ac Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 5
diff changeset
32 try:
27d63cac76ac Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 5
diff changeset
33 if db.user_can_login(request.form['username'],
27d63cac76ac Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 5
diff changeset
34 request.form['password']) :
10
58a993029d9f Dodawanie nowych zadań i dekorator sprawdzający zalogowanie.
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 7
diff changeset
35 session['user_id'] = db.get_user_id(request.form['username'])
58a993029d9f Dodawanie nowych zadań i dekorator sprawdzający zalogowanie.
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 7
diff changeset
36 session['user_name'] = request.form['username']
6
27d63cac76ac Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 5
diff changeset
37 session['logged_in'] = True
7
d86794939fe4 Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 6
diff changeset
38 flash(u'Zalogowano')
6
27d63cac76ac Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 5
diff changeset
39 return redirect(url_for('index'))
27d63cac76ac Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 5
diff changeset
40 else:
27d63cac76ac Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 5
diff changeset
41 raise exceptions.BadPasswordOrUsername()
27d63cac76ac Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 5
diff changeset
42 except (exceptions.UserNotActivated,
27d63cac76ac Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 5
diff changeset
43 exceptions.BadPasswordOrUsername) as e:
27d63cac76ac Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 5
diff changeset
44 flash(e)
4
cf786ee26a22 MOŻNA SIĘ LOGOWAĆ I WYLOGOWAĆ jestem wspaniały
michalr
parents: 3
diff changeset
45 return redirect(url_for('index'))
3
79fc37fe85a6 Zabawy z Flaskiem ciąg dalszy, zaczyna to jakoś wyglądać
michalr
parents: 1
diff changeset
46 return render_template('login.html')
79fc37fe85a6 Zabawy z Flaskiem ciąg dalszy, zaczyna to jakoś wyglądać
michalr
parents: 1
diff changeset
47
6
27d63cac76ac Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 5
diff changeset
48 @frontend.route('/logout/')
4
cf786ee26a22 MOŻNA SIĘ LOGOWAĆ I WYLOGOWAĆ jestem wspaniały
michalr
parents: 3
diff changeset
49 def logout():
cf786ee26a22 MOŻNA SIĘ LOGOWAĆ I WYLOGOWAĆ jestem wspaniały
michalr
parents: 3
diff changeset
50 """Funkcja powoduje wyczyszczenie sesji użytkownika,
cf786ee26a22 MOŻNA SIĘ LOGOWAĆ I WYLOGOWAĆ jestem wspaniały
michalr
parents: 3
diff changeset
51 a w efekcie wylogowanie z systemu.
cf786ee26a22 MOŻNA SIĘ LOGOWAĆ I WYLOGOWAĆ jestem wspaniały
michalr
parents: 3
diff changeset
52 """
cf786ee26a22 MOŻNA SIĘ LOGOWAĆ I WYLOGOWAĆ jestem wspaniały
michalr
parents: 3
diff changeset
53 session.clear()
10
58a993029d9f Dodawanie nowych zadań i dekorator sprawdzający zalogowanie.
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 7
diff changeset
54 g.user = None
4
cf786ee26a22 MOŻNA SIĘ LOGOWAĆ I WYLOGOWAĆ jestem wspaniały
michalr
parents: 3
diff changeset
55 flash('Wylogowano')
cf786ee26a22 MOŻNA SIĘ LOGOWAĆ I WYLOGOWAĆ jestem wspaniały
michalr
parents: 3
diff changeset
56 return redirect(url_for('index'))
7
d86794939fe4 Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 6
diff changeset
57
d86794939fe4 Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 6
diff changeset
58 @frontend.route('/register/', methods=['GET', 'POST'])
d86794939fe4 Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 6
diff changeset
59 def register():
d86794939fe4 Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 6
diff changeset
60 """Funkcja do rejestrowania użytkowników."""
d86794939fe4 Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 6
diff changeset
61 if request.method == 'POST':
d86794939fe4 Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 6
diff changeset
62 try:
d86794939fe4 Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 6
diff changeset
63 db.register_user(request.form['username'],
d86794939fe4 Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 6
diff changeset
64 request.form['password'])
d86794939fe4 Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 6
diff changeset
65 flash(u'Konto założone, poczekaj na akceptację administratora.')
d86794939fe4 Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 6
diff changeset
66 return redirect(url_for('index'))
d86794939fe4 Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 6
diff changeset
67 except exceptions.UserExists as e:
d86794939fe4 Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 6
diff changeset
68 flash(e)
d86794939fe4 Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 6
diff changeset
69 return redirect(url_for('register'))
d86794939fe4 Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 6
diff changeset
70 return render_template('register.html')
d86794939fe4 Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 6
diff changeset
71