Пример #1
0
    def prompt_delete(self, instance):
        self.pop_layout = FloatLayout(size=(Window.width, 200))
        self.del_popup = Popup(title='Delete Attribute',
                      content=self.pop_layout,
                      size_hint=(None,None),
                      size=(400,200),
                      background=BKGD_DCHRC,
                      pos_hint={"center_x":.5, 'top':.7},
                      auto_dismiss=False)

        self.pop_layout.add_widget(Label(text=("Delete Attribute?"),
                                   color=(1,1,1,1),
                                   pos_hint={'top':1.2, "center_x":.5},
                                   font_size=14))
                                   
        self.pop_layout.add_widget(HoverButton(text="Delete",
                            button_up=BTN_DCHRC[0],
                            button_down=BTN_DCHRC[1],
                            font_size=14,
                            size_hint=(None,None),
                            size=(100,40),
                            pos_hint={"center_x":.7, 'top':.35},
                            on_press=self.delete_label))
        self.pop_layout.add_widget(HoverButton(text="Cancel",
                            button_up=BTN_DCHRC[0],
                            button_down=BTN_DCHRC[1],
                            font_size=14,
                            size_hint=(None,None),
                            size=(100,40),
                            pos_hint={"center_x":.3, 'top':.35},
                            on_press=self.del_popup.dismiss))
        self.del_popup.open()
Пример #2
0
 def create_user_button(self):
     self.layout.add_widget(
         HoverButton(font_size=15,
                     text='Create User',
                     button_up=BTN_DCHRC[0],
                     button_down=BTN_DCHRC[1],
                     on_press=self.commit_create_user,
                     pos_hint={
                         "center_x": .66,
                         "top": .1
                     },
                     size_hint=(None, None),
                     size=(120, 40)))
     self.layout.add_widget(
         HoverButton(font_size=15,
                     text='Cancel',
                     button_up=BTN_DCHRC[0],
                     button_down=BTN_DCHRC[1],
                     on_press=self.dismiss,
                     pos_hint={
                         "center_x": .34,
                         "top": .1
                     },
                     size_hint=(None, None),
                     size=(120, 40)))
Пример #3
0
 def draw_layout(self):
     self.button_x = .5
     if manager.CURRENT_GROUP != None:
         self.button_x = .3
         self.dropdown = DropDown(auto_width=False, width=180, max_height=180)
         self.dropdown.main_button = HoverButton(text="Select User",
                                   size=(180,40),
                                   size_hint=(None,None),
                                   pos_hint={"center_x":.5, 'top':.8},
                                   button_down=DD_DCHRC[1],
                                   button_up=DD_DCHRC[0],
                                   on_release=self.dropdown.open)
         self.layout.add_widget(self.dropdown.main_button)
         self.remove_user_dropdown()
         
         self.layout.add_widget(HoverButton(text="Remove",
                             button_down=BTN_DCHRC[1],
                             button_up=BTN_DCHRC[0],
                             font_size=14,
                             size_hint=(None,None),
                             size=(100,40),
                             pos_hint={"center_x":.7, 'top':.35},
                             on_press=self.remove_from_group))
     else:
         self.layout.add_widget(Label(text="No Group Selected",
                             font_size=14,
                             pos_hint={"center_x":.5, 'top':1.2}))
     self.layout.add_widget(HoverButton(text="Cancel",
                         button_down=BTN_DCHRC[1],
                         button_up=BTN_DCHRC[0],
                         font_size=14,
                         size_hint=(None,None),
                         size=(100,40),
                         pos_hint={"center_x":self.button_x, 'top':.35},
                         on_press=self.dismiss))
Пример #4
0
 def draw_layout(self):
     self.layout.add_widget(Label(text=('Your admin password is currently set to \'admin\'.' + \
                                          '\nThis is insecure. Change admin password?'),
                                 halign='center',
                               pos_hint={"center_x":.5, 'top':1.25}))
     self.layout.add_widget(
         HoverButton(text="Change",
                     background_normal=BKGD_LCHRC,
                     font_size=14,
                     button_up=BTN_DCHRC[0],
                     button_down=BTN_DCHRC[1],
                     size_hint=(None, None),
                     size=(100, 40),
                     pos_hint={
                         "center_x": .65,
                         'top': .35
                     },
                     on_press=self.open_new_popup))
     self.layout.add_widget(
         HoverButton(text="Ignore",
                     button_up=BTN_DCHRC[0],
                     button_down=BTN_DCHRC[1],
                     font_size=14,
                     size_hint=(None, None),
                     size=(100, 40),
                     pos_hint={
                         "center_x": .35,
                         'top': .35
                     },
                     on_press=self.dismiss))
Пример #5
0
 def draw_layout(self):
     self.layout.add_widget(
         Label(text="Change Admin Password",
               pos_hint={
                   "center_x": .5,
                   'top': 1.25
               }))
     self.new_passwd = TextInput(size_hint=(.8, None),
                                 size=(0, 30),
                                 write_tab=False,
                                 pos_hint={
                                     'center_x': .5,
                                     'top': .878
                                 },
                                 password=True,
                                 hint_text='new password',
                                 multiline=False)
     self.verify_new_passwd = TextInput(size_hint=(.8, None),
                                        size=(0, 30),
                                        write_tab=False,
                                        pos_hint={
                                            'center_x': .5,
                                            'top': .62
                                        },
                                        password=True,
                                        hint_text='verify new password',
                                        multiline=False)
     self.layout.add_widget(self.new_passwd)
     self.layout.add_widget(self.verify_new_passwd)
     self.layout.add_widget(
         HoverButton(text="Confirm",
                     background_normal=BKGD_LCHRC,
                     font_size=14,
                     button_up=BTN_DCHRC[0],
                     button_down=BTN_DCHRC[1],
                     size_hint=(None, None),
                     size=(100, 40),
                     pos_hint={
                         "center_x": .65,
                         'top': .35
                     },
                     on_press=self.update_password))
     self.layout.add_widget(
         HoverButton(text="Cancel",
                     button_up=BTN_DCHRC[0],
                     button_down=BTN_DCHRC[1],
                     font_size=14,
                     size_hint=(None, None),
                     size=(100, 40),
                     pos_hint={
                         "center_x": .35,
                         'top': .35
                     },
                     on_press=self.dismiss))
Пример #6
0
 def modify_priority_dropdown(self):
     group_members = database.get_group_members(manager.CURRENT_GROUP)
     for user in group_members:
         member_button = HoverButton(text=user[0],
                                     button_up=DD_DCHRC[0],
                                     button_down=DD_DCHRC[1],
                                     font_size=12,
                                     size=(180, 30),
                                     size_hint=(None, None),
                                     on_release=self.select_user_to_mod)
         member_button.priority = user[1]
         self.dropdown.add_widget(member_button)
Пример #7
0
    def draw_dropdown(self, instance):
        self.dropdown.clear_widgets()
        btn = HoverButton(text='None',
                          size_hint_y=None,
                          height=30,
                          button_down=DD_DCHRC[1],
                          button_up=DD_DCHRC[0],
                          shorten=True,
                          text_size=(Window.width * .2, None),
                          halign='center')
        btn.bind(on_release=lambda btn: self.dropdown.select(btn.text))
        self.dropdown.add_widget(btn)

        for preset in manager.presets:
            btn = HoverButton(text=preset.name,
                              size_hint_y=None,
                              height=30,
                              button_down=DD_DCHRC[1],
                              button_up=DD_DCHRC[0],
                              shorten=True,
                              text_size=(Window.width * .2, None),
                              halign='center')
            btn.bind(on_release=lambda btn: self.dropdown.select(btn.text))
            self.dropdown.add_widget(btn)
        self.dropdown.open(self.dropdown.main_button)
Пример #8
0
 def create_search_filter(self):
     
     self.search_dropdown = DropDown(auto_width=False,
                                     max_height=180,
                                     on_dismiss=self.reactivate_buttons)
     filter_layout = FloatLayout(size=(80, 60))
     search_label = Label(text="Search Mode",
                          font_size=12,
                          pos_hint={'center_x':.5, 'top':1.35})
     self.search_mode = HoverButton(text="Username",
                                         font_size=12,
                                         size_hint=(None, None),
                                         size=(80,30),
                                         pos_hint={'right':1, 'center_y':.4},
                                         button_up=DD_LCHRC[0],
                                         button_down=DD_LCHRC[1],
                                         on_release=lambda instance: self.open_dropdown(instance,
                                                                             self.search_dropdown))
     self.search_mode.name_button = HoverButton(text="Username",
                                         font_size=12,
                                         button_up=DD_LCHRC[0],
                                         pos_hint={"right":1},
                                         button_down=DD_LCHRC[1],
                                         size_hint=(None,None),
                                         size=(100,30),
                                         on_release=self.switch_search_mode)
     self.search_mode.attr_button = HoverButton(text="Attr Name",
                                         font_size=12,
                                         button_up=DD_LCHRC[0],
                                         button_down=DD_LCHRC[1],
                                         size_hint=(None,None),
                                         size=(100,30),
                                         on_release=self.switch_search_mode)
     self.search_mode.val_button = HoverButton(text="Attr Value",
                                         font_size=12,
                                         button_up=DD_LCHRC[0],
                                         button_down=DD_LCHRC[1],
                                         size_hint=(None,None),
                                         size=(100,30),
                                         on_release=self.switch_search_mode)
     self.search_dropdown.add_widget(self.search_mode.name_button)
     self.search_dropdown.add_widget(self.search_mode.attr_button)
     self.search_dropdown.add_widget(self.search_mode.val_button)
     self.button_panel.add_widget(filter_layout)
     filter_layout.add_widget(self.search_mode)
     filter_layout.add_widget(search_label)
Пример #9
0
 def __init__(self, **kwargs):
     super(OptionsPanel, self).__init__(cols=1,
                         size_hint=(None, 1),
                         row_default_height=40,
                         row_force_default=True,
                         padding=[5,10],
                         spacing=[0,5],
                         size=(180, Window.height - 50),
                         **kwargs)
     with self.canvas.before:
         self.rect=Image(source=BKGD_DCHRC, allow_stretch=True,
                        keep_ratio=False)
     self.bind(pos=manager.update_rect, size=manager.update_rect)
     self.popups = Popups()
     self.change_pw = HoverButton(text="Change Password",
                                     font_size=15,                
                                     button_up=BTN_DCHRC[0],
                                     button_down=BTN_DCHRC[1],
                                     group='options',
                                     on_press=self.popups.change_password)
     self.new_user_attr = HoverButton(text='New Attribute',                
                                     button_up=BTN_DCHRC[0],
                                     button_down=BTN_DCHRC[1],
                                     group='options',
                                     on_press=lambda instance: manager.menu.add_new_label())
     self.delete_user = HoverButton(text="Delete User",                
                                     button_up=BTN_DCHRC[0],
                                     button_down=BTN_DCHRC[1],
                                     group='options',
                                     on_press=self.popups.verify_deletion)
     self.add_member = HoverButton(text="Add User",                
                                     button_up=BTN_DCHRC[0],
                                     button_down=BTN_DCHRC[1],
                                     group='options',
                                     on_press=self.popups.add_user_popup)
     self.change_priority = HoverButton(text="Edit User Priority",                
                                     button_up=BTN_DCHRC[0],
                                     button_down=BTN_DCHRC[1],
                                     group='options',
                                     on_press=self.popups.modify_priority_popup)
     self.remove_member = HoverButton(text="Remove User",                
                                     button_up=BTN_DCHRC[0],
                                     button_down=BTN_DCHRC[1],
                                     group='options',
                                     on_press=self.popups.remove_user_popup)
     self.new_group_attr = HoverButton(text="New Group Attribute",                
                                     button_up=BTN_DCHRC[0],
                                     button_down=BTN_DCHRC[1],
                                     group='options',
                                     on_press=lambda instance: manager.menu.add_new_label(True))
     self.delete_group = HoverButton(text="Delete Group",                
                                     button_up=BTN_DCHRC[0],
                                     button_down=BTN_DCHRC[1],
                                     group='options',
                                     on_press=self.popups.delete_group_popup)
Пример #10
0
 def create_add_group_button(self):
     self.button_panel.add_widget(HoverButton(text="Add New Group",
                     button_up=BTN_LCHRC[0],
                     button_down=BTN_LCHRC[1],
                     font_size=14,
                     size=(125,40),
                     size_hint=(None,None),
                     pos_hint={'center_x':.5, 'center_y':.5},
                     on_press=self.popups.open_new_group_popup))
Пример #11
0
 def create_admin_pw_button(self):
     self.settings.add_widget(HoverButton(text="Change Admin Password",
                                              button_up=DD_LCHRC[0],
                                              button_down=DD_LCHRC[1],
                                              font_size=12,
                                              size=(180,40),
                                              size_hint=(None,None),
                                              pos_hint={'right':1, 'right':1},
                                              on_press=self.popups.change_adminpw_popup))
Пример #12
0
 def create_logout_button(self):
     self.settings.add_widget(HoverButton(text="Logout",
                                              button_up=DD_LCHRC[0],
                                              button_down=DD_LCHRC[1],
                                              font_size=12,
                                              size=(180,40),
                                              size_hint=(None,None),
                                              pos_hint={'right':1, 'right':1},
                                              on_press=lambda instance: manager.logout(self.settings)))
Пример #13
0
 def remove_user_dropdown(self):
     self.group_members = database.get_group_members(manager.CURRENT_GROUP)
     for user in self.group_members:
         self.dropdown.add_widget(HoverButton(text=user[0],
                                          button_up=DD_DCHRC[0],
                                          button_down=DD_DCHRC[1],
                                          font_size=12,
                                          size=(180,30),
                                          size_hint=(None,None),
                                          on_release=self.select_user))
Пример #14
0
 def create_upload_file_button(self):
     def to_file_chooser(instance):
         self.settings.dismiss()
         self.popups.open_file_chooser(instance)
     self.settings.add_widget(HoverButton(text="Upload User File",
                                              button_up=DD_LCHRC[0],
                                              button_down=DD_LCHRC[1],
                                              font_size=12,
                                              size=(180,40),
                                              size_hint=(None,None),
                                              pos_hint={'right':1, 'right':1},
                                              on_press=to_file_chooser))
Пример #15
0
    def draw_layout(self):
        self.button_x = .5
        self.message = "No user currently selected"
        if manager.CURRENT_USER != None:
            self.message = "Are you sure you want to delete user " \
            + manager.CURRENT_USER + "?"
            self.button_x = .35

        self.layout.add_widget(
            Label(text=self.message, pos_hint={
                "center_x": .5,
                'top': 1.25
            }))
        self.layout.add_widget(
            HoverButton(text="Cancel",
                        button_down=BTN_DCHRC[1],
                        button_up=BTN_DCHRC[0],
                        font_size=14,
                        size_hint=(None, None),
                        size=(100, 40),
                        pos_hint={
                            "center_x": self.button_x,
                            'top': .35
                        },
                        on_press=self.dismiss))
        if manager.CURRENT_USER:
            self.layout.add_widget(
                HoverButton(text="Delete",
                            button_down=BTN_DCHRC[1],
                            button_up=BTN_DCHRC[0],
                            font_size=14,
                            size_hint=(None, None),
                            size=(100, 40),
                            pos_hint={
                                "center_x": .65,
                                'top': .35
                            },
                            on_press=self.delete_user))
Пример #16
0
 def draw_layout(self):
     self.file_choose = FileChooserListView(path='~/',
                                            pos_hint={'center_x':.5, 'top':1},
                                            filters=['*.txt'],
                                            on_submit=self.upload_file)
     self.layout.add_widget(self.file_choose)
     self.layout.add_widget(HoverButton(text="X",
                                        button_up=DD_DCHRC[0],
                                        button_down=DD_DCHRC[1],
                                        font_size = 15,
                                        size=(25,25),
                                        size_hint=(None,None),
                                        pos_hint={'right':1, 'top':1.12},
                                        on_press=self.dismiss))
Пример #17
0
 def draw_layout(self):
     self.dropdown = DropDown(auto_width=False,
                         width=180,
                         max_height=180,
                         on_dismiss=self.display_num_down)
     self.dropdown.main_button = HoverButton(text="Select Users",
                               size=(180,30),
                               size_hint=(None,None),
                               pos_hint={"center_x":.5, 'top':.65},
                               button_down=DD_DCHRC[1],
                               button_up=DD_DCHRC[0],
                               on_release=self.display_label)
     self.group_name = TextInput(size_hint=(None, None),
                                        size=(250, 30),
                                        pos_hint={'center_x':.5, 'top':.91},
                                        hint_text='Group Name', multiline=False)
     self.layout.add_widget(self.group_name)
     self.layout.add_widget(self.dropdown.main_button)
     self.add_group_dropdown()
     
     self.layout.add_widget(HoverButton(text="Add",
                             button_down=BTN_DCHRC[1],
                             button_up=BTN_DCHRC[0],
                             font_size=14,
                             size_hint=(None,None),
                             size=(100,40),
                             pos_hint={"center_x":.7, 'top':.35},
                             on_press=self.add_group))
     self.layout.add_widget(HoverButton(text="Cancel",
                             button_down=BTN_DCHRC[1],
                             button_up=BTN_DCHRC[0],
                             font_size=14,
                             size_hint=(None,None),
                             size=(100,40),
                             pos_hint={"center_x":.3, 'top':.35},
                             on_press=self.dismiss))
Пример #18
0
    def create_presets_menu_button(self):

        #Used by presets menu button to transition screens
        def to_preset_manager(instance):
            manager.sm.current = "presetMenu"
            self.settings.dismiss()
            
        self.settings.add_widget(HoverButton(text="User Presets Manager",
                                                 button_up=DD_LCHRC[0],
                                                 button_down=DD_LCHRC[1],
                                                 font_size=12,
                                                 size=(180,40),
                                                 size_hint=(None,None),
                                                 pos_hint={'right':1, 'right':1},
                                                 on_press=to_preset_manager))
Пример #19
0
 def create_settings_dropdown(self):
     self.settings = DropDown(auto_width=False,
                              width=180,
                              pos_hint={"right":1},
                              on_dismiss=self.reactivate_buttons)
     mainbutton = HoverButton(size=(60,60),size_hint=(None,None),
                          button_down=BTN_OPTS[1],
                          button_up=BTN_OPTS[0],
                          pos_hint={"center_y":.5},
                          on_release=lambda instance: self.open_dropdown(instance, self.settings))
     self.button_panel.add_widget(mainbutton)
     if manager.ADMIN:
         self.create_presets_menu_button()
         self.create_upload_file_button()
         self.create_admin_pw_button()
     self.create_logout_button()
Пример #20
0
 def create_dropdown(self):
     self.dropdown = DropDown()
     self.dropdown.main_button = HoverButton(text='Load Config Preset',
                                             size=(0, 40),
                                             size_hint=(.3, None),
                                             pos_hint={
                                                 'right': .95,
                                                 'top': .8
                                             },
                                             button_down=DD_DCHRC[1],
                                             button_up=DD_DCHRC[0],
                                             shorten=True,
                                             text_size=(Window.width * .2,
                                                        None),
                                             halign='center')
     self.dropdown.main_button.bind(on_release=self.draw_dropdown)
     self.dropdown.bind(
         on_select=lambda instance, x: self.dropdown_select(instance, x))
     self.layout.add_widget(self.dropdown.main_button)
Пример #21
0
    def draw_layout(self):
        self.button_x = .5
        if manager.CURRENT_GROUP != None:
            self.button_x = .3
            self.dropdown = DropDown(auto_width=False,
                                     width=180,
                                     max_height=180)
            self.dropdown.mainbutton = HoverButton(
                text="Select User",
                size=(180, 40),
                size_hint=(None, None),
                pos_hint={
                    "center_x": .4,
                    'top': .8
                },
                button_down=DD_DCHRC[1],
                button_up=DD_DCHRC[0],
                on_release=self.dropdown.open)
            self.layout.add_widget(self.dropdown.mainbutton)
            self.modify_priority_dropdown()
            self.layout.add_widget(
                Label(text="Priority",
                      color=(1, 1, 1, 1),
                      pos_hint={
                          'top': 1.3,
                          "center_x": .78
                      },
                      font_size=11))

            self.priority = TextInput(size_hint=(None, None),
                                      size=(50, 30),
                                      input_filter='int',
                                      multiline=False,
                                      pos_hint={
                                          'top': .73,
                                          "center_x": .78
                                      })
            self.layout.add_widget(self.priority)

            self.layout.add_widget(
                HoverButton(text="Change",
                            button_down=BTN_DCHRC[1],
                            button_up=BTN_DCHRC[0],
                            font_size=14,
                            size_hint=(None, None),
                            size=(100, 40),
                            pos_hint={
                                "center_x": .7,
                                'top': .35
                            },
                            on_press=self.commit_modify_priority))
        else:
            self.layout.add_widget(
                Label(text="No Group Selected",
                      font_size=14,
                      pos_hint={
                          "center_x": .5,
                          'top': 1.2
                      }))
        self.layout.add_widget(
            HoverButton(text="Cancel",
                        button_down=BTN_DCHRC[1],
                        button_up=BTN_DCHRC[0],
                        font_size=14,
                        size_hint=(None, None),
                        size=(100, 40),
                        pos_hint={
                            "center_x": self.button_x,
                            'top': .35
                        },
                        on_press=self.dismiss))
Пример #22
0
 def __init__(self, editable = True, attr_category = "radreply", group = False, **kwargs):
     super(EditableLabel, self).__init__(**kwargs)
     self.editable = editable
     self.group = group
     self.error_present = False
     self.current_attr = None
     self.attr_category = attr_category
     if self.text:
         attr_values = database.split_attributes(self.text)
         self.current_attr = Attribute(attr_values[0], attr_values[1], attr_values[2], self.attr_category)
     self.edit_button = HoverButton(button_up=BTN_EDIT[0],
                                   button_down=BTN_EDIT[1],
                                   size_hint=(None,None),
                                   size=(30,30),
                                   pos_hint={"center_y":.5},
                                   pos=(self.x + self.width, self.y),
                                   on_release=self.toggle_edit)
     self.confirm_button = HoverButton(button_up=BTN_CONFIRM[0],
                                   button_down=BTN_CONFIRM[1],
                                   size_hint=(None,None),
                                   size=(30,30),
                                   pos_hint={"center_y":.5},
                                   pos=(self.x + self.width, self.y),
                                   on_release=self.validate_button)
     self.delete_button = HoverButton(button_up=BTN_DELET[0],
                                   button_down=BTN_DELET[1],
                                   size_hint=(None,None),
                                   size=(30,30),
                                   pos_hint={"center_y":.5},
                                   pos=(self.x + self.width + 30, self.y),
                                   on_release=self.prompt_delete)
     self.clear_button = Button(text="x", size=(30, 30),
                                   background_normal=BTN_TRANSP[0],
                                   background_down=BTN_TRANSP[0],
                                   color=(150.0/255, 150.0/255, 150.0/255, 1),
                                   font_size=20,
                                   pos=(self.x + self.width - 30, self.y),
                                   on_press=self.clear_label)
     self.text_input = TextInput(text=self.text,
                                   size=self.size,
                                   size_hint=(None, None),
                                   font_size=self.font_size,
                                   font_name=self.font_name,
                                   pos=self.pos,
                                   multiline=False)
     self.dropdown = DropDown(auto_width=False,
                                   width=60,
                                   pos=(self.x - 60, self.y))
     category = "R"
     if self.attr_category == "radcheck":
         category = "C"
     if self.group:
         self.attr_category = self.determine_category(self.attr_category)
         
     self.drop_button = HoverButton(text=category,
                                   size=(60,30),
                                   size_hint=(None,None),
                                   button_up=DD_LCHRC[0],
                                   button_down=DD_LCHRC[1],
                                   font_size=12,
                                   pos=(self.x - 60, self.y),
                                   on_release=self.dropdown.open)
     self.rr_button = HoverButton(text="Reply",
                                   button_up=DD_DCHRC[0],
                                   button_down=DD_DCHRC[1],
                                   font_size=12,
                                   size=(60,30),
                                   size_hint=(None,None),
                                   on_press=self.select_rr)
     self.rc_button = HoverButton(text="Check",
                                   button_up=DD_DCHRC[0],
                                   button_down=DD_DCHRC[1],
                                   font_size=12,
                                   size=(60,30),
                                   size_hint=(None,None),
                                   on_press=self.select_rc)
     self.category_display = HoverButton(text=category,
                                   button_up=BKGD_CHRC,
                                   button_down=BKGD_CHRC,
                                   font_size=12,
                                   size=(60,30),
                                   pos=(self.x - 60, self.y),
                                   size_hint=(None,None))
     
     self.dropdown.add_widget(self.rr_button)
     self.dropdown.add_widget(self.rc_button)
                   
     self.bind(pos=self.text_input.setter('pos'), size=self.text_input.setter('size'))
     self.bind(pos=self.move_buttons)
     self.text_input.bind(on_text_validate=self.on_text_validate)
     if self.editable:
         self.add_widget(self.edit_button)
         self.add_widget(self.delete_button)
     self.add_widget(self.category_display)