Mercurial > kraina_muminkow
diff 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 |
line wrap: on
line diff
--- a/frontend/mfrontend/db.py Mon Feb 28 12:08:57 2011 +0100 +++ b/frontend/mfrontend/db.py Mon Feb 28 19:25:51 2011 +0100 @@ -11,6 +11,11 @@ config = ConfigParser.SafeConfigParser() config.read('config.ini') +## Opisy wszystkich stanów zadań +states = {0 : u'Oczekujące', + 1 : u'Trwa', + 2 : u'Zakończone'} + def connect_db(): """Funkcja łącząca się z bazą danych.""" g.db = sqlite3.connect(config.get('Basic','Database')) @@ -83,3 +88,49 @@ [username, hashedPassword]) g.db.commit() +def get_jobs(owner_id, hash, state): + """Funkcja pobiera informacje o zadaniach. Możliwe jest filtrowanie zadań. + @param owner_id Pobiera informacje jedynie o zadaniach stworzonych przez + użytkownika o podanym id. Jeśli parametr ten jest ustawiony + na None, to pobiera zadania wszystkich użytkowników. + @param hash Pobiera informacje o zadaniu o podanym hashu. Jeśli jest ustawione + na None, to pobiera informacje o wszystkich hashach. + @param state Pobiera informacje o zadaniach będących w określonym stanie. + Jeśli jest ustawione na None, to pobiera informację o zadaniach + znajdujących się w każdym stanie. + @return Informacje o zadaniach z uwzględnieniem podanych w parametrach filtrów. + """ + parameters = [] + sqlLine = "" + if owner_id is not None: + sqlLine += "owner_id = ?" + parameters.append(owner_id) + if hash is not None: + if not sqlLine == "": + sqlLine += " AND " + sqlLine += "hash = ?" + parameters.append(hash) + if state is not None: + if not sqlLine == "": + sqlLine += " AND " + sqlLine += "state = ?" + parameters.append(state) + if sqlLine == "": + sqlLine = "select * from jobs;" + else: + sqlLine = "select * from jobs where " + sqlLine + ";" + result = query_db(sqlLine,parameters) + # teraz trochę upiększamy wynik, np. pobierając nazwy użytkowników + for job in result: + job['username'] = get_user_name(job['owner_id']) + job['state_text'] = states[job['state']] + return result + +def get_user_name(user_id): + """ Funkcja pobiera nazwę użytkownika o podanym identyfikatorze. + @param user_id Identyfikator użytkownika, którego nazwa jest pożądana. + @return String zawierający nazwę użytkownika, lub None, jeśli użytkownik nie istnieje. + """ + return query_db("SELECT username FROM users WHERE id = ?;", + [user_id], one=True)["username"] +