예제 #1
0
 def database_command(self, menuitem, name):
     if name == 'connect':
         if self.conn is None and not self.dialogs['dbname']:
             msg = 'connect to which database?'
             dbname = self.dblist.get_selected_data()[0].datname
             self.dialogs['dbname'] = dialogs.Entry(msg, name='dbname')
             entry = self.dialogs['dbname']
             entry.set_ok(self.ok_dialog)
             entry.set_cancel(self.destroy_dialog)
             entry.set(dbname)
         else:
             dialogs.Message('no multiple connections yet')
     elif name == 'disconnect':
         if self.conn is not None:
             self.main.close()
             self.conn.close()
             self.conn = None
             self.dbname = None
         else:
             dialogs.Message('no connection to leave')
     elif name in ['backup', 'restore']:
         filesel = FileSelection(title='%s database' % name)
         filesel.cancel_button.connect('clicked',
                                       lambda x: filesel.destroy())
         filesel.show()
         bkup_path = self.cfg['import_path']
         filesel.set_filename(self._filepath_(bkup_path))
         filesel.ok_button.connect('clicked', self.ok_file, filesel)
         filesel.set_data('action', name)
     else:
         dialogs.Message('%s unimplemented' % name)
예제 #2
0
 def ask_dialog(self, button, data):
     if not self.dialogs[data]:
         if data == 'create':
             self.dialogs[data] = dialogs.Entry('create family',
                                                name='create')
             self.dialogs[data].set_ok(self.create_family)
         self.dialogs[data].set_cancel(self.destroy_dialog)
예제 #3
0
 def trait_command(self, menuitem, action):
     traits = self._get_listbox('traits', 'trait')
     if action == 'drop':
         clause = In('trait', traits) & Eq('profile', self.current.profile)
         self.profiletrait.cmd.delete(clause=clause)
         self.__set_pages(self.current.profile)
     elif action == 'order':
         if not self.dialogs['order']:
             self.dialogs['order'] = dialogs.Entry('enter order',
                                                   name='order')
             self.dialogs['order'].set_ok(self.set_order)
             self.dialogs['order'].set_cancel(self.destroy_dialog)
예제 #4
0
 def ask_dialog(self, button, data):
     if not self.dialogs[data]:
         if data == 'create':
             self.dialogs[data] = dialogs.Entry('create profile',
                                                name='create')
             self.dialogs[data].set_ok(self.create_profile)
         elif data == 'copy':
             self.dialogs[data] = dialogs.CList('copy profile', name='copy')
             dialog = self.dialogs[data]
             dialog.set_rows(
                 self.profiles.select(fields='profile', order='profile'))
             dialog.set_ok(self.src_profile_selected)
         elif data == 'export':
             pdb = PaellaDatabase(self.conn)
             profiles = pdb.profiles
         self.dialogs[data].set_cancel(self.destroy_dialog)
예제 #5
0
 def pkey_command(self, menuitem, command):
     if command == 'insert':
         if self.dialogs['insert'] is None:
             dialog = dialogs.Entry('insert a %s' % self.pkey,
                                    name='insert')
             dialog.set_ok(self.pkey_insert_ok)
             dialog.set_cancel(self.destroy_dialog)
             self.dialogs['insert'] = dialog
     elif command == 'update':
         dialogs.Message('need to set update to cascade in db')
     elif command == 'done':
         value = None
         try:
             value = self.listbox.get_selected_data()[0][0]
         except IndexError:
             dialogs.Message('need to select %s first' % self.pkey)
         if value is not None:
             dialogs.Message('ok, i am done.')