Mercurial > kraina_muminkow
annotate frontend/mfrontend/db.py @ 15:914d508e87c8
Małe literówki
author | Michał Rudowicz <michal.rudowicz@fl9.eu> |
---|---|
date | Fri, 01 Apr 2011 23:00:13 +0200 |
parents | df32c1d01b8d |
children | c87f82a15606 |
rev | line source |
---|---|
1 | 1 #!/usr/bin/python |
2 # -*- coding: utf-8 -*- | |
3 | |
4 import sqlite3 | |
5 from flask import g | |
6 import ConfigParser | |
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
|
7 from mfrontend import utils, exceptions |
5
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
8 from contextlib import closing |
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
9 import os.path |
1 | 10 |
11 config = ConfigParser.SafeConfigParser() | |
12 config.read('config.ini') | |
13 | |
9
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
14 ## Opisy wszystkich stanów zadań |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
15 states = {0 : u'Oczekujące', |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
16 1 : u'Trwa', |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
17 2 : u'Zakończone'} |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
18 |
1 | 19 def connect_db(): |
20 """Funkcja łącząca się z bazą danych.""" | |
21 g.db = sqlite3.connect(config.get('Basic','Database')) | |
22 | |
23 def disconnect_db(): | |
24 """Funkcja zamykająca połączenie z bazą danych""" | |
25 g.db.close() | |
26 | |
5
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
27 def init_db(): |
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
28 """Funkcja przeprowadzająca inicjalizację bazy danych zgodnie |
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
29 z plikiem schema.sql. Na podstawie kodu ze strony |
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
30 http://flask.pocoo.org/docs/patterns/sqlite3/#initial-schemas |
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
31 Instalacja powiedzie się tylko wtedy, gdy w obecnym katalogu |
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
32 nie istnieje plik '.installed'. Plik taki jest tworzony |
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
33 po każdej instalacji, aby zapobiec operacjom na |
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
34 istniejących bazach. |
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
35 @return True, jeśli instalacja została wykonana, |
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
36 False, jeśli plik '.installed' istnieje. |
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
37 """ |
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
38 if not os.path.isfile('.installed'): |
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
39 with open('schema.sql', 'r') as f: |
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
40 g.db.cursor().executescript(f.read()) |
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
41 g.db.commit() |
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
42 open('.installed', 'w').close() |
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
43 return True |
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
44 else: |
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
45 return False |
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
46 |
1 | 47 def query_db(query, args=(), one=False): |
48 """Funkcja ułatwiająca odpytywanie bazy danych, źródło: | |
49 http://flask.pocoo.org/docs/patterns/sqlite3/ | |
50 """ | |
51 cur = g.db.execute(query, args) | |
52 rv = [dict((cur.description[idx][0], value) | |
53 for idx, value in enumerate(row)) for row in cur.fetchall()] | |
54 return (rv[0] if rv else None) if one else rv | |
4 | 55 |
56 def user_can_login(username, password): | |
57 """Funkcja sprawdzająca, czy podany użytkownik może sie zalogować | |
58 po podaniu danego w argumencie hasła. | |
59 @param username Nazwa użytkownika | |
60 @param password Hasło | |
61 @return Prawda, jeśli podane dane są akceptowalne, w przeciwnym | |
62 razie fałsz. | |
63 """ | |
64 user = query_db('select * from users where username = ?', | |
65 [username], one=True) | |
66 if user is None: # Brak użytkownika o takiej nazwie | |
67 return False | |
68 if user['password'] == utils.hashPassword(password): | |
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
|
69 if not user['activated']: |
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
|
70 raise 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
|
71 return True # Jeśli aktywny i hasło dobre, to wpuszczamy |
4 | 72 # Najwyraźniej jest taki użytkownik, ale hasło się nie zgadza |
73 return False | |
5
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
74 |
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
75 def register_user(username, password): |
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
76 """Funkcja rejestrująca nowego użytkownika w systemie. |
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
77 @param username Nazwa nowego użytkownika |
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
78 @param password Hasło w czystym tekście, funkcja sama |
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
79 zajmie się hashowaniem |
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
80 """ |
7
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
81 user = query_db('select * from users where 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
|
82 [username], one=True) |
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
|
83 if user is not None: |
7
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
84 raise exceptions.UserExists |
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
85 hashedPassword = utils.hashPassword(password) |
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
86 # teraz właściwe dodawanie danych do bazy |
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
87 query_db('INSERT INTO users (username, password, activated) VALUES (?,?,0);', |
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
88 [username, hashedPassword]) |
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
89 g.db.commit() |
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
90 |
9
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
91 def get_jobs(owner_id, hash, state): |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
92 """Funkcja pobiera informacje o zadaniach. Możliwe jest filtrowanie zadań. |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
93 @param owner_id Pobiera informacje jedynie o zadaniach stworzonych przez |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
94 użytkownika o podanym id. Jeśli parametr ten jest ustawiony |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
95 na None, to pobiera zadania wszystkich użytkowników. |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
96 @param hash Pobiera informacje o zadaniu o podanym hashu. Jeśli jest ustawione |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
97 na None, to pobiera informacje o wszystkich hashach. |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
98 @param state Pobiera informacje o zadaniach będących w określonym stanie. |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
99 Jeśli jest ustawione na None, to pobiera informację o zadaniach |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
100 znajdujących się w każdym stanie. |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
101 @return Informacje o zadaniach z uwzględnieniem podanych w parametrach filtrów. |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
102 """ |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
103 parameters = [] |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
104 sqlLine = "" |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
105 if owner_id is not None: |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
106 sqlLine += "owner_id = ?" |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
107 parameters.append(owner_id) |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
108 if hash is not None: |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
109 if not sqlLine == "": |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
110 sqlLine += " AND " |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
111 sqlLine += "hash = ?" |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
112 parameters.append(hash) |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
113 if state is not None: |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
114 if not sqlLine == "": |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
115 sqlLine += " AND " |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
116 sqlLine += "state = ?" |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
117 parameters.append(state) |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
118 if sqlLine == "": |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
119 sqlLine = "select * from jobs;" |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
120 else: |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
121 sqlLine = "select * from jobs where " + sqlLine + ";" |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
122 result = query_db(sqlLine,parameters) |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
123 # teraz trochę upiększamy wynik, np. pobierając nazwy użytkowników |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
124 for job in result: |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
125 job['username'] = get_user_name(job['owner_id']) |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
126 job['state_text'] = states[job['state']] |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
127 return result |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
128 |
13
79cf8ca2a0e5
Dodałem pobieranie informacji o podanym zadaniu oraz pobieranie zadania oczekującego poprzez API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
10
diff
changeset
|
129 def get_waiting_job(): |
79cf8ca2a0e5
Dodałem pobieranie informacji o podanym zadaniu oraz pobieranie zadania oczekującego poprzez API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
10
diff
changeset
|
130 """ Funkcja zwraca dane o najstarszym oczekującym zadaniu. |
79cf8ca2a0e5
Dodałem pobieranie informacji o podanym zadaniu oraz pobieranie zadania oczekującego poprzez API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
10
diff
changeset
|
131 @return Dane o zadaniu. |
79cf8ca2a0e5
Dodałem pobieranie informacji o podanym zadaniu oraz pobieranie zadania oczekującego poprzez API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
10
diff
changeset
|
132 """ |
79cf8ca2a0e5
Dodałem pobieranie informacji o podanym zadaniu oraz pobieranie zadania oczekującego poprzez API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
10
diff
changeset
|
133 return query_db("SELECT * FROM jobs WHERE state = 0 ORDER BY id ASC",[],one=True) |
79cf8ca2a0e5
Dodałem pobieranie informacji o podanym zadaniu oraz pobieranie zadania oczekującego poprzez API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
10
diff
changeset
|
134 |
79cf8ca2a0e5
Dodałem pobieranie informacji o podanym zadaniu oraz pobieranie zadania oczekującego poprzez API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
10
diff
changeset
|
135 def get_job_by_id(job_id): |
79cf8ca2a0e5
Dodałem pobieranie informacji o podanym zadaniu oraz pobieranie zadania oczekującego poprzez API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
10
diff
changeset
|
136 """ Funkcja zwraca wszystkie informacje o wybranym zadaniu na podstawie |
79cf8ca2a0e5
Dodałem pobieranie informacji o podanym zadaniu oraz pobieranie zadania oczekującego poprzez API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
10
diff
changeset
|
137 numeru identyfikacyjnego. |
79cf8ca2a0e5
Dodałem pobieranie informacji o podanym zadaniu oraz pobieranie zadania oczekującego poprzez API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
10
diff
changeset
|
138 @param job_id Identyfikator żądanego zadania |
14
df32c1d01b8d
Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
13
diff
changeset
|
139 @return Informacje o żądanym zadaniu.;q |
13
79cf8ca2a0e5
Dodałem pobieranie informacji o podanym zadaniu oraz pobieranie zadania oczekującego poprzez API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
10
diff
changeset
|
140 """ |
14
df32c1d01b8d
Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
13
diff
changeset
|
141 return query_db("SELECT * FROM jobs WHERE id = ?;", |
13
79cf8ca2a0e5
Dodałem pobieranie informacji o podanym zadaniu oraz pobieranie zadania oczekującego poprzez API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
10
diff
changeset
|
142 [job_id], one=True) |
79cf8ca2a0e5
Dodałem pobieranie informacji o podanym zadaniu oraz pobieranie zadania oczekującego poprzez API
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
10
diff
changeset
|
143 |
14
df32c1d01b8d
Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
13
diff
changeset
|
144 def edit_job(job_id, options): |
df32c1d01b8d
Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
13
diff
changeset
|
145 """ Funkcja omdyfikująca właściwości zadania o podanym identyfikatorze. |
df32c1d01b8d
Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
13
diff
changeset
|
146 @param job_id Identyfikator zadania, które chcemy zmodyfikować. |
df32c1d01b8d
Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
13
diff
changeset
|
147 @param options Słownik z nowymi wartościami kolumn w tabeli. |
df32c1d01b8d
Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
13
diff
changeset
|
148 """ |
df32c1d01b8d
Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
13
diff
changeset
|
149 # klucze, których zmianę dopuszczamy |
df32c1d01b8d
Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
13
diff
changeset
|
150 keys = ["label", "state", "result", "percent", "last_checked"] |
df32c1d01b8d
Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
13
diff
changeset
|
151 for key in keys: |
df32c1d01b8d
Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
13
diff
changeset
|
152 if key in options: |
df32c1d01b8d
Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
13
diff
changeset
|
153 query_db("UPDATE jobs SET " + key + " = :value WHERE id = :id", |
df32c1d01b8d
Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
13
diff
changeset
|
154 {"value":options["state"],"id":job_id}) |
df32c1d01b8d
Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
13
diff
changeset
|
155 g.db.commit() |
df32c1d01b8d
Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
13
diff
changeset
|
156 |
9
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
157 def get_user_name(user_id): |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
158 """ Funkcja pobiera nazwę użytkownika o podanym identyfikatorze. |
14
df32c1d01b8d
Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
13
diff
changeset
|
159 |
df32c1d01b8d
Dodałem edycję zadań przez POST, napisałem coś w rodzaju dokumentacji z nudów
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
13
diff
changeset
|
160 user_id -- Identyfikator użytkownika, którego nazwa jest pożądana. |
9
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
161 @return String zawierający nazwę użytkownika, lub None, jeśli użytkownik nie istnieje. |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
162 """ |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
163 return query_db("SELECT username FROM users WHERE id = ?;", |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
164 [user_id], one=True)["username"] |
9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
165 |
10
58a993029d9f
Dodawanie nowych zadań i dekorator sprawdzający zalogowanie.
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
9
diff
changeset
|
166 def get_user_id(user_name): |
58a993029d9f
Dodawanie nowych zadań i dekorator sprawdzający zalogowanie.
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
9
diff
changeset
|
167 """ Funkcja pobiera identyfikator użytkownika na podstawie nazwy. |
58a993029d9f
Dodawanie nowych zadań i dekorator sprawdzający zalogowanie.
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
9
diff
changeset
|
168 @param user_name Nazwa użytkownika, którego indentyfikator ma zostać zwrócony. |
58a993029d9f
Dodawanie nowych zadań i dekorator sprawdzający zalogowanie.
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
9
diff
changeset
|
169 @return Identyfikator użytkownika. |
58a993029d9f
Dodawanie nowych zadań i dekorator sprawdzający zalogowanie.
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
9
diff
changeset
|
170 """ |
58a993029d9f
Dodawanie nowych zadań i dekorator sprawdzający zalogowanie.
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
9
diff
changeset
|
171 return query_db("SELECT id FROM users WHERE username = ?;", |
58a993029d9f
Dodawanie nowych zadań i dekorator sprawdzający zalogowanie.
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
9
diff
changeset
|
172 [user_name], one=True)["id"] |
58a993029d9f
Dodawanie nowych zadań i dekorator sprawdzający zalogowanie.
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
9
diff
changeset
|
173 |
58a993029d9f
Dodawanie nowych zadań i dekorator sprawdzający zalogowanie.
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
9
diff
changeset
|
174 def new_job(id, label, hash): |
58a993029d9f
Dodawanie nowych zadań i dekorator sprawdzający zalogowanie.
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
9
diff
changeset
|
175 query_db("INSERT INTO jobs (owner_id, label, hash) VALUES (?,?,?);", |
58a993029d9f
Dodawanie nowych zadań i dekorator sprawdzający zalogowanie.
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
9
diff
changeset
|
176 [id, label, hash]) |
58a993029d9f
Dodawanie nowych zadań i dekorator sprawdzający zalogowanie.
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
9
diff
changeset
|
177 g.db.commit() |