fixed ru.po, up version to 0.3.1
[multilist] / src / multilistclasses / libsqldialog.py
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3   
4 """
5     This file is part of Multilist.
6
7     Multilist is free software: you can redistribute it and/or modify
8     it under the terms of the GNU General Public License as published by
9     the Free Software Foundation, either version 3 of the License, or
10     (at your option) any later version.
11
12     Multilist is distributed in the hope that it will be useful,
13     but WITHOUT ANY WARRANTY; without even the implied warranty of
14     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15     GNU General Public License for more details.
16
17     You should have received a copy of the GNU General Public License
18     along with Multilist.  If not, see <http://www.gnu.org/licenses/>.
19     
20     Copyright (C) 2008 Christoph Würstle
21 """
22
23 import gobject
24 import time
25 import string
26 import gtk
27 import sys
28 import logging
29
30 import libspeichern 
31  
32  
33 class sqlDialog(gtk.Dialog):
34         
35         def exportSQL(self,filename):
36                 f = open(filename, 'w')
37                 msgstring=""
38                 sql="SELECT pcdatum,sql,param FROM logtable WHERE pcdatum>? ORDER BY pcdatum DESC"
39                 rows=self.db.ladeSQL(sql,(time.time()-2*24*3600,))
40                 for row in rows:
41                         pcdatum,sql,param = row
42                         datum=str(time.strftime("%d.%m.%y %H:%M:%S ", (time.localtime(pcdatum))))
43                         f.write( datum +"\t" + sql + "\t\t" + param+ "\n")
44                         
45                         
46                 f.close()
47                 
48         
49         def __init__(self,db):
50                 self.db=db
51                 
52                 logging.info("sqldialog, init")
53                 
54                 gtk.Dialog.__init__(self,_("SQL History (the past two days):"),None,gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,(gtk.STOCK_OK, gtk.RESPONSE_ACCEPT))
55                 
56                 
57                 self.add_button(_("Export"), 444)
58                 self.set_position(gtk.WIN_POS_CENTER)
59                 
60                 
61                 self.liststore = gtk.ListStore(str, str, str)
62
63                 # create the TreeView using liststore
64                 self.treeview = gtk.TreeView(self.liststore)
65                 
66                 # create a CellRenderers to render the data
67                 self.cell1 = gtk.CellRendererText()
68                 self.cell2 = gtk.CellRendererText()
69                 self.cell3 = gtk.CellRendererText()
70                 #self.cell1.set_property('markup', 1)
71                 
72                 # create the TreeViewColumns to display the data
73                 self.tvcolumn1 = gtk.TreeViewColumn(_('Date'))
74                 self.tvcolumn2 = gtk.TreeViewColumn(_('SQL'))
75                 self.tvcolumn3 = gtk.TreeViewColumn(_('Parameter'))
76                 
77                 # add columns to treeview
78                 self.treeview.append_column(self.tvcolumn1)
79                 self.treeview.append_column(self.tvcolumn2)
80                 self.treeview.append_column(self.tvcolumn3)
81                 
82                 
83                 self.tvcolumn1.pack_start(self.cell1, True)
84                 self.tvcolumn2.pack_start(self.cell2, True)
85                 self.tvcolumn3.pack_start(self.cell3, True)
86                 
87                 self.tvcolumn1.set_attributes(self.cell1, text=0) #Spalten setzten hier!!!!
88                 self.tvcolumn2.set_attributes(self.cell2, text=1)
89                 self.tvcolumn3.set_attributes(self.cell3, text=2)
90
91                 # make treeview searchable
92                 #self.treeview.set_search_column(0)
93                 #self.tvcolumn.set_sort_column_id(0)
94                 
95                 # Allow NOT drag and drop reordering of rows
96                 self.treeview.set_reorderable(False)
97                 
98                 scrolled_window = gtk.ScrolledWindow()
99                 scrolled_window.set_policy(gtk.POLICY_AUTOMATIC,gtk.POLICY_AUTOMATIC)
100                 scrolled_window.add(self.treeview)
101                 #self.pack_start(scrolled_window, expand=True, fill=True, padding=0)
102                 
103                 
104                 self.vbox.pack_start(scrolled_window, True, True, 0)
105                 
106                 self.vbox.show_all()
107                 
108                 msgstring=""
109                 sql="SELECT pcdatum,sql,param FROM logtable WHERE pcdatum>? ORDER BY pcdatum DESC"
110                 rows=db.ladeSQL(sql,(time.time()-3*24*3600,))
111                 i=0
112                 for row in rows:
113                         pcdatum,sql,param = row
114                         datum=str(time.strftime("%d.%m.%y %H:%M:%S ", (time.localtime(pcdatum))))
115                         if len(param)>100:
116                                 param=param[:20]+_(" (Reduced parameter) ")+param[20:]
117                         self.liststore.append([datum, sql,param])
118                         i+=1
119                         if (i>50):
120                                 break
121                         
122                 self.set_size_request(500,400)
123                 
124                 
125