diff frontend/mfrontend/db.py @ 16:c87f82a15606

Dopisałem co nieco do dokumentacji i małę poprawki w zarządzainu zadaniami
author Michał Rudowicz <michal.rudowicz@fl9.eu>
date Sun, 03 Apr 2011 13:47:13 +0200
parents df32c1d01b8d
children 9916d46ff096 b75a9ae3a060
line wrap: on
line diff
--- a/frontend/mfrontend/db.py	Fri Apr 01 23:00:13 2011 +0200
+++ b/frontend/mfrontend/db.py	Sun Apr 03 13:47:13 2011 +0200
@@ -32,8 +32,9 @@
        nie istnieje plik '.installed'. Plik taki jest tworzony
        po każdej instalacji, aby zapobiec operacjom na
        istniejących bazach.
-       @return True, jeśli instalacja została wykonana,
-               False, jeśli plik '.installed' istnieje.
+       
+       :returns:    True, jeśli instalacja została wykonana,
+                    False, jeśli plik '.installed' istnieje.
     """
     if not os.path.isfile('.installed'):
         with open('schema.sql', 'r') as f:
@@ -45,8 +46,17 @@
         return False
 
 def query_db(query, args=(), one=False):
-    """Funkcja ułatwiająca odpytywanie bazy danych, źródło:
-       http://flask.pocoo.org/docs/patterns/sqlite3/
+    """ Funkcja ułatwiająca odpytywanie bazy danych, źródło:
+        http://flask.pocoo.org/docs/patterns/sqlite3/
+
+        :param query:   Zapytanie SQL. Wszelkie niewiadome należy
+                        zastępować znakiem zapytania ("?"), a
+                        wartości umieszczać na liście w parametrze
+                        args.
+        :param args:    Lista zawierająca argumenty do zappytania.
+        :param one:     Jeśli ustawione na True, to funkcja zwróci
+                        tylko jeden element z bazy, w przeciwnym wypadku
+                        wszystkie spełniające warunek zapytania.
     """
     cur = g.db.execute(query, args)
     rv = [dict((cur.description[idx][0], value)
@@ -56,10 +66,11 @@
 def user_can_login(username, password):
     """Funkcja sprawdzająca, czy podany użytkownik może sie zalogować
        po podaniu danego w argumencie hasła.
-       @param username Nazwa użytkownika
-       @param password Hasło
-       @return Prawda, jeśli podane dane są akceptowalne, w przeciwnym
-       razie fałsz.
+       
+       :param username: Nazwa użytkownika
+       :param password: Hasło
+       :returns:        Prawda, jeśli podane dane są akceptowalne, w przeciwnym
+                        razie fałsz.
     """
     user = query_db('select * from users where username = ?',
                    [username], one=True)
@@ -73,10 +84,11 @@
     return False
 
 def register_user(username, password):
-    """Funkcja rejestrująca nowego użytkownika w systemie.
-       @param username Nazwa nowego użytkownika
-       @param password Hasło w czystym tekście, funkcja sama
-                       zajmie się hashowaniem
+    """ Funkcja rejestrująca nowego użytkownika w systemie.
+        
+        :param username:    Nazwa nowego użytkownika
+        :param password:    Hasło w czystym tekście, funkcja sama
+                            zajmie się hashowaniem
     """
     user = query_db('select * from users where username = ?;',
                     [username], one=True)
@@ -89,16 +101,18 @@
     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.
+    """ 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.
+        :returns:           Informacje o zadaniach z uwzględnieniem podanych w
+                            parametrach filtrów.
     """
     parameters = []
     sqlLine = ""
@@ -128,23 +142,26 @@
 
 def get_waiting_job():
     """ Funkcja zwraca dane o najstarszym oczekującym zadaniu.
-        @return Dane o zadaniu.
+        
+        :returns: Dane o zadaniu.
     """
     return query_db("SELECT * FROM jobs WHERE state = 0 ORDER BY id ASC",[],one=True)
 
 def get_job_by_id(job_id):
     """ Funkcja zwraca wszystkie informacje o wybranym zadaniu na podstawie
         numeru identyfikacyjnego.
-        @param job_id Identyfikator żądanego zadania
-        @return Informacje o żądanym zadaniu.;q
+        
+        :param job_id: Identyfikator żądanego zadania
+        :returns: Informacje o żądanym zadaniu.;q
     """
     return query_db("SELECT * FROM jobs WHERE id = ?;",
                    [job_id], one=True)
 
 def edit_job(job_id, options):
-    """ Funkcja omdyfikująca właściwości zadania o podanym identyfikatorze.
-        @param  job_id  Identyfikator zadania, które chcemy zmodyfikować.
-        @param  options Słownik z nowymi wartościami kolumn w tabeli.
+    """ Funkcja modyfikująca właściwości zadania o podanym identyfikatorze.
+        
+        :param  job_id:  Identyfikator zadania, które chcemy zmodyfikować.
+        :param  options: Słownik z nowymi wartościami kolumn w tabeli.
     """
     # klucze, których zmianę dopuszczamy
     keys = ["label", "state", "result", "percent", "last_checked"]
@@ -157,21 +174,31 @@
 def get_user_name(user_id):
     """ Funkcja pobiera nazwę użytkownika o podanym identyfikatorze.
         
-        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.
+        :param user_id: Identyfikator użytkownika, którego nazwa jest pożądana.
+        :returns:       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"]
 
 def get_user_id(user_name):
     """ Funkcja pobiera identyfikator użytkownika na podstawie nazwy.
-        @param user_name    Nazwa użytkownika, którego indentyfikator ma zostać zwrócony.
-        @return             Identyfikator użytkownika.
+        
+        :param user_name:    Nazwa użytkownika, którego indentyfikator ma zostać zwrócony.
+        :returns:            Identyfikator użytkownika.
     """
     return query_db("SELECT id FROM users WHERE username = ?;",
                     [user_name], one=True)["id"]
 
-def new_job(id, label, hash):
-    query_db("INSERT INTO jobs (owner_id, label, hash) VALUES (?,?,?);",
-            [id, label, hash])
+def new_job(id, label, hash, method):
+    """ Funkcja tworzy nowe zadanie i zapisuje je w bazie danych.
+        
+        :param id:      Identyfikator użytkownika, który ma zostać oznaczony
+                        jako właściciel zadania.
+        :param label:   Opis zadania.
+        :param hash:    Hash do zdekodowania.
+        :param method:  Metoda łamania haseł.
+    """
+    query_db("INSERT INTO jobs (owner_id, label, hash, method) VALUES (?,?,?,?);",
+            [id, label, hash,method])
     g.db.commit()