Mercurial > getan > getan
annotate getan/backend.py @ 135:ce707fbb9666
Change coding style of if clauses
author | Björn Ricks <bjoern.ricks@intevation.de> |
---|---|
date | Wed, 31 Oct 2012 14:21:44 +0100 |
parents | 99639833968d |
children | 9f4da22fb1f1 |
rev | line source |
---|---|
23
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
1 # -*- coding: utf-8 -*- |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
2 # |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
3 # (c) 2008, 2009, 2010 by |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
4 # Sascha L. Teichmann <sascha.teichmann@intevation.de> |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
5 # Ingo Weinzierl <ingo.weinzierl@intevation.de> |
97
99639833968d
Add me as author in files that I did touch
Björn Ricks <bjoern.ricks@intevation.de>
parents:
68
diff
changeset
|
6 # (c) 2011 Björn Ricks <bjoern.ricks@intevation.de> |
23
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
7 # |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
8 # This is Free Software licensed unter the terms of GPLv3 or later. |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
9 # For details see LICENSE coming with the source of 'getan'. |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
10 # |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
11 |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
12 import logging |
40
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
13 import os |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
14 |
33
f96a18c10836
Made getan python-2.4 compatible.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
23
diff
changeset
|
15 try: |
f96a18c10836
Made getan python-2.4 compatible.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
23
diff
changeset
|
16 import sqlite3 as db |
f96a18c10836
Made getan python-2.4 compatible.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
23
diff
changeset
|
17 except ImportError: |
f96a18c10836
Made getan python-2.4 compatible.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
23
diff
changeset
|
18 from pysqlite2 import dbapi2 as db |
23
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
19 |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
20 from getan.project import Project, Entry |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
21 |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
22 DEFAULT_DATABASE = "time.db" |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
23 |
40
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
24 CREATE_TABLES = [ |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
25 """ |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
26 CREATE TABLE projects ( |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
27 id INTEGER PRIMARY KEY AUTOINCREMENT, |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
28 key VARCHAR(16), |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
29 description VARCHAR(256), |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
30 active BOOLEAN DEFAULT 1 |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
31 ) |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
32 """, |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
33 """ |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
34 CREATE TABLE entries ( |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
35 id INTEGER PRIMARY KEY AUTOINCREMENT, |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
36 project_id INTEGER REFERENCES projects(id), |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
37 start_time TIMESTAMP NOT NULL, |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
38 stop_time TIMESTAMP NOT NULL, |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
39 description VARCHAR(256), |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
40 |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
41 CHECK (strftime('%s', start_time) <= strftime('%s', stop_time)) |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
42 ) |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
43 """ |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
44 ] |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
45 |
23
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
46 LOAD_ACTIVE_PROJECTS = ''' |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
47 SELECT id, key, description, total |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
48 FROM projects LEFT JOIN |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
49 (SELECT |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
50 project_id, |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
51 sum(strftime('%s', stop_time) - strftime('%s', start_time)) AS total |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
52 FROM entries |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
53 GROUP BY project_id) ON project_id = id |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
54 WHERE active |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
55 ''' |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
56 |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
57 LOAD_PROJECT_ENTRIES = ''' |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
58 SELECT |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
59 id, |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
60 project_id, |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
61 start_time as "[timestamp]", |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
62 stop_time as "[timestamp]", |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
63 description |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
64 FROM |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
65 entries |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
66 WHERE |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
67 project_id = %i |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
68 ORDER BY |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
69 id |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
70 DESC |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
71 ''' |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
72 |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
73 INSERT_PROJECT_ENTRY = ''' |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
74 INSERT INTO entries (project_id, start_time, stop_time, description) |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
75 VALUES(?,?,?,?) |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
76 ''' |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
77 |
49
062ce001abd1
add backend method to create new projects
Björn Ricks <bjoern.ricks@intevation.de>
parents:
40
diff
changeset
|
78 INSERT_PROJECT = ''' |
52
9cb57c37369a
fix insert new project sql statemenent and api
Björn Ricks <bjoern.ricks@intevation.de>
parents:
50
diff
changeset
|
79 INSERT INTO projects (key, description, active) VALUES (?,?,1) |
49
062ce001abd1
add backend method to create new projects
Björn Ricks <bjoern.ricks@intevation.de>
parents:
40
diff
changeset
|
80 ''' |
062ce001abd1
add backend method to create new projects
Björn Ricks <bjoern.ricks@intevation.de>
parents:
40
diff
changeset
|
81 |
23
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
82 DELETE_PROJECT_ENTRY = 'DELETE FROM entries WHERE id = %i' |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
83 |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
84 MOVE_ENTRY = 'UPDATE entries SET project_id = ? WHERE id = ?' |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
85 |
68
a25dab413260
Add new method to update a description of an entry in the database backend
Björn Ricks <bjoern.ricks@intevation.de>
parents:
52
diff
changeset
|
86 UPDATE_ENTRY = 'UPDATE entries SET description = ? WHERE id = ?' |
a25dab413260
Add new method to update a description of an entry in the database backend
Björn Ricks <bjoern.ricks@intevation.de>
parents:
52
diff
changeset
|
87 |
23
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
88 logger = logging.getLogger() |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
89 |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
90 class Backend: |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
91 |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
92 def __init__(self, database = DEFAULT_DATABASE): |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
93 self.database = database |
40
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
94 self.ensure_exists() |
23
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
95 self.con = db.connect(database, |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
96 detect_types=db.PARSE_DECLTYPES | |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
97 db.PARSE_COLNAMES) |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
98 self.con.text_factory = lambda x: unicode(x, "utf-8", "ignore") |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
99 |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
100 |
40
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
101 def ensure_exists(self): |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
102 """ Creates the database file if it does not exist. """ |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
103 if os.path.isfile(self.database): return |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
104 |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
105 con, cur = None, None |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
106 try: |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
107 con = db.connect(self.database); |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
108 cur = con.cursor() |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
109 try: |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
110 for sql in CREATE_TABLES: |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
111 cur.execute(sql) |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
112 con.commit() |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
113 except: |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
114 con.rollback() |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
115 raise |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
116 finally: |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
117 if cur: cur.close() |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
118 if con: con.close() |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
119 |
e4759cc8f5e7
Create database file if it does not exist.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
33
diff
changeset
|
120 |
23
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
121 def load_projects(self): |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
122 """ Loads active projects from database and returns them as array """ |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
123 logger.debug("load active projects from database.") |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
124 cur = None |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
125 try : |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
126 cur = self.con.cursor() |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
127 cur.execute(LOAD_ACTIVE_PROJECTS) |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
128 |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
129 projects = [] |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
130 while True: |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
131 row = cur.fetchone() |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
132 |
135
ce707fbb9666
Change coding style of if clauses
Björn Ricks <bjoern.ricks@intevation.de>
parents:
97
diff
changeset
|
133 if not row: |
ce707fbb9666
Change coding style of if clauses
Björn Ricks <bjoern.ricks@intevation.de>
parents:
97
diff
changeset
|
134 break |
ce707fbb9666
Change coding style of if clauses
Björn Ricks <bjoern.ricks@intevation.de>
parents:
97
diff
changeset
|
135 proj = Project(*row) |
23
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
136 proj.entries = self.load_entries(proj.id) |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
137 projects.append(proj) |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
138 |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
139 logger.info("found %i active projects." % len(projects)) |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
140 return projects |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
141 |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
142 finally: |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
143 close(cur) |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
144 |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
145 |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
146 def load_entries(self, project_id): |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
147 """ Loads all entries that belong to a specific project """ |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
148 logger.debug("load entries that belong to project %s" % project_id) |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
149 cur = None |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
150 try: |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
151 cur = self.con.cursor() |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
152 cur.execute(LOAD_PROJECT_ENTRIES % project_id) |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
153 |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
154 entries = [] |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
155 while True: |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
156 try: |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
157 row = cur.fetchone() |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
158 |
135
ce707fbb9666
Change coding style of if clauses
Björn Ricks <bjoern.ricks@intevation.de>
parents:
97
diff
changeset
|
159 if not row: |
ce707fbb9666
Change coding style of if clauses
Björn Ricks <bjoern.ricks@intevation.de>
parents:
97
diff
changeset
|
160 break |
23
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
161 entries.append(Entry(*row)) |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
162 except: |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
163 logger.warn("found invalid entry.") |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
164 |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
165 logger.debug("Found %i entries that belong to project '%i'" |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
166 % (len(entries), project_id)) |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
167 return entries |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
168 finally: |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
169 close(cur) |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
170 |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
171 |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
172 def insert_project_entry(self, project, stop_time, desc): |
135
ce707fbb9666
Change coding style of if clauses
Björn Ricks <bjoern.ricks@intevation.de>
parents:
97
diff
changeset
|
173 if project is None: |
ce707fbb9666
Change coding style of if clauses
Björn Ricks <bjoern.ricks@intevation.de>
parents:
97
diff
changeset
|
174 return |
23
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
175 cur = None |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
176 try: |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
177 cur = self.con.cursor() |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
178 cur.execute(INSERT_PROJECT_ENTRY, ( |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
179 project.id, project.start, stop_time, desc)) |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
180 self.con.commit() |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
181 logger.debug("Added new entry '%s' of project '%s' into db" |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
182 % (desc, project.desc)) |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
183 |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
184 project.entries = self.load_entries(project.id) |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
185 finally: |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
186 close(cur) |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
187 |
52
9cb57c37369a
fix insert new project sql statemenent and api
Björn Ricks <bjoern.ricks@intevation.de>
parents:
50
diff
changeset
|
188 def insert_project(self, key, description): |
9cb57c37369a
fix insert new project sql statemenent and api
Björn Ricks <bjoern.ricks@intevation.de>
parents:
50
diff
changeset
|
189 if key is None or description is None: |
49
062ce001abd1
add backend method to create new projects
Björn Ricks <bjoern.ricks@intevation.de>
parents:
40
diff
changeset
|
190 return |
062ce001abd1
add backend method to create new projects
Björn Ricks <bjoern.ricks@intevation.de>
parents:
40
diff
changeset
|
191 cur = None |
50
9dbb6ee443a4
don't forget to save before commit :-/
Björn Ricks <bjoern.ricks@intevation.de>
parents:
49
diff
changeset
|
192 try: |
49
062ce001abd1
add backend method to create new projects
Björn Ricks <bjoern.ricks@intevation.de>
parents:
40
diff
changeset
|
193 cur = self.con.cursor() |
52
9cb57c37369a
fix insert new project sql statemenent and api
Björn Ricks <bjoern.ricks@intevation.de>
parents:
50
diff
changeset
|
194 cur.execute(INSERT_PROJECT, (key, description)) |
49
062ce001abd1
add backend method to create new projects
Björn Ricks <bjoern.ricks@intevation.de>
parents:
40
diff
changeset
|
195 self.con.commit() |
52
9cb57c37369a
fix insert new project sql statemenent and api
Björn Ricks <bjoern.ricks@intevation.de>
parents:
50
diff
changeset
|
196 logger.debug("Added a new project '%s' into db" % description) |
50
9dbb6ee443a4
don't forget to save before commit :-/
Björn Ricks <bjoern.ricks@intevation.de>
parents:
49
diff
changeset
|
197 finally: |
9dbb6ee443a4
don't forget to save before commit :-/
Björn Ricks <bjoern.ricks@intevation.de>
parents:
49
diff
changeset
|
198 close(cur) |
23
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
199 |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
200 def delete_entries(self, entries): |
135
ce707fbb9666
Change coding style of if clauses
Björn Ricks <bjoern.ricks@intevation.de>
parents:
97
diff
changeset
|
201 if entries is None: |
ce707fbb9666
Change coding style of if clauses
Björn Ricks <bjoern.ricks@intevation.de>
parents:
97
diff
changeset
|
202 return |
23
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
203 |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
204 cur = None |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
205 try: |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
206 cur = self.con.cursor() |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
207 for entry in entries: |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
208 cur.execute(DELETE_PROJECT_ENTRY % entry.id) |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
209 logger.debug("Deleted entry: %s (%d)" % (entry.desc, entry.id)) |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
210 self.con.commit() |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
211 finally: |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
212 close(cur) |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
213 |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
214 |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
215 def move_entries(self, entries, new_project_id): |
135
ce707fbb9666
Change coding style of if clauses
Björn Ricks <bjoern.ricks@intevation.de>
parents:
97
diff
changeset
|
216 if entries is None or new_project_id is None: |
ce707fbb9666
Change coding style of if clauses
Björn Ricks <bjoern.ricks@intevation.de>
parents:
97
diff
changeset
|
217 return |
23
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
218 |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
219 cur = None |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
220 try: |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
221 cur = self.con.cursor() |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
222 for entry in entries: |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
223 cur.execute(MOVE_ENTRY, (new_project_id, entry.id)) |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
224 logger.debug("Moved entry '%s' (id=%d) to project with id %d." |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
225 % (entry.desc, entry.id, new_project_id)) |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
226 self.con.commit() |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
227 finally: |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
228 close(cur) |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
229 |
68
a25dab413260
Add new method to update a description of an entry in the database backend
Björn Ricks <bjoern.ricks@intevation.de>
parents:
52
diff
changeset
|
230 def update_entry(self, entry): |
a25dab413260
Add new method to update a description of an entry in the database backend
Björn Ricks <bjoern.ricks@intevation.de>
parents:
52
diff
changeset
|
231 if not entry: |
a25dab413260
Add new method to update a description of an entry in the database backend
Björn Ricks <bjoern.ricks@intevation.de>
parents:
52
diff
changeset
|
232 return |
a25dab413260
Add new method to update a description of an entry in the database backend
Björn Ricks <bjoern.ricks@intevation.de>
parents:
52
diff
changeset
|
233 |
a25dab413260
Add new method to update a description of an entry in the database backend
Björn Ricks <bjoern.ricks@intevation.de>
parents:
52
diff
changeset
|
234 cur = None |
a25dab413260
Add new method to update a description of an entry in the database backend
Björn Ricks <bjoern.ricks@intevation.de>
parents:
52
diff
changeset
|
235 try: |
a25dab413260
Add new method to update a description of an entry in the database backend
Björn Ricks <bjoern.ricks@intevation.de>
parents:
52
diff
changeset
|
236 cur = self.con.cursor() |
a25dab413260
Add new method to update a description of an entry in the database backend
Björn Ricks <bjoern.ricks@intevation.de>
parents:
52
diff
changeset
|
237 cur.execute(UPDATE_ENTRY, (entry.desc, entry.id)) |
a25dab413260
Add new method to update a description of an entry in the database backend
Björn Ricks <bjoern.ricks@intevation.de>
parents:
52
diff
changeset
|
238 self.con.commit() |
a25dab413260
Add new method to update a description of an entry in the database backend
Björn Ricks <bjoern.ricks@intevation.de>
parents:
52
diff
changeset
|
239 logger.debug("Updated entry: '%s' (%d)" % (entry.desc, entry.id)) |
a25dab413260
Add new method to update a description of an entry in the database backend
Björn Ricks <bjoern.ricks@intevation.de>
parents:
52
diff
changeset
|
240 finally: |
a25dab413260
Add new method to update a description of an entry in the database backend
Björn Ricks <bjoern.ricks@intevation.de>
parents:
52
diff
changeset
|
241 close(cur) |
a25dab413260
Add new method to update a description of an entry in the database backend
Björn Ricks <bjoern.ricks@intevation.de>
parents:
52
diff
changeset
|
242 |
23
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
243 def close(cur): |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
244 """ This function closes a database cursor if it is existing """ |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
245 if cur: |
135
ce707fbb9666
Change coding style of if clauses
Björn Ricks <bjoern.ricks@intevation.de>
parents:
97
diff
changeset
|
246 try: |
ce707fbb9666
Change coding style of if clauses
Björn Ricks <bjoern.ricks@intevation.de>
parents:
97
diff
changeset
|
247 cur.close() |
23
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
248 except: |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
249 logger.warn("could not close database cursor.") |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
250 |
9c4e8ba3c4fa
Added a new implementation of 'getan' based on urwid, a python console user interface library.
Ingo Weinzierl <ingo_weinzierl@web.de>
parents:
diff
changeset
|
251 # vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8: |