Article editing fully implemented
[biaweb_qt.git] / biaweb_db.py
index 2c8e6cd..dd3e333 100644 (file)
@@ -4,6 +4,118 @@
 import sqlite3
 import os
 import os.path
+import time
+
+# function to get an article from the database
+def get_article (dbname, artid):
+       try:
+               conn = sqlite3.connect (dbname)
+               c = conn.cursor ()
+               c.execute ("SELECT * FROM articles WHERE aid=?;", (artid,))
+               conn.commit ()
+               row = c.fetchone ()
+               conn.close ()
+               return row
+       except sqlite3.Error:
+               return False
+
+# function to create an article
+def create_article (dbname, title, summary, keywords, content, catid, stub, rating):
+       # time of creation
+       creattime = time.time ()
+       modtime = creattime
+       try:
+               conn = sqlite3.connect (dbname)
+               c = conn.cursor ()
+               c.execute ("INSERT INTO articles (title, summary, keywords, content, cdate, mdate, cid, stub, rating) \
+                                       VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?);", (title, summary, keywords, content, creattime,
+                                       modtime, catid, stub, rating))
+               conn.commit ()
+               conn.close ()
+               return True
+       except sqlite3.Error:
+               return False
+
+# function to update an article
+def update_article (dbname, aid, title, summary, keywords, content, catid, stub, rating):
+       # modification time only to be updated
+       modtime = time.time ()
+       try:
+               conn = sqlite3.connect (dbname)
+               c = conn.cursor ()
+               c.execute ("UPDATE articles SET title=?, summary=?, keywords=?, content=?, mdate=?, cid=?, \
+                                       stub=?, rating=? WHERE aid=?;",
+                                       (title, summary, keywords, content, modtime, catid, stub, rating, aid))
+               conn.commit ()
+               conn.close ()
+               return True
+       except sqlite3.Error:
+               return False
+
+# function to delete an article
+def delete_article (dbname, artid):
+       try:
+               conn = sqlite3.connect (dbname)
+               c = conn.cursor ()
+               c.execute ("DELETE FROM articles WHERE aid=?;", (artid,))
+               conn.commit ()
+               conn.close ()
+               return True
+       except sqlite3.Error:
+               return False
+
+# function to get a category from the database
+def get_category (dbname, catid):
+       try:
+               conn = sqlite3.connect (dbname)
+               c = conn.cursor ()
+               c.execute ("SELECT * FROM categories WHERE cid=?", (catid,))
+               conn.commit ()
+               cat = c.fetchone ()
+               conn.close ()
+               return cat
+       except sqlite3.Error:
+               return False
+
+# function to update a category
+def update_category (dbname, catid, cat_name, cat_desc, cat_stub):
+       try:
+               conn = sqlite3.connect (dbname)
+               c = conn.cursor ()
+               c.execute ("UPDATE categories SET name=?, desc=?, stub=? WHERE cid=?;",
+                                       (cat_name, cat_desc, cat_stub, catid))
+               conn.commit ()
+               conn.close ()
+               return True
+       except sqlite3.Error:
+               return False
+
+# function to remove a category
+def remove_category (dbname, catid):
+       try:
+               conn = sqlite3.connect (dbname)
+               c = conn.cursor ()
+               c.execute ("DELETE FROM categories WHERE cid=?;", (catid,))
+               c.execute ("DELETE FROM articles WHERE cid=?;", (catid,))
+               conn.commit ()
+               conn.close ()
+               return True
+       except sqlite3.Error:
+               return False
+
+
+# function to create a category
+def create_category (dbname, category_name, category_desc, category_stub):
+       try:
+               conn = sqlite3.connect (dbname)
+               c = conn.cursor ()
+               c.execute ("INSERT INTO categories (name, desc, stub) VALUES (?, ?, ?);",
+                                                       (category_name, category_desc, category_stub))
+               conn.commit ()
+               conn.close ()
+               return True
+       except sqlite3.Error:
+               return False
 
 # function to set the configuration and update the database
 def set_configuration (dbname, site_title, site_url, keywords, description, copyright,
@@ -53,20 +165,6 @@ def get_configuration (dbname):
        except sqlite3.Error:
                return False
 
-
-# function to create a category
-def create_category (dbname, category_name, category_desc, category_stub):
-       try:
-               conn = sqlite3.connect (dbname)
-               c = conn.cursor ()
-               c.execute ("INSERT INTO categories (name, desc, stub) VALUES (?, ?, ?);",
-                                                       (category_name, category_desc, category_stub))
-               conn.commit ()
-               conn.close ()
-               return True
-       except sqlite3.Error:
-               return False
-
 # Function to get list of articles (either full list or just in a category
 def get_articles (dbname, category_id=None):
        try: