Mercurial > kraina_muminkow
comparison frontend/mfrontend/db.py @ 9:9a0a9fa7f91d
Dodałem prototyp listy zadań w systemie
author | Michał Rudowicz <michal.rudowicz@fl9.eu> |
---|---|
date | Mon, 28 Feb 2011 19:25:51 +0100 |
parents | d86794939fe4 |
children | 58a993029d9f |
comparison
equal
deleted
inserted
replaced
8:e00d04093c60 | 9:9a0a9fa7f91d |
---|---|
8 from contextlib import closing | 8 from contextlib import closing |
9 import os.path | 9 import os.path |
10 | 10 |
11 config = ConfigParser.SafeConfigParser() | 11 config = ConfigParser.SafeConfigParser() |
12 config.read('config.ini') | 12 config.read('config.ini') |
13 | |
14 ## Opisy wszystkich stanów zadań | |
15 states = {0 : u'Oczekujące', | |
16 1 : u'Trwa', | |
17 2 : u'Zakończone'} | |
13 | 18 |
14 def connect_db(): | 19 def connect_db(): |
15 """Funkcja łącząca się z bazą danych.""" | 20 """Funkcja łącząca się z bazą danych.""" |
16 g.db = sqlite3.connect(config.get('Basic','Database')) | 21 g.db = sqlite3.connect(config.get('Basic','Database')) |
17 | 22 |
81 # teraz właściwe dodawanie danych do bazy | 86 # teraz właściwe dodawanie danych do bazy |
82 query_db('INSERT INTO users (username, password, activated) VALUES (?,?,0);', | 87 query_db('INSERT INTO users (username, password, activated) VALUES (?,?,0);', |
83 [username, hashedPassword]) | 88 [username, hashedPassword]) |
84 g.db.commit() | 89 g.db.commit() |
85 | 90 |
91 def get_jobs(owner_id, hash, state): | |
92 """Funkcja pobiera informacje o zadaniach. Możliwe jest filtrowanie zadań. | |
93 @param owner_id Pobiera informacje jedynie o zadaniach stworzonych przez | |
94 użytkownika o podanym id. Jeśli parametr ten jest ustawiony | |
95 na None, to pobiera zadania wszystkich użytkowników. | |
96 @param hash Pobiera informacje o zadaniu o podanym hashu. Jeśli jest ustawione | |
97 na None, to pobiera informacje o wszystkich hashach. | |
98 @param state Pobiera informacje o zadaniach będących w określonym stanie. | |
99 Jeśli jest ustawione na None, to pobiera informację o zadaniach | |
100 znajdujących się w każdym stanie. | |
101 @return Informacje o zadaniach z uwzględnieniem podanych w parametrach filtrów. | |
102 """ | |
103 parameters = [] | |
104 sqlLine = "" | |
105 if owner_id is not None: | |
106 sqlLine += "owner_id = ?" | |
107 parameters.append(owner_id) | |
108 if hash is not None: | |
109 if not sqlLine == "": | |
110 sqlLine += " AND " | |
111 sqlLine += "hash = ?" | |
112 parameters.append(hash) | |
113 if state is not None: | |
114 if not sqlLine == "": | |
115 sqlLine += " AND " | |
116 sqlLine += "state = ?" | |
117 parameters.append(state) | |
118 if sqlLine == "": | |
119 sqlLine = "select * from jobs;" | |
120 else: | |
121 sqlLine = "select * from jobs where " + sqlLine + ";" | |
122 result = query_db(sqlLine,parameters) | |
123 # teraz trochę upiększamy wynik, np. pobierając nazwy użytkowników | |
124 for job in result: | |
125 job['username'] = get_user_name(job['owner_id']) | |
126 job['state_text'] = states[job['state']] | |
127 return result | |
128 | |
129 def get_user_name(user_id): | |
130 """ Funkcja pobiera nazwę użytkownika o podanym identyfikatorze. | |
131 @param user_id Identyfikator użytkownika, którego nazwa jest pożądana. | |
132 @return String zawierający nazwę użytkownika, lub None, jeśli użytkownik nie istnieje. | |
133 """ | |
134 return query_db("SELECT username FROM users WHERE id = ?;", | |
135 [user_id], one=True)["username"] | |
136 |