# HG changeset patch # User Miguel Ángel Bárcena Rodríguez # Date 1288563126 -3600 # Node ID 4e976a99efb97debd07f224c8673619211d1069f # Parent a221c14c3c31a5d839d89f9e2eecbaa5e4ab402c update ImportPriceDatabase diff -r a221c14c3c31 -r 4e976a99efb9 Gtk/gui.py --- a/Gtk/gui.py Sun Oct 31 21:01:48 2010 +0100 +++ b/Gtk/gui.py Sun Oct 31 23:12:06 2010 +0100 @@ -104,7 +104,6 @@ _menuitemOpenPriceDatabase(self, widget) _menuitemOpen _menuitemClose(self, widget) - _menuitemText(self, widget) _delete_event(self, widget, event) _destroy(self, widget) """ @@ -224,34 +223,6 @@ self.__notebook.append_page(_page.widget, _page.title) self.__page_list.append(_page) - def _testBudgetList2(self): - """def _testBudgetList2(self) - - Test if the number of budgets ("__budget_list") is greater - than the number of pages ("__page_list"), if it is greater - appendPage method is called to create a page to show the new budget - and save the budget in a durus file. - """ - if len(self.__budget_list) > len(self.__page_list): - self._appendPage() - #-# in test mode - # TODO: It must be in a thread - _last_budget = self.__budget_list[-1] - _path = globals.getHomePath("DURUS-DATABASE") - _file_whit_path_bc3 = _last_budget.filename - _filename_bc3 = _file_whit_path_bc3.split("/")[-1] - _filename = _filename_bc3.split(".")[-2] - _file = _path + _filename + ".durus" - print utils.mapping(_("Saving file: $1"), (_file,)) - _time = time.time() - _durus_file = durusdatabase.DurusFile(_file,True) - _durus_file.setBudget(_last_budget) - _durus_file.close() - print utils.mapping(_("Saving time: $1 seconds"), - (("%.2f" %(time.time()-_time) ),)) - #-# - return False - return True def _menuitemImportFiebdc(self, widget): """def _menuitemImportFiebdc(self, widget) @@ -268,9 +239,10 @@ _budget_file = fiebdc.Read() _read_method = _budget_file.readFile _filename = "file" + _filetype = "budget" _exit_method = _budget_file.cancel _file_window = importFiebdc.FileSelectionWindow(self, - _read_method, _budget, _filename, _exit_method) + _read_method, _budget, _filename, _exit_method, _filetype) def _menuitemImportPriceDatabase(self, widget): """def _menuitemImportPriceDatabase(self, widget) @@ -282,25 +254,21 @@ Creates and shows a window to open a budget file. """ - #TODO: change timeout, it is deprecated - #TODO: the .durus file must be direted saved - gobject.timeout_add(100, self._testBudgetList2) _budget = base.Budget() self.__budget_temp_list.append(_budget) _budget_file = fiebdc.Read() _read_method = _budget_file.readFile _filename = "file" + _filetype = "basedate" _exit_method = _budget_file.cancel _file_window = importFiebdc.FileSelectionWindow(self, - _read_method, _budget, _filename, _exit_method) + _read_method, _budget, _filename, _exit_method, _filetype) def _menuitemOpenPriceDatabase(self, widget): - """def _menuitemImportPriceDatabase(self, widget) + """def _menuitemOpenPriceDatabase(self, widget) widget: the widget where the event is emitted from Callback to open a budget file. - Inits a timeout to test if a budgets is appended to "__budget_list" - calling _testBudgetList method if it is true. Creates and shows a window to open a budget file. """ @@ -382,15 +350,16 @@ """ """ def __init__(self, mainWindow, readFileMethod, budget, filename, - cancelMethod): + cancelMethod, filetype): """def __init__(self, mainWindow, readFileMethod, budget, filename, - cancelMethod) + cancelMethod, filetype) """ self.__mainWindow = mainWindow self.__readFileMethod = readFileMethod self.__budget = budget self.__filename = filename + self.__filetype = filetype self.__cancelMethod = cancelMethod self.__children = None self.__cancel = [False, False] @@ -465,7 +434,7 @@ if self.__children is None: self.__children = importFiebdc.Thread(self, self.__mainWindow, self.__readFileMethod, self.__budget, self.__filename, - self.__cancelMethod) + self.__cancelMethod, self.__filetype) self.__children.start() def _launchTimeout(self): diff -r a221c14c3c31 -r 4e976a99efb9 Gtk/importFiebdc.py --- a/Gtk/importFiebdc.py Sun Oct 31 21:01:48 2010 +0100 +++ b/Gtk/importFiebdc.py Sun Oct 31 23:12:06 2010 +0100 @@ -30,8 +30,10 @@ import threading gobject.threads_init() +# pyArq-Presupuestos Modules from Generic import utils from Generic import globals +from Generic import durusdatabase import gui class FileSelectionWindow(object): @@ -40,8 +42,8 @@ Description: Class to show the selection file window Constructor: - importFiebdc.FileSelectionWindow(mainWindow, readFileMethod, - budget, arg_List, cancelMethod) + importFiebdc.FileSelectionWindow(mainWindow, readFileMethod, budget, + filename, cancelMethod, filetype) Ancestry: +-- object +-- FileSelectionWindow @@ -50,6 +52,7 @@ "__readFileMethod": Method to read the selected file "__budget": Budget object "__filename": "file" + "__filetype": "budget" or "database" "__cancelMethod": Method to cancel the read method "__file": The selected file "__window": The selection file window @@ -64,15 +67,16 @@ """ def __init__(self, mainWindow, readFileMethod, budget, filename, - cancelMethod): + cancelMethod, filetype): """def __init__(self, mainWindow, readFileMethod, budget, - filename, cancelMethod) + filename, cancelMethod, filetype) mainWindow: gui.MainWindow object readFileMethod: Method to read the selected file budget: base.Budget object filename: "file" cancelMethod: Method to cancel the read method + fileytpe: "budget" or "database" Sets the init atributes, creates the file selection window Connects the events: * clicked ok button: _openFile @@ -84,6 +88,7 @@ self.__readFileMethod = readFileMethod self.__budget = budget self.__filename = filename + self.__filetype = filetype self.__cancelMethod = cancelMethod self.__file = None self.__window = gtk.FileChooserDialog(title=_("Open File"), @@ -105,7 +110,7 @@ _emptyPage = gui.EmptyPage(self.__mainWindow, self.__readFileMethod, self.__budget, self.__filename, - self.__cancelMethod) + self.__cancelMethod, self.__filetype) self.__mainWindow.getNotebook().append_page(_emptyPage.widget, _emptyPage.title) self.__mainWindow.getPageList().append(_emptyPage) @@ -370,7 +375,7 @@ Thread class to read a file without freeze the gui Constructor: importFiebdc.Thread(page, mainWindow, - readFileMethod, arg_tuple, cancelMethod) + readFileMethod, budget, filename, cancelMethod, filetype) Ancestry: +--threading.Thread +-- importFiebdc.Thread @@ -378,8 +383,10 @@ "__page": The page instanca that launch the thread "__mainWindow": gui.MainWindow instance "__readFileMethod": Method to read the selected file - "__arg_tuple": ("file", base.Budget()) + "__budget + "__filename": "file" "__cancelMethod": Method to cancel the read method + "__filetype": "budget" or "database" "__cancel": Boolean value, True: the thread is stoped Methods: __init__(self, page, mainWindow, @@ -390,7 +397,7 @@ """ def __init__(self, page, mainWindow, - readFileMethod, budget, filename, cancelMethod): + readFileMethod, budget, filename, cancelMethod, filetype): """def __init__(self, page, mainWindow, readFileMethod, budget, filename, cancelMethod) @@ -400,6 +407,7 @@ budget: base.Budget object filename: "file" cancelMethod: Method to cancel the read method + feletype: "budget" or "basedate" Sets the instance atributes. """ super(Thread, self).__init__() @@ -409,6 +417,7 @@ self.__budget = budget self.__filename = filename self.__cancelMethod = cancelMethod + self.__filetype = filetype self.__cancel = False def run(self): @@ -424,7 +433,24 @@ _mainWindow = self.__mainWindow _mainWindow._addBudget(_result) self.__page.closeWindow() + + if self.__filetype == "basedate": + self.saveDurusDatabase() self.clear() + + def saveDurusDatabase(self): + _path = globals.getHomePath("DURUS-DATABASE") + _file_whit_path_bc3 = self.__budget.filename + _filename_bc3 = _file_whit_path_bc3.split("/")[-1] + _filename = _filename_bc3.split(".")[-2] + _file = _path + _filename + ".durus" + print utils.mapping(_("Saving file: $1"), (_file,)) + _time = time.time() + _durus_file = durusdatabase.DurusFile(_file,True) + _durus_file.setBudget(self.__budget) + _durus_file.close() + print utils.mapping(_("Saving time: $1 seconds"), + (("%.2f" %(time.time()-_time) ),)) def cancel(self): """cancel(self)