def on_delete_button_clicked(self, *args): itr = self.trvUser.get_selection().get_selected()[1] if not itr: return ins_user_base = self.lsr_user.get_value(itr, 0) try: self.ins_user_lg.delete_user_data(ins_user_base.int_user_id) except: raise ins_database.rollback() else: ins_database.commit() self.lsr_user.remove(itr) self.on_clear_button_clicked() pass pass
class UserGUI: def __init__(self, ): self.create_instances() self.get_widgets() self.connections() self.initialise_user() self.initialise_entry_completion() pass def create_instances(self, *args): self.ins_user_db = userDB.UserDB() self.ins_user_lg = userLG.UserLG() pass def get_widgets(self, *args): # Getting the widget from glade xml = gtk.glade.XML(os.path.join("wdwUser.glade")) self.topUser = xml.get_widget("wdwUser") self.trvUser = xml.get_widget("trvUser") self.etrUserName = xml.get_widget("etrUserName") self.etrNewPassword = xml.get_widget("etrNewPassword") self.etrOldPassword = xml.get_widget("etrOldPassword") self.etrConfirmPassword = xml.get_widget("etrConfirmPassword") self.cbeUserGroup = xml.get_widget("cbeUserGroup") self.btnAdd = xml.get_widget("btnAdd") self.btnUpdate = xml.get_widget("btnUpdate") self.btnDelete = xml.get_widget("btnDelete") self.btnClear = xml.get_widget("btnClear") self.btnClose = xml.get_widget("btnClose") pass def connections(self, *args): # Describing the events self.topUser.connect("delete_event", self.on_close_button_clicked) self.trvUser.connect("row_activated", self.on_user_tree_view_row_activated) self.trvUser.connect("cursor_changed", self.on_user_tree_view_cursor_changed) self.etrUserName.connect("activate", self.on_user_name_entry_activate) self.etrNewPassword.connect("activate", self.on_user_password_entry_activate) self.etrOldPassword.connect("activate", self.on_user_old_password_entry_activate) self.etrConfirmPassword.connect( "activate", self.on_user_confirm_password_entry_activate) self.cbeUserGroup.child.connect( "activate", self.on_user_group_combo_box_entry_activated) self.btnAdd.connect("clicked", self.on_add_button_clicked) self.btnUpdate.connect("clicked", self.on_update_button_clicked) self.btnDelete.connect("clicked", self.on_delete_button_clicked) self.btnClear.connect("clicked", self.on_clear_button_clicked) self.btnClose.connect("clicked", self.on_close_button_clicked) pass # Initialising list store to show data def initialise_user(self, *args): self.lsr_user = gtk.ListStore(object, str, str) self.trvUser.set_model(self.lsr_user) crt = gtk.CellRendererText() crt.set_property('xalign', 0.00) tvc = gtk.TreeViewColumn("User", crt, text=1) tvc.set_alignment(0.5) tvc.set_expand(False) tvc.set_resizable(True) self.trvUser.append_column(tvc) tvc.set_min_width(100) crt = gtk.CellRendererText() crt.set_property('xalign', 0.00) tvc = gtk.TreeViewColumn("Role", crt, text=2) tvc.set_alignment(0.5) tvc.set_expand(False) tvc.set_resizable(True) self.trvUser.append_column(tvc) tvc.set_min_width(100) pass # Initialise entry completion def initialise_entry_completion(self, *args): self.lsr_user_group = gtk.ListStore(str) self.cbeUserGroup.set_model(self.lsr_user_group) cmp_user_group = gtk.EntryCompletion() cmp_user_group.set_model(self.lsr_user_group) self.cbeUserGroup.child.set_completion(cmp_user_group) cmp_user_group.set_text_column(0) pass # Load user group data for entry completion def load_user_group_data(self, *args): self.lsr_user_group.clear() lst_user_group = ["ADMIN", "ACCOUNTANT", "CASHIER"] for str_group_name in lst_user_group: self.dct_user_group_name[str_group_name] = None itr = self.lsr_user_group.append() self.lsr_user_group.set(itr, 0, str_group_name) pass pass def initialise(self, *args): self.dct_user_group_name = {} self.lsr_user.clear() self.on_clear_button_clicked() self.etrUserName.grab_focus() pass # Show user window gui def show_window(self, *args): self.initialise() self.load_user_group_data() self.load_user_details() self.topUser.show_all() self.bln_hide = False pass def on_close_button_clicked(self, *args): self.topUser.hide() self.bln_hide = True return True def on_user_tree_view_row_activated(self, *args): itr = self.trvUser.get_selection().get_selected()[1] if not itr: return ins_user_base = self.lsr_user.get_value(itr, 0) self.set_user_group_data_to_widgets(ins_user_base) self.btnAdd.set_sensitive(False) self.btnUpdate.set_sensitive(True) self.btnDelete.set_sensitive(True) self.etrUserName.grab_focus() pass def set_user_group_data_to_widgets(self, ins_user_base): self.etrUserName.set_text(ins_user_base.str_user_name) self.cbeUserGroup.child.set_text(ins_user_base.str_role) pass def on_user_tree_view_cursor_changed(self, *args): self.on_clear_button_clicked() pass def on_user_name_entry_activate(self, *args): self.etrOldPassword.grab_focus() pass def on_user_password_entry_activate(self, *args): self.etrConfirmPassword.grab_focus() pass def on_user_old_password_entry_activate(self, *args): self.etrNewPassword.grab_focus() pass def on_user_confirm_password_entry_activate(self, *args): self.cbeUserGroup.grab_focus() pass def on_user_group_combo_box_entry_activated(self, *args): if self.btnAdd.get_sensitive(): self.btnAdd.grab_focus() pass else: self.btnUpdate.grab_focus() pass pass def on_add_button_clicked(self, *args): ins_user_base = userLG.UserBase() ins_user_base = self.get_input_data(ins_user_base) str_password = self.etrConfirmPassword.get_text() ins_user_base.str_created_by = 'admin' str_password = self.convert_password(str_password) ins_user_base.str_password = self.encryption_using_cipher_key( str_password) try: self.validate_input_data() except Exception, msg: print msg return itr = self.lsr_user.get_iter_root() # Need to check whether user is already added to grid while itr: ins_added_user_base = self.lsr_user.get_value(itr, 0) if ins_added_user_base.str_user_name.strip( ) == ins_user_base.str_user_name.strip(): self.trvUser.get_selection().select_iter(itr) print 'User added' return itr = self.lsr_user.iter_next(itr) pass try: int_user_id = self.ins_user_lg.insert_user_data(ins_user_base) except: ins_database.rollback() else: ins_database.commit() ins_user_base.int_user_id = int_user_id self.display_user_data_to_grid(ins_user_base) self.on_clear_button_clicked() pass pass
if ins_updating_user_base.str_user_name.strip().upper( ) == ins_user_base.str_user_name.strip().upper(): self.trvUser.get_selection().select_iter(itr_row) print 'User already exist' return pass itr_row = self.lsr_user.iter_next(itr_row) pass try: self.ins_user_lg.update_user_data(ins_user_base) except: raise ins_database.rollback() else: ins_database.commit() self.display_user_data_to_grid(ins_user_base, itr) self.on_clear_button_clicked() pass pass def on_delete_button_clicked(self, *args): itr = self.trvUser.get_selection().get_selected()[1] if not itr: return ins_user_base = self.lsr_user.get_value(itr, 0) try: self.ins_user_lg.delete_user_data(ins_user_base.int_user_id) except:
if ins_updating_user_base.str_user_name.strip().upper() == ins_user_base.str_user_name.strip().upper(): self.trvUser.get_selection().select_iter(itr_row) print 'User already exist' return pass itr_row = self.lsr_user.iter_next(itr_row) pass try: self.ins_user_lg.update_user_data(ins_user_base) except: raise ins_database.rollback() else: ins_database.commit() self.display_user_data_to_grid(ins_user_base, itr) self.on_clear_button_clicked() pass pass def on_delete_button_clicked(self, *args): itr = self.trvUser.get_selection().get_selected()[1] if not itr: return ins_user_base = self.lsr_user.get_value(itr, 0) try: self.ins_user_lg.delete_user_data(ins_user_base.int_user_id) except: