def abrechnung(self, widget): TischNr = widget.id PopupFloatLayout = FloatLayout() self.ScreenmanagerPopup = CustomScreenManager() self.ScreenPopup = CustomScreen for x in xrange(4): self.ScreenmanagerPopup.add_widget(self.ScreenPopup(name='Screen %d' % x)) #popup = Popup(title='Abrechnung für ' + str(TischNr), # content=self.ScreenmanagerPopup,size_hint=(1, 1) ) popup = Popup(title='Abrechnung für Tisch' + str(TischNr), content=PopupFloatLayout)#, #size_hint=(1, 1), #pos_hint={'x': 0.5, 'y': 0.5} ) self.ScreenmanagerPopup.pos_hint = {'x': 0, 'y': 0} PopupFloatLayout.add_widget(self.ScreenmanagerPopup) ButtonExit = Button(text="Exit", pos_hint={'x': 0.8, 'y': 1.005}, size_hint = [0.2,0.065], on_release = popup.dismiss) PopupFloatLayout.add_widget(ButtonExit) popup.open()
class LoginScreen(FloatLayout): # x = ListProperty([]) # print x def __init__(self, **kwargs): super(LoginScreen, self).__init__(**kwargs) # gc.disable() self.DropdownObjects = [] self.add_widget( Label( text="Wilkommen [color=ff3333] [sub] bei der [/sub][/color][color=3333ff][b] Bonierungs[sup][color=#098125ff]App[/sup][/b][/color]", markup=True, pos_hint={"top": 1.2}, font_size="20sp", ) ) self.GridlayoutS1 = GridLayout(cols=2, size_hint_y=1 / 5, pos_hint={"top": 0.6}) self.add_widget(self.GridlayoutS1) self.GridlayoutS1.add_widget(Label(text="User Name")) # , size_hint_x = 0.2, size_hint_y = 0.2)) self.username = TextInput(multiline=False) # , size_hint_x = 0.2, size_hint_y = 0.2) self.username.bind(on_text_validate=self.on_enter) self.GridlayoutS1.add_widget(self.username) self.GridlayoutS1.add_widget(Label(text="password")) # ,size_hint_x = 0.2, size_hint_y = 0.2)) self.password = TextInput(password=True, multiline=False) # , size_hint_x = 0.2, size_hint_y = 0.2) self.GridlayoutS1.add_widget(self.password) self.BenutzerListe = {"": ""} self.add_widget( Button(text="Einloggen", size_hint_y=1 / 5, pos_hint={"top": 0.4}, on_release=self.AbfrageLogin) ) self.LabelLoginanzeiger = Label(size_hint_y=1 / 5) self.add_widget(self.LabelLoginanzeiger) def on_enter(self, instance): print ("User pressed enter in", instance) self.password.focus = True def AbfrageLogin(self, widget): Username = self.username.text Passwort = self.password.text if Username in self.BenutzerListe and Passwort == self.BenutzerListe[Username]: self.LabelLoginanzeiger.text = "Login korrekt" self.clear_widgets() self.HauptProgramm() else: self.LabelLoginanzeiger.text = "Login inkorrekt" def HauptProgramm(self, *args): print "das ist das Hauptprogramm" self.BilderListeVorlaeufer = [] self.BilderListeVorlaeufer = os.listdir(os.getcwd() + "/pictures") self.Pfade = [] for i in self.BilderListeVorlaeufer: Pfad = os.path.join("pictures", i) if os.path.isfile(Pfad) == True: self.Pfade.append(Pfad) self.HauptCarousel = Carousel(scroll_timeout=100) App.Pfade = self.Pfade self.add_widget(self.HauptCarousel) #################################################################################################### ### Erste Seite im HauptCarousel momentan mit den produktbildern self.HauptCarousel.FloatLayout = FloatLayout() self.HauptCarousel.add_widget(self.HauptCarousel.FloatLayout) self.HauptCarousel.FloatLayout.GridLayout = GridLayout(cols=3, pos_hint={"x": 0, "y": 0}, size_hint=[1, 0.9]) self.HauptCarousel.FloatLayout.add_widget(self.HauptCarousel.FloatLayout.GridLayout) for i in range(9): button = Button( background_normal=self.Pfade[i], background_down="bilder_oberflaeche/1361740537_Ball Green_mitHaken.png", mipmap=True, ) self.HauptCarousel.FloatLayout.GridLayout.add_widget(button) ## self.HauptCarousel.FloatLayout.GridLayout.add_widget(Button(text='test')) ## self.HauptCarousel.FloatLayout.GridLayout.add_widget(Button(text='test2')) ##################################################################################################### ### 2 Seite im Hauptcarousel mit testbutton zur datei Erstellung ### 2 Page in MainCarousel with testbutton for creating /exporting to a file self.HauptCarousel2 = BoxLayout(orientation="vertical") ###############self.HauptCarousel.add_widget(self.HauptCarousel2) self.HauptCarousel2.Texteingabe = TextInput(multiline=True) self.HauptCarousel2.add_widget(self.HauptCarousel2.Texteingabe) self.HauptCarousel2.ButtonSchreiben = Button(text="datei schreiben", on_release=self.datenpickeln) self.HauptCarousel2.add_widget(self.HauptCarousel2.ButtonSchreiben) ####################################################################### ### 3 Seite im Hauptcarousel momentan mit Datei Auslesefunktion ### 3 Page in MainCarousel atm with functionality to read from file self.HauptCarousel3 = BoxLayout(orientation="vertical") ######################self.HauptCarousel.add_widget(self.HauptCarousel3) self.HauptCarousel3.Textausgabe = TextInput(multiline=True, readonly=True) self.HauptCarousel3.add_widget(self.HauptCarousel3.Textausgabe) self.HauptCarousel3.ButtonLesen = Button(text="datei auslesen", on_release=self.datenentpickeln) self.HauptCarousel3.add_widget(self.HauptCarousel3.ButtonLesen) ####################################################################### ### 4 Seite im Hauptcarousel momentan mit Tischmanager ### 4 Page in Maincarousel atm with some kind of Table Manager BackgroundcolorListe = [(1, 0, 0, 1), (0, 1, 0, 1), (0, 0, 1, 1), (1, 1, 0, 1)] self.CustomLayout = CustomLayout() self.HauptCarousel.add_widget(self.CustomLayout) # self.CustomLayout.TopLabel = Label(text = 'Tisch[sup][color=#098125ff]Organizer[/sup][/b][/color]', markup = True, # halign= 'left', valign= 'top', text_size= self.size, pos_hint={'x':0, 'y': 0}, font_size= '30sp') self.CustomLayout.TopLabel = Label( text="Tisch[sup][color=#098125ff]Organizer[/sup][/b][/color]", markup=True, halign="left", font_size="30sp" ) # self.CustomLayout.add_widget(self.CustomLayout.TopLabel) self.CustomLayout.BoxLayout = BoxLayout( orientation="horizontal", size_hint=[1, 0.05], pos_hint={"x": 0, "y": 0.95} ) self.CustomLayout.add_widget(self.CustomLayout.BoxLayout) self.CustomLayout.BoxLayout.add_widget(self.CustomLayout.TopLabel) ButtonMenu1 = self.DropdownbuttonCreator() self.CustomLayout.BoxLayout.Button1 = ButtonMenu1 ## self.CustomLayout.BoxLayout.Button2 = Button(text = 'Tisch+' , on_release = self.tischhinzufuegen) ## self.CustomLayout.BoxLayout.Button3 = Button(text = 'Spalte+', on_release = self.spaltehinzufuegen) ## self.CustomLayout.BoxLayout.Button4 = Button(text = 'Zeile+', on_release = self.zeilehinzufuegen) self.CustomLayout.BoxLayout.add_widget(self.CustomLayout.BoxLayout.Button1) ## self.CustomLayout.BoxLayout.add_widget(self.CustomLayout.BoxLayout.Button2) ## self.CustomLayout.BoxLayout.add_widget(self.CustomLayout.BoxLayout.Button3) ## self.CustomLayout.BoxLayout.add_widget(self.CustomLayout.BoxLayout.Button4) self.CustomLayoutGridLayout = GridLayout( cols=3, rows=4, padding=[20, 20], spacing=[30, 30], size_hint=[1, 0.95], pos_hint={"x": 0, "y": 0} ) # cGridLayout = StackLayout(orientation = "tb-lr", padding = [20,20], spacing = [30,30], size_hint = [1,0.9], pos_hint={'x':0, 'y': 0}) self.CustomLayout.add_widget(self.CustomLayoutGridLayout) self.Tischliste = [] Auswahlliste = ["Bestellung", "Abrechnung", "Best. Aendern", "Bennenen"] AnzahlTische = 12 Zielwidget = self.CustomLayoutGridLayout self.tischerstellung(Zielwidget, AnzahlTische, Auswahlliste, BackgroundcolorListe) self.ProduktOrganizerInstanz = ProduktOrganizer() self.HauptCarousel.add_widget(self.ProduktOrganizerInstanz) ButtonHinzufuegen = self.ProduktOrganizerInstanz.ids.ProduktlisteButtonHinzufuegen ButtonHinzufuegen.on_release = self.produkthinzufuegen self.PopupInst = PopupBildAuswaehlenProduktorganizer() popup = self.PopupInst.ids.a self.ProduktOrganizerInstanz.ids.ProduktBildAuswaehlen.on_release = popup.open self.CustomScrollviewProduktOrganizer = CustomScrollviewProduktOrganizer self.CustomScrollviewProduktOrganizerInstanz = CustomScrollviewProduktOrganizer() self.ProduktOrganizerItemInstanz = CustomScrollviewItem() self.ProduktOrganizerInstanz.add_widget(Button(text="test", on_release=self.listeaktualisieren)) # self.ProduktOrganizerInstanz.ids.ProduktlisteButtonHinzufuegen.on_release = self.listeaktualisieren self.ProduktOrganizerInstanz.add_widget(Button(text="manuell", on_release=self.itemmanuellhinzufuegen)) self.ProduktOrganizerInstanz.add_widget(Button(text="listeaktualisiern+pos", on_release=self.positionenzeigen)) def itemmanuellhinzufuegen(self, widget): self.CustomScrollviewProduktOrganizerInstanz = CustomScrollviewProduktOrganizer() # print dir(self.CustomScrollviewProduktOrganizerInstanz.ids.content2.children) self.CustomScrollviewProduktOrganizerInstanz.ids.content2.clear_widgets() self.testButtonx = Button(text="testbutton", size_hint=(1, 1)) # self.CustomScrollviewProduktOrganizerInstanz.ids.content2.add_widget(self.testButtonx) # print dir(self.CustomScrollviewProduktOrganizerInstanz.ids) def positionenzeigen(self, widget): # print self.testButtonx.pos # print self.testButtonx.size self.listeaktualisieren(self) def listeaktualisieren(self, widget): # print 'listeacktualisieren wurde ausgefuert' # self.CustomScrollviewProduktOrganizer = CustomScrollviewProduktOrganizer() # print [str(i) for i in range(30)] # self.CustomScrollviewProduktOrganizerInstanz.data = ['0','1','2','3','4'] self.CustomScrollviewProduktOrganizerInstanz.data = [str(i) for i in App.HauptListeDictonaries] # print dir(self.CustomScrollviewProduktOrganizer.children)#content2.clear_widgets() def produkthinzufuegen(self): NeuesDict = {} WertEingabeFeldBezeichnung = self.ProduktOrganizerInstanz.ids.EingabeFeldBezeichnung.text WertEingabeFeldPreis = self.ProduktOrganizerInstanz.ids.EingabeFeldPreis.text ## StatusCheckBoxVerkauf = self.ProduktOrganizerInstanz.ids.CheckBoxVerkauf.active WertSpinnerKategorie = self.ProduktOrganizerInstanz.ids.SpinnerKategorie.text filechooser = self.PopupInst.ids.filechooser DateiAuswahl = (str(filechooser.selection))[((str(filechooser.selection)).find("/pictures")) : -2] # print 'hallo', WertEingabeFeldBezeichnung, WertEingabeFeldPreis,DateiAuswahl,WertSpinnerKategorie NeuesDict = { "Bezeichnung": WertEingabeFeldBezeichnung, "Preis": WertEingabeFeldPreis, "Bild": DateiAuswahl, "Kategorie": WertSpinnerKategorie, } # print 'len(App.HauptListeDictonaries)', (len(App.HauptListeDictonaries)) if len(App.HauptListeDictonaries) < 1: App.HauptListeDictonaries.append(NeuesDict) print "Fall 1" else: for i in range(len(App.HauptListeDictonaries[:])): print "App.HauptListeDictonaries[i][Bezeichnung] ist", App.HauptListeDictonaries[i]["Bezeichnung"] Bezeichnungdict = str(App.HauptListeDictonaries[i]["Bezeichnung"]) Bezeichnungneuesdict = str(NeuesDict["Bezeichnung"]) if Bezeichnungdict == Bezeichnungneuesdict: Treffer = True break else: Treffer = False if Treffer == True: # print 'Dieses Produkt existiert schon' ButtonVerstanden = Button(text="Verstanden") popup = Popup( title="Dieses Produkt existiert bereits ", size_hint=(0.5, 0.25), content=ButtonVerstanden ) popup.open() ButtonVerstanden.on_release = popup.dismiss else: App.HauptListeDictonaries.append(NeuesDict) print len(App.HauptListeDictonaries) for index, item in enumerate(App.HauptListeDictonaries): print index, item def DropdownbuttonCreator(self): Auswahlliste = ["Tisch +", "Tisch -", "Spalte + ", "Spalte -", "Reihe + ", "Reihe -"] BackgroundcolorListe = [(0, 1, 0, 1), (1, 0, 0, 1), (0, 1, 0, 1), (1, 0, 0, 1), (0, 1, 0, 1), (1, 0, 0, 1)] Aktionsliste = [ self.tischhinzufuegen, self.tischentfernen, self.spaltehinzufuegen, self.spalteentfernen, self.zeilehinzufuegen, self.zeileentfernen, ] DropdownObjekt = CustomDropDown() DropdownObjektButton = CustomButton( text="Menue", # DropdownObjektButton = ToggleButton(text="Menue", size_hint=[1, 1], background_color=(0.8, 0.8, 0.00, 1), background_normal="bilder_oberflaeche/white2.png", background_down="bilder_oberflaeche/white3.png", ) # self.CustomLayout.add_widget(DropdownObjektButton) DropdownObjektButton.bind(on_release=DropdownObjekt.open) self.DropdownObjects.append(DropdownObjekt) for x in range(len(Auswahlliste)): DropdownUnterbutton = Button( text=Auswahlliste[x], font_size=15, size_hint_y=None, height=60, background_color=BackgroundcolorListe[x], background_normal="bilder_oberflaeche/white2.png", background_down="bilder_oberflaeche/white3.png", opacity=0.8, on_release=Aktionsliste[x], ) DropdownObjekt.add_widget(DropdownUnterbutton) ButtonMenu1 = DropdownObjektButton return ButtonMenu1 def tischerstellung(self, Zielwidget, AnzahlTische, Auswahlliste, BackgroundcolorListe): Auswahlliste = ["Bestellung", "Abrechnung", "Best. Aendern", "Bennenen"] BackgroundcolorListe = [(1, 0, 0, 1), (0, 1, 0, 1), (0, 0, 1, 1), (1, 1, 0, 1)] Aktionsliste = [self.bestellung, self.abrechnung, self.bestellungaendern, self.tischbenennen] # self.DropdownObjects = [] for i in range(AnzahlTische): if self.Tischliste != []: LetzterTisch = self.Tischliste[-1]["Nummer"] ## print LetzterTisch + 1 else: LetzterTisch = 0 TischNr = str(LetzterTisch + 1) TischButtonText = "T " + TischNr DropdownObjekt = CustomDropDown() # von kovak hinzugefuegt # DropdownObjektButton = CustomButton(text = TischButtonText, DropdownObjektButton = ToggleButton( text=TischButtonText, group="Tische", background_normal="bilder_oberflaeche/white2.png", background_down="bilder_oberflaeche/white4.png", background_color=(0.79, 0.39, 0.09, 0.6), ) Zielwidget.add_widget(DropdownObjektButton) DropdownObjektButton.bind(on_release=DropdownObjekt.open) self.DropdownObjects.append(DropdownObjekt) # von kovak hinzugefuegt for x in range(len(Auswahlliste)): DropdownUnterbutton = Button( text=Auswahlliste[x], id=TischNr, # auto_width='False', # width = '200sp', font_size=15, size_hint_y=None, height=60, background_normal="bilder_oberflaeche/white2.png", background_down="bilder_oberflaeche/white3.png", background_color=BackgroundcolorListe[x], on_release=Aktionsliste[x], ) DropdownObjekt.add_widget(DropdownUnterbutton) # print' button', i, 'unterbutton', x DropdownObjektButton.text = TischButtonText self.TischButtondict = {"Nummer": (LetzterTisch + 1), "Objekt": DropdownObjektButton} self.Tischliste.append(self.TischButtondict) def garbagecollectortracking(self, widget): for i in self.Tischliste: a = i print gc.is_tracked(a) ### function for Editing a Table####################################### # def tischmanipulieren(self, widget): # widget.text = 'mein text' #### function for adding an extra table to layout ########################## def tischhinzufuegen(self, widget): if len(self.Tischliste) >= 1: if hasattr(self, "CustomLayoutBottomLabel"): self.CustomLayout.remove_widget(self.CustomLayoutBottomLabel) AnzahlTische = 1 Zielwidget = self.CustomLayoutGridLayout Auswahlliste = ["Bestellung", "Abrechnung", "Best. Aendern", "Bennenen"] BackgroundcolorListe = [(1, 0, 0, 1), (0, 1, 0, 1), (0, 0, 1, 1), (1, 1, 0, 1)] LetzterTisch = self.Tischliste[-1]["Nummer"] if (self.CustomLayoutGridLayout.cols * self.CustomLayoutGridLayout.rows) <= (LetzterTisch + 1): self.CustomLayoutGridLayout.rows = self.CustomLayoutGridLayout.rows + 1 self.tischerstellung(Zielwidget, AnzahlTische, Auswahlliste, BackgroundcolorListe) def tischentfernen(self, widget): self.Warnlabel = 0 if len(self.Tischliste) <= 1: if hasattr(self, "CustomLayoutBottomLabel"): # obj.attr_name exists. if self.CustomLayoutBottomLabel in self.CustomLayout.children: self.Warnlabel = 1 print "das ist der Letzte Tisch, der kann nicht entfernt werden" if self.Warnlabel == 0: self.CustomLayoutBottomLabel = Label( text="Das ist der Letzte Tisch,\n der kann nicht \n entfernt werden", text_size=self.size ) self.CustomLayout.add_widget(self.CustomLayoutBottomLabel) else: Zielwidget = self.CustomLayoutGridLayout Zielwidget.remove_widget(self.Tischliste[-1]["Objekt"]) del self.Tischliste[-1] LetzterTisch = self.Tischliste[-1]["Nummer"] print "die anzahl der Tische ist nun:", LetzterTisch pass #### function for adding a column to layout #################################### def spaltehinzufuegen(self, widget): if self.CustomLayoutGridLayout.cols >= 1: if hasattr(self, "CustomLayoutBottomLabel"): self.CustomLayout.remove_widget(self.CustomLayoutBottomLabel) self.WarnLabel = 0 self.CustomLayoutGridLayout.cols = self.CustomLayoutGridLayout.cols + 1 print "Zeile hinzufuegen" def spalteentfernen(self, widget): self.Warnlabel = 0 if self.CustomLayoutGridLayout.cols <= 1: if hasattr(self, "CustomLayoutBottomLabel"): # obj.attr_name exists. if self.CustomLayoutBottomLabel in self.CustomLayout.children: self.Warnlabel = 1 print "das ist die letzte Tischreihe, sie kann nicht entfernt werden" if self.Warnlabel == 0: self.CustomLayoutBottomLabel = Label( text="Das ist die letzte Tischreihe,\n sie kann nicht \n entfernt werden", text_size=self.size ) self.CustomLayout.add_widget(self.CustomLayoutBottomLabel) else: TischanzahlVerbleibend = (self.CustomLayoutGridLayout.cols - 1) * self.CustomLayoutGridLayout.rows for i in range(len(self.Tischliste[TischanzahlVerbleibend:])): self.CustomLayoutGridLayout.remove_widget(self.Tischliste[TischanzahlVerbleibend + i]["Objekt"]) del self.Tischliste[TischanzahlVerbleibend:] self.CustomLayoutGridLayout.cols = self.CustomLayoutGridLayout.cols - 1 #### function for adding a row to layout #################################### def zeilehinzufuegen(self, widget): if self.CustomLayoutGridLayout.rows >= 1: if hasattr(self, "CustomLayoutBottomLabel"): self.CustomLayout.remove_widget(self.CustomLayoutBottomLabel) self.WarnLabel = 0 self.CustomLayoutGridLayout.rows = self.CustomLayoutGridLayout.rows + 1 print "Zeile hinzufuegen" def zeileentfernen(self, widget): self.Warnlabel = 0 if self.CustomLayoutGridLayout.rows <= 1: if hasattr(self, "CustomLayoutBottomLabel"): # obj.attr_name exists. if self.CustomLayoutBottomLabel in self.CustomLayout.children: self.Warnlabel = 1 print "das ist die letzte Tischreihe, sie kann nicht entfernt werden" if self.Warnlabel == 0: self.CustomLayoutBottomLabel = Label( text="Das ist die letzte Tischreihe,\n sie kann nicht \n entfernt werden", text_size=self.size ) self.CustomLayout.add_widget(self.CustomLayoutBottomLabel) else: TischanzahlVerbleibend = (self.CustomLayoutGridLayout.rows - 1) * self.CustomLayoutGridLayout.cols for i in range(len(self.Tischliste[TischanzahlVerbleibend:])): self.CustomLayoutGridLayout.remove_widget(self.Tischliste[TischanzahlVerbleibend + i]["Objekt"]) del self.Tischliste[TischanzahlVerbleibend:] self.CustomLayoutGridLayout.rows = self.CustomLayoutGridLayout.rows - 1 def bestellung(self, widget): TischNr = widget.id PopupFloatLayout = FloatLayout(size_hint=(1, 1)) self.PopupScrollview = CustomScrollviewPopupContent() self.PopupScrollviewItem = CustomButton2() self.PopupScrollview.data = [str(i) for i in range(10)] # content = self.PopupScrollview.ids.content # item = self.PopupScrollviewItem popup = Popup(title="Bestellung für Tisch " + str(TischNr), content=PopupFloatLayout) ## for i in range(9): ## content.add_widget(CustomButton(text = str(i))) # self.PopupScrollview.ids.CSPopup.open() # print dir(CustomScrollviewPopupContent.data) ButtonExit = Button( text="Exit", pos_hint={"x": 0.825, "y": 1.005}, size_hint=[0.2, 0.065], on_release=popup.dismiss ) PopupFloatLayout.add_widget(ButtonExit) self.PopupScrollview.size_hint = [1.05, 1.017] self.PopupScrollview.center = popup.center PopupFloatLayout.add_widget(self.PopupScrollview) self.PopupScrollview.ids.populate.on_release = self.kasse popup.open() ## ## def on_data(self, instance, value): ## content_add = self.PopupScrollview.ids.content.add_widget ## for item in value: ## print item ## content_add(CustomButton2(text=item)) # return CustomScrollviewPopupContent() def kasse(self): self.PopupScrollview.data = [str(i) for i in range(30)] # print dir(CustomScrollviewPopupContent().ids.viewitems) # y.ids.content.clear_widgets() ## x.data = ListProperty([str(i) for i in range(10)]) ## print 'x.data', x.data ## ## print CustomScrollviewPopupContent.data ## CustomScrollviewPopupContent.data = x.data ## print '2ens', CustomScrollviewPopupContent.data def groesse(self, widget): print "die buttongroesse ist:", widget.size def abrechnung(self, widget): TischNr = widget.id PopupFloatLayout = FloatLayout() self.ScreenmanagerPopup = CustomScreenManager() self.ScreenPopup = CustomScreen for x in xrange(4): self.ScreenmanagerPopup.add_widget(self.ScreenPopup(name="Screen %d" % x)) # popup = Popup(title='Abrechnung für ' + str(TischNr), # content=self.ScreenmanagerPopup,size_hint=(1, 1) ) popup = Popup(title="Abrechnung für Tisch" + str(TischNr), content=PopupFloatLayout) # , # size_hint=(1, 1), # pos_hint={'x': 0.5, 'y': 0.5} ) self.ScreenmanagerPopup.pos_hint = {"x": 0, "y": 0} PopupFloatLayout.add_widget(self.ScreenmanagerPopup) ButtonExit = Button( text="Exit", pos_hint={"x": 0.8, "y": 1.005}, size_hint=[0.2, 0.065], on_release=popup.dismiss ) PopupFloatLayout.add_widget(ButtonExit) popup.open() def bestellungaendern(self, widget): pass def tischbenennen(self, widget): TischNr = widget.id PopupBox1LayoutTischBennenen = BoxLayout(orientation="vertical") popup = Popup( title="Tisch Nr. " + str(TischNr) + "benennen", content=PopupBox1LayoutTischBennenen, size_hint=(0.75, 0.5) ) EingabeTextfeld = TextInput(text="hier Tischbezeichnung eintragen - Funktion muss noch eingebaut werden") PopupBox1LayoutTischBennenen.add_widget(EingabeTextfeld) PopupBoxLayoutTischBenennen = BoxLayout(orientation="horizontal", size_hint=(1, 1)) ButtonAbbrechenTischBenennen = Button(text="Abbrechen", size_hint=(0.5, 0.5)) ButtonAbbrechenTischBenennen.bind(on_press=popup.dismiss) ButtonOkTischBenennen = Button(text="OK", size_hint=(0.5, 0.5)) ButtonOkTischBenennen.bind(on_press=popup.dismiss) PopupBox1LayoutTischBennenen.add_widget(PopupBoxLayoutTischBenennen) PopupBoxLayoutTischBenennen.add_widget(ButtonAbbrechenTischBenennen) PopupBoxLayoutTischBenennen.add_widget(ButtonOkTischBenennen) # popup.add_widget popup.open() pass #### function for exporting Data to file #################################### def datenpickeln(self, widget): BonListe = self.HauptCarousel2.Texteingabe.text """function to pickle data to make it ready for sending""" try: with open("bonliste.txt", "w+b") as BonListeDaten_File: pickle.dump(BonListe, BonListeDaten_File) except IOError as err: print ("Dateifehler: " + str(err)) except pickle.PickleError as perr: print ("Pickling Fehler: " + str(perr)) #### function for importing Data to file #################################### def datenentpickeln(self, widget): with open("bonliste.txt", "rb") as BonListeDaten_File_entpickelt: BonListeWiederhergestellt = pickle.load(BonListeDaten_File_entpickelt) print "die entpickelte BinListe ist: " print BonListeWiederhergestellt BonListe = BonListeWiederhergestellt self.HauptCarousel3.Textausgabe.text = BonListe
class LoginScreen(FloatLayout): #x = ListProperty([]) #print x def __init__(self, **kwargs): super(LoginScreen, self).__init__(**kwargs) #gc.disable() self.DropdownObjects = [] self.add_widget(Label(text= "Wilkommen [color=ff3333] [sub] bei der [/sub][/color][color=3333ff][b] Bonierungs[sup][color=#098125ff]App[/sup][/b][/color]", markup = True, pos_hint={'top': 1.2}, font_size='20sp')) self.GridlayoutS1 = GridLayout(cols = 2, size_hint_y = 1/5, pos_hint={'top': 0.6}) self.add_widget(self.GridlayoutS1) self.GridlayoutS1.add_widget(Label(text='User Name')) #, size_hint_x = 0.2, size_hint_y = 0.2)) self.username = TextInput(multiline=False) #, size_hint_x = 0.2, size_hint_y = 0.2) self.username.bind(on_text_validate=self.on_enter) self.GridlayoutS1.add_widget(self.username) self.GridlayoutS1.add_widget(Label(text='password')) #,size_hint_x = 0.2, size_hint_y = 0.2)) self.password = TextInput(password=True, multiline=False) #, size_hint_x = 0.2, size_hint_y = 0.2) self.GridlayoutS1.add_widget(self.password) self.BenutzerListe = {"": ""}; self.add_widget(Button(text='Einloggen', size_hint_y= 1/5, pos_hint={'top': 0.4}, on_release = self.AbfrageLogin)) self.LabelLoginanzeiger = Label(size_hint_y= 1/5) self.add_widget(self.LabelLoginanzeiger) def on_enter(self, instance): print('User pressed enter in', instance) self.password.focus = True def AbfrageLogin(self, widget): Username = self.username.text Passwort = self.password.text if Username in self.BenutzerListe and Passwort == self.BenutzerListe[Username]: self.LabelLoginanzeiger.text = 'Login korrekt' self.clear_widgets() self.HauptProgramm() else: self.LabelLoginanzeiger.text = 'Login inkorrekt' def HauptProgramm(self, *args): self.SpinnerButtonZustand = 'Alle' App.AuswahlHauptlisteAlt = [] print 'das ist das Hauptprogramm' self.BilderListeVorlaeufer = [] self.BilderListeVorlaeufer = os.listdir(os.getcwd() + '/pictures') self.Pfade = [] for i in self.BilderListeVorlaeufer: Pfad = os.path.join('pictures', i) if os.path.isfile(Pfad) == True: self.Pfade.append(Pfad) self.HauptCarousel = Carousel(scroll_timeout = 100) App.Pfade = self.Pfade self.add_widget(self.HauptCarousel) #################################################################################################### ### Erste Seite im HauptCarousel momentan mit den produktbildern self.HauptCarousel.FloatLayout = FloatLayout() self.HauptCarousel.add_widget(self.HauptCarousel.FloatLayout) self.HauptCarousel.FloatLayout.GridLayout = GridLayout(cols=3, pos_hint={'x': 0,'y': 0}, size_hint=[1,0.9]) self.HauptCarousel.FloatLayout.add_widget(self.HauptCarousel.FloatLayout.GridLayout) for i in range(2): button = Button(background_normal = self.Pfade[i], background_down= 'bilder_oberflaeche/1361740537_Ball Green_mitHaken.png', mipmap= True) self.HauptCarousel.FloatLayout.GridLayout.add_widget(button) ## self.HauptCarousel.FloatLayout.GridLayout.add_widget(Button(text='test')) ## self.HauptCarousel.FloatLayout.GridLayout.add_widget(Button(text='test2')) ##################################################################################################### ### 2 Seite im Hauptcarousel mit testbutton zur datei Erstellung ### 2 Page in MainCarousel with testbutton for creating /exporting to a file self.HauptCarousel2 = BoxLayout(orientation='vertical') ###self.HauptCarousel.add_widget(self.HauptCarousel2) self.HauptCarousel2.Texteingabe = TextInput(multiline=True) self.HauptCarousel2.add_widget(self.HauptCarousel2.Texteingabe) self.HauptCarousel2.ButtonSchreiben = Button(text="datei schreiben", on_release = self.datenpickeln) self.HauptCarousel2.add_widget(self.HauptCarousel2.ButtonSchreiben) ####################################################################### ### 3 Seite im Hauptcarousel momentan mit Datei Auslesefunktion ### 3 Page in MainCarousel atm with functionality to read from file self.HauptCarousel3 = BoxLayout(orientation='vertical') ###self.HauptCarousel.add_widget(self.HauptCarousel3) self.HauptCarousel3.Textausgabe = TextInput(multiline=True, readonly = True) self.HauptCarousel3.add_widget(self.HauptCarousel3.Textausgabe) self.HauptCarousel3.ButtonLesen = Button(text="datei auslesen", on_release = self.datenentpickeln) self.HauptCarousel3.add_widget(self.HauptCarousel3.ButtonLesen) ####################################################################### ### 4 Seite im Hauptcarousel momentan mit Tischmanager ### 4 Page in Maincarousel atm with some kind of Table Manager BackgroundcolorListe = [(1,0,0,1),(0,1,0,1),(0,0,1,1),(1,1,0,1)] self.CustomLayout = CustomLayout() self.HauptCarousel.add_widget(self.CustomLayout) #self.CustomLayout.TopLabel = Label(text = 'Tisch[sup][color=#098125ff]Organizer[/sup][/b][/color]', markup = True, #halign= 'left', valign= 'top', text_size= self.size, pos_hint={'x':0, 'y': 0}, font_size= '30sp') self.CustomLayout.TopLabel = Label(text = 'Tisch[sup][color=18ea1d]Organizer[/sup][/b][/color]', markup = True, # alte farbe: #098125ff halign= 'left', font_size= '30sp') #self.CustomLayout.add_widget(self.CustomLayout.TopLabel) self.CustomLayout.BoxLayout = BoxLayout (orientation = 'horizontal', size_hint = [1,0.05], pos_hint={'x':0, 'y': 0.95}) self.CustomLayout.add_widget(self.CustomLayout.BoxLayout) self.CustomLayout.BoxLayout.add_widget(self.CustomLayout.TopLabel) ButtonMenu1 = self.DropdownbuttonCreator() self.CustomLayout.BoxLayout.Button1 = ButtonMenu1 ## self.CustomLayout.BoxLayout.Button2 = Button(text = 'Tisch+' , on_release = self.tischhinzufuegen) ## self.CustomLayout.BoxLayout.Button3 = Button(text = 'Spalte+', on_release = self.spaltehinzufuegen) ## self.CustomLayout.BoxLayout.Button4 = Button(text = 'Zeile+', on_release = self.zeilehinzufuegen) self.CustomLayout.BoxLayout.add_widget(self.CustomLayout.BoxLayout.Button1) ## self.CustomLayout.BoxLayout.add_widget(self.CustomLayout.BoxLayout.Button2) ## self.CustomLayout.BoxLayout.add_widget(self.CustomLayout.BoxLayout.Button3) ## self.CustomLayout.BoxLayout.add_widget(self.CustomLayout.BoxLayout.Button4) self.CustomLayoutGridLayout = GridLayout(cols = 3, rows = 4, padding = [20,20], spacing = [30,30], size_hint = [1,0.95], pos_hint={'x':0, 'y': 0}) #cGridLayout = StackLayout(orientation = "tb-lr", padding = [20,20], spacing = [30,30], size_hint = [1,0.9], pos_hint={'x':0, 'y': 0}) self.CustomLayout.add_widget(self.CustomLayoutGridLayout) self.Tischliste = [] Auswahlliste = ["Bestellung", "Abrechnung", "Best. Aendern", "Bennenen"] AnzahlTische = 12 Zielwidget = self.CustomLayoutGridLayout self.tischerstellung(Zielwidget,AnzahlTische, Auswahlliste, BackgroundcolorListe) self.Box=BoxLayout(oreintation='vertical') self.CustomScrollviewProduktOrganizerInstanz = CustomScrollviewProduktOrganizer() ######### ######### self.ProduktOrganizerInstanz = ProduktOrganizer() self.ProduktOrganizerInstanz.ids.SpinnerProduktOrganizer.bind(text=self.produktorganizerfilter) self.Box.add_widget(self.ProduktOrganizerInstanz) self.ProduktOrganizerInstanz.ids.custScrlInst.data = App.HauptListeDictonaries self.HauptCarousel.add_widget(self.Box) #self.HauptCarousel.add_widget(self.ProduktOrganizerInstanz) self.ButtonHinzufuegen = self.ProduktOrganizerInstanz.ids.ProduktlisteButtonHinzufuegen self.ButtonHinzufuegen.on_release = self.produkthinzufuegen self.PopupDateiAuswaehlenInst= PopupDateiAuswaehlenProduktorganizer() PopupDateiauswahl = self.PopupDateiAuswaehlenInst.ids.b.ids.a self.LadeButton = self.ProduktOrganizerInstanz.ids.LadeButton self.LadeButton.on_release = PopupDateiauswahl.open self.PopupDateiAuswaehlenInst.ids.b.ids.OkButtonFilechooser.on_release = self.datenentpickeln self.PopupDateiAuswaehlenInst.ids.b.ids.LayoutPopup.add_widget(Label (text='[b][color=ff3333]Achtung, nicht gespeicherte Eingaben gehen verloren![/b][/color]', size_hint= (1,0.1), markup = True, font_size = 14)) self.PopupDateiAuswaehlenSpeichernInst = PopupDateiAuswaehlenProduktorganizer() PopupDateiauswahlSpeichern = self.PopupDateiAuswaehlenSpeichernInst.ids.b.ids.a self.SpeicherButton = self.ProduktOrganizerInstanz.ids.SpeicherButton self.SpeicherButton.on_release = PopupDateiauswahlSpeichern.open self.PopupDateiAuswaehlenSpeichernInst.ids.b.ids.OkButtonFilechooser.on_release = self.datenpickeln #print 'tempChildernListe',TempChildrenList #self.PopupDateiAuswaehlenSpeichernInst.ids.b.ids.LayoutPopup.add_widget(TextInput(multiline=False, size_hint= (1,0.15))) self.PopupDateiAuswaehlenSpeichernInst.ids.b.ids.LayoutPopup.add_widget(Label (text='[b][color=ff3333]Achtung, der Inhalt der Datei wird ueberschrieben![/b][/color]', size_hint= (1,0.1), markup = True, font_size = 14)) TempChildrenList = [] for q in self.PopupDateiAuswaehlenSpeichernInst.ids.b.ids.LayoutPopup.children: TempChildrenList.append(q) self.PopupDateiAuswaehlenSpeichernInst.ids.b.ids.LayoutPopup.clear_widgets() FileSaveLabelTextInput = Label(text='Zur Erstellung einer neuen Datei,einen Namen angeben',size_hint= (1,0.15), font_size=16) self.FileSaveTextInput = TextInput(multiline=False,size_hint= (1,0.15)) TempChildrenList.sort(reverse=True) print "vor dem Einfuegen" for index, item in enumerate(TempChildrenList): print index, item TempChildrenList.insert(2, FileSaveLabelTextInput) TempChildrenList.insert(3, self.FileSaveTextInput) for i in TempChildrenList: #i.parent = None self.PopupDateiAuswaehlenSpeichernInst.ids.b.ids.LayoutPopup.add_widget(i) print "nach dem Einfuegen und sortieren" for index, item in enumerate(TempChildrenList): print index, item #self.LadeButton.bind(on_release = self.datenentpickeln) Spinner =self.ProduktOrganizerInstanz.ids.SpinnerProduktOrganizer SpinnerText = Spinner.text self.LadeButton.bind(on_release = self.produktorganizerfilter) #self.ButtonHinzufuegen.on_release = self.inputdata #self.Box.add_widget(Button(size_hint= (1,0.1),text='inputdata', on_release=self.inputdata)) self.PopupInst = PopupBildAuswaehlenProduktorganizer() popup = self.PopupInst.ids.a self.ProduktOrganizerInstanz.ids.ProduktBildAuswaehlen.on_release = popup.open self.PersonalOrganizerInstanz = PersonalOrganizer() self.HauptCarousel.add_widget(self.PersonalOrganizerInstanz) self.ZeitOrganizerInstanz = ZeitOrganizer() self.HauptCarousel.add_widget(self.ZeitOrganizerInstanz) ## def inputdata(self): ## print 'inputdadat runs' ## #self.CustomScrollviewProduktOrganizerInstanz.data = [str(i) for i in range(5)] ## self.ProduktOrganizerInstanz.ids.custScrlInst.data = [str(i) for i in range(5)] def produkthinzufuegen(self): #App.AuswahlHauptlisteAlt = App.AuswahlHauptliste NeuesDict ={} WertEingabeFeldBezeichnung = self.ProduktOrganizerInstanz.ids.EingabeFeldBezeichnung.text WertEingabeFeldPreis = self.ProduktOrganizerInstanz.ids.EingabeFeldPreis.text ## StatusCheckBoxVerkauf = self.ProduktOrganizerInstanz.ids.CheckBoxVerkauf.active WertSpinnerKategorie = str(self.ProduktOrganizerInstanz.ids.SpinnerKategorie.text) filechooser = self.PopupInst.ids.filechooser DateiAuswahl = (str(filechooser.selection))[((str(filechooser.selection)).find('pictures')):-2] #print 'hallo', WertEingabeFeldBezeichnung, WertEingabeFeldPreis,DateiAuswahl,WertSpinnerKategorie ID = len(App.HauptListeDictonaries) NeuesDict = {'ID': ID, 'Bezeichnung':WertEingabeFeldBezeichnung, 'Preis':WertEingabeFeldPreis, 'Bild':DateiAuswahl, 'Kategorie':WertSpinnerKategorie} #print 'len(App.HauptListeDictonaries)', (len(App.HauptListeDictonaries)) ## if len(App.HauptListeDictonaries)<1: ## App.HauptListeDictonaries.append(NeuesDict) ## print 'Fall 1' ## else: Treffer = False for i in range(len(App.HauptListeDictonaries[:])): print 'App.HauptListeDictonaries[i][Bezeichnung] ist', App.HauptListeDictonaries[i]['Bezeichnung'] Bezeichnungdict = str(App.HauptListeDictonaries[i]['Bezeichnung']) Bezeichnungneuesdict = str(NeuesDict['Bezeichnung']) if Bezeichnungdict == Bezeichnungneuesdict: Treffer = True break else: Treffer = False if Treffer == True: #print 'Dieses Produkt existiert schon' ButtonVerstanden = Button(text='Verstanden') popup = Popup(title='Dieses Produkt existiert bereits ', size_hint = (0.5, 0.25), content= ButtonVerstanden) popup.open() ButtonVerstanden.on_release = popup.dismiss else: App.HauptListeDictonaries.append(NeuesDict) #self.ProduktOrganizerInstanz.ids.custScrlInst.ids.content2.clear_widgets() ## print len(App.HauptListeDictonaries) ## for index, item in enumerate(App.HauptListeDictonaries): ## print index, item #self.ProduktOrganizerInstanz.ids.custScrlInst.data = App.HauptListeDictonaries #self.ProduktOrganizerInstanz.ids.custScrlInst.data = App.AuswahlHauptliste #AktuelleWidgetsInDerListe = self.ProduktOrganizerInstanz.ids.custScrlInst.ids.content2.children #print 'App.AuswahlHauptlisteAlt', App.AuswahlHauptlisteAlt #AktuelleWidgetsInDerListe = self.CustomScrollviewProduktOrganizerInstanz.ids.content2.children #print AktuelleWidgetsInDerListe #self.ProduktOrganizerInstanz.ids.custScrlInst.ids.content2.add_widget(Button(text='testmanuellereinfuegung')) AktuellerSpinnerWert = self.ProduktOrganizerInstanz.ids.SpinnerProduktOrganizer.text self.ProduktOrganizerInstanz.ids.custScrlInst.ids.content2.clear_widgets() App.AuswahlHauptliste = [] if AktuellerSpinnerWert == 'Alle': #self.CustomScrollviewProduktOrganizerInstanz.ids.content2.clear_widgets() print 'haha' App.AuswahlHauptliste = [] for i in App.HauptListeDictonaries: if i not in App.AuswahlHauptlisteAlt: pass App.AuswahlHauptliste = App.HauptListeDictonaries App.AuswahlHauptlisteAlt = [] else: if self.SpinnerButtonZustand == 'Alle': App.AuswahlHauptlisteAlt = [] else: pass for i in App.HauptListeDictonaries: if i not in App.AuswahlHauptlisteAlt: if i['Kategorie'] == AktuellerSpinnerWert: App.AuswahlHauptliste.append(i) else: continue else: continue self.ProduktOrganizerInstanz.ids.custScrlInst.data = App.AuswahlHauptliste def produktorganizerfilter(self, spinner, text='Alle'): spinner =self.ProduktOrganizerInstanz.ids.SpinnerProduktOrganizer text = spinner.text self.ProduktOrganizerInstanz.ids.custScrlInst.data = [] #print 'produktorganizerfilter, App.AuswahlHauptlisteAlt', App.AuswahlHauptlisteAlt if self.SpinnerButtonZustand == 'Alle': App.AuswahlHauptlisteAlt = [] else: App.AuswahlHauptlisteAlt = App.AuswahlHauptliste #custScrlInst self.ProduktOrganizerInstanz.ids.custScrlInst.ids.content2.clear_widgets() #self.CustomScrollviewProduktOrganizerInstanz.ids.content2.clear_widgets() App.AuswahlHauptliste=[] if text == 'Alle': App.AuswahlHauptliste = App.HauptListeDictonaries self.SpinnerButtonZustand = 'Alle' if self.ProduktOrganizerInstanz.ids.custScrlInst.data == App.AuswahlHauptliste: self.ProduktOrganizerInstanz.ids.custScrlInst.data = [] else: self.SpinnerButtonZustand = 'Anders' for i in App.HauptListeDictonaries: if i not in App.AuswahlHauptlisteAlt: #print i['Kategorie'] if i['Kategorie'] == text: App.AuswahlHauptliste.append(i) else: continue else: continue #print 'Auswahl Hauptliste ist nun', App.AuswahlHauptliste self.ProduktOrganizerInstanz.ids.custScrlInst.data = App.AuswahlHauptliste def DropdownbuttonCreator(self): Auswahlliste = ["Tisch +", "Tisch -", "Spalte + ", "Spalte -", "Reihe + ", "Reihe -"] BackgroundcolorListe = [(0,1,0,1),(1,0,0,1),(0,1,0,1),(1,0,0,1),(0,1,0,1),(1,0,0,1)] Aktionsliste = [self.tischhinzufuegen, self.tischentfernen, self.spaltehinzufuegen, self.spalteentfernen, self.zeilehinzufuegen, self.zeileentfernen] DropdownObjekt = CustomDropDown() DropdownObjektButton = CustomButton(text = "Menue", #DropdownObjektButton = ToggleButton(text="Menue", size_hint=[1,1], background_color = (0.8, 0.8, 0.00, 1), background_normal='bilder_oberflaeche/white2.png', background_down='bilder_oberflaeche/white3.png') #self.CustomLayout.add_widget(DropdownObjektButton) DropdownObjektButton.bind(on_release=DropdownObjekt.open) self.DropdownObjects.append(DropdownObjekt) for x in range(len(Auswahlliste)): DropdownUnterbutton = Button(text=Auswahlliste[x], font_size = 15, size_hint_y=None, height=60, background_color = BackgroundcolorListe[x], background_normal='bilder_oberflaeche/white2.png', background_down='bilder_oberflaeche/white3.png', opacity = 0.8, on_release = Aktionsliste[x]) DropdownObjekt.add_widget(DropdownUnterbutton) ButtonMenu1 = DropdownObjektButton return ButtonMenu1 def tischerstellung (self, Zielwidget, AnzahlTische, Auswahlliste, BackgroundcolorListe): Auswahlliste = ["Bestellung", "Abrechnung", "Best. Aendern", "Bennenen"] BackgroundcolorListe = [(1,0,0,1),(0,1,0,1),(0,0,1,1),(1,1,0,1)] Aktionsliste = [self.bestellung, self.abrechnung, self.bestellungaendern, self.tischbenennen] #self.DropdownObjects = [] for i in range(AnzahlTische): if self.Tischliste != []: LetzterTisch = self.Tischliste[-1]['Nummer'] ## print LetzterTisch + 1 else: LetzterTisch = 0 TischNr = str(LetzterTisch+1) TischButtonText = "T " + TischNr DropdownObjekt = CustomDropDown() #von kovak hinzugefuegt #DropdownObjektButton = CustomButton(text = TischButtonText, DropdownObjektButton = ToggleButton(text = TischButtonText, group='Tische', #background_normal='bilder_oberflaeche/white2.png', background_normal='bilder_oberflaeche/buttonbackground_normal_gruenrandaussenbraun.png', background_down='bilder_oberflaeche/buttonbackground_normal_weissrandaussenbraun.png', #background_down='bilder_oberflaeche/white4.png', #background_color = (0.79, 0.39, 0.09, 1))#0.6)) background_color = (1, 1, 1, 1))#0.6)) Zielwidget.add_widget(DropdownObjektButton) DropdownObjektButton.bind(on_release=DropdownObjekt.open) self.DropdownObjects.append(DropdownObjekt) #von kovak hinzugefuegt for x in range(len(Auswahlliste)): DropdownUnterbutton = Button(text=Auswahlliste[x], id = TischNr, #auto_width='False', #width = '200sp', font_size = 15, size_hint_y=None, height=60, background_normal='bilder_oberflaeche/white2.png', background_down='bilder_oberflaeche/white3.png', background_color = BackgroundcolorListe[x], on_release = Aktionsliste[x]) DropdownObjekt.add_widget(DropdownUnterbutton) #print' button', i, 'unterbutton', x DropdownObjektButton.text= TischButtonText self.TischButtondict = {'Nummer':(LetzterTisch + 1),'Objekt':DropdownObjektButton} self.Tischliste.append(self.TischButtondict) def garbagecollectortracking(self, widget): for i in self.Tischliste: a = i print gc.is_tracked(a) ### function for Editing a Table####################################### #def tischmanipulieren(self, widget): # widget.text = 'mein text' #### function for adding an extra table to layout ########################## def tischhinzufuegen(self, widget): if len(self.Tischliste) >= 1: if hasattr(self, 'CustomLayoutBottomLabel'): self.CustomLayout.remove_widget(self.CustomLayoutBottomLabel) AnzahlTische = 1 Zielwidget = self.CustomLayoutGridLayout Auswahlliste = ["Bestellung", "Abrechnung", "Best. Aendern", "Bennenen"] BackgroundcolorListe = [(1,0,0,1),(0,1,0,1),(0,0,1,1),(1,1,0,1)] LetzterTisch = self.Tischliste[-1]['Nummer'] if (self.CustomLayoutGridLayout.cols * self.CustomLayoutGridLayout.rows) <= (LetzterTisch +1): self.CustomLayoutGridLayout.rows = self.CustomLayoutGridLayout.rows + 1 self.tischerstellung(Zielwidget, AnzahlTische, Auswahlliste, BackgroundcolorListe) def tischentfernen(self, widget): self.Warnlabel = 0 if len(self.Tischliste) <= 1: if hasattr(self, 'CustomLayoutBottomLabel'): # obj.attr_name exists. if self.CustomLayoutBottomLabel in self.CustomLayout.children: self.Warnlabel=1 print 'das ist der Letzte Tisch, der kann nicht entfernt werden' if self.Warnlabel == 0: self.CustomLayoutBottomLabel= Label(text='Das ist der Letzte Tisch,\n der kann nicht \n entfernt werden', text_size = self.size) self.CustomLayout.add_widget(self.CustomLayoutBottomLabel) else: Zielwidget = self.CustomLayoutGridLayout Zielwidget.remove_widget(self.Tischliste[-1]['Objekt']) del self.Tischliste[-1] LetzterTisch = self.Tischliste[-1]['Nummer'] print 'die anzahl der Tische ist nun:', LetzterTisch pass #### function for adding a column to layout #################################### def spaltehinzufuegen(self, widget): if self.CustomLayoutGridLayout.cols >= 1: if hasattr(self, 'CustomLayoutBottomLabel'): self.CustomLayout.remove_widget(self.CustomLayoutBottomLabel) self.WarnLabel = 0 self.CustomLayoutGridLayout.cols = self.CustomLayoutGridLayout.cols + 1 print 'Zeile hinzufuegen' def spalteentfernen(self, widget): self.Warnlabel = 0 if self.CustomLayoutGridLayout.cols <= 1: if hasattr(self, 'CustomLayoutBottomLabel'): # obj.attr_name exists. if self.CustomLayoutBottomLabel in self.CustomLayout.children: self.Warnlabel=1 print 'das ist die letzte Tischreihe, sie kann nicht entfernt werden' if self.Warnlabel == 0: self.CustomLayoutBottomLabel= Label(text='Das ist die letzte Tischreihe,\n sie kann nicht \n entfernt werden', text_size = self.size) self.CustomLayout.add_widget(self.CustomLayoutBottomLabel) else: TischanzahlVerbleibend = (self.CustomLayoutGridLayout.cols -1) * self.CustomLayoutGridLayout.rows for i in range(len(self.Tischliste[TischanzahlVerbleibend:])): self.CustomLayoutGridLayout.remove_widget(self.Tischliste[TischanzahlVerbleibend+ i]['Objekt']) del self.Tischliste[TischanzahlVerbleibend:] self.CustomLayoutGridLayout.cols = self.CustomLayoutGridLayout.cols - 1 #### function for adding a row to layout #################################### def zeilehinzufuegen(self, widget): if self.CustomLayoutGridLayout.rows >= 1: if hasattr(self, 'CustomLayoutBottomLabel'): self.CustomLayout.remove_widget(self.CustomLayoutBottomLabel) self.WarnLabel = 0 self.CustomLayoutGridLayout.rows = self.CustomLayoutGridLayout.rows + 1 print 'Zeile hinzufuegen' def zeileentfernen(self, widget=None): self.Warnlabel = 0 if self.CustomLayoutGridLayout.rows <= 1: if hasattr(self, 'CustomLayoutBottomLabel'): # obj.attr_name exists. if self.CustomLayoutBottomLabel in self.CustomLayout.children: self.Warnlabel=1 print 'das ist die letzte Tischreihe, sie kann nicht entfernt werden' if self.Warnlabel == 0: self.CustomLayoutBottomLabel= Label(text='Das ist die letzte Tischreihe,\n sie kann nicht \n entfernt werden', text_size = self.size) self.CustomLayout.add_widget(self.CustomLayoutBottomLabel) else: TischanzahlVerbleibend = (self.CustomLayoutGridLayout.rows -1) * self.CustomLayoutGridLayout.cols for i in range(len(self.Tischliste[TischanzahlVerbleibend:])): self.CustomLayoutGridLayout.remove_widget(self.Tischliste[TischanzahlVerbleibend+ i]['Objekt']) del self.Tischliste[TischanzahlVerbleibend:] self.CustomLayoutGridLayout.rows = self.CustomLayoutGridLayout.rows - 1 def bestellung(self, widget): App.my_index = -1 TischNr = widget.id PopupFloatLayout = FloatLayout(size_hint=(1, 1)) self.PopupScrollview = CustomScrollviewPopupContent() self.PopupScrollviewItem = CustomButton2() App.AuswahlHauptliste = App.HauptListeDictonaries self.PopupScrollview.data = App.AuswahlHauptliste #content = self.PopupScrollview.ids.content #item = self.PopupScrollviewItem popup = Popup(title='Bestellung für Tisch ' + str(TischNr), content= PopupFloatLayout) BoxTop = BoxLayout(size_hint= [0.52,0.065],pos_hint={'x': 0.5, 'y': 1.005}, spacing = 5) ButtonExit = Button(text="Exit", #pos_hint={'x': 0.825, 'y': 1.005}, #size_hint = [0.2,0.065], size_hint = [0.3,1], #on_release = self.zeromyindex, on_release = popup.dismiss) #myindexzero = 0 #ButtonExit.bind(on_release=ButtonExit.setter('myindexzero')) #print App.my_index self.ButtonSpinner =Spinner(text= "Alle", values= ("Mittag-Essen", "Getraenke", "AlcGetraenke", "Essen Alltime", "Alle"), size_hint= [0.7,1], #pos_hint={'x': 0.625, 'y': 1.005} ) self.ButtonSpinner.bind(text=self.show_selected_value) #halign: 'right' #valign: 'top' #PopupFloatLayout.add_widget(ButtonExit) #PopupFloatLayout.add_widget(ButtonSpinner) BoxTop.add_widget(self.ButtonSpinner) BoxTop.add_widget(ButtonExit) PopupFloatLayout.add_widget(BoxTop) self.PopupScrollview.size_hint = [1.05,1.017] self.PopupScrollview.center = popup.center PopupFloatLayout.add_widget(self.PopupScrollview) for i in App.ScrollviewButtons: i.ids.customID.on_release = self.Optionsfenster popup.open() print App.ScrollviewButtons ## ## def on_data(self, instance, value): ## content_add = self.PopupScrollview.ids.content.add_widget ## for item in value: ## print item ## content_add(CustomButton2(text=item)) #return CustomScrollviewPopupContent() def show_selected_value(self, spinner, text): print 'The spinner', spinner, 'have text', text App.AuswahlHauptliste=[] if text == 'Alle': App.AuswahlHauptliste = App.HauptListeDictonaries self.PopupScrollview.data = App.AuswahlHauptliste else: for i in App.HauptListeDictonaries: if i['Kategorie'] == text: App.AuswahlHauptliste.append(i) else: continue self.PopupScrollview.data = App.AuswahlHauptliste def zeromyindex(self, widget): App.my_index = (-1) def Optionsfenster(self): self.OptionenPopupBestellungen = OptionenPopupBestellungen() print 'App.AktuelleBestellungProduktAnzahlzaehler', App.AktuelleBestellungProduktAnzahlzaehler for i in range(App.AktuelleBestellungProduktAnzahlzaehler): self.OptionenPopupBestellungen.ids.OptionsPopupContent.add_widget(ToggleButton(text=i)) self.OptionenPopupBestellungen.open() def groesse(self,widget): print 'die buttongroesse ist:', widget.size def abrechnung(self, widget): TischNr = widget.id PopupFloatLayout = FloatLayout() self.ScreenmanagerPopup = CustomScreenManager() self.ScreenPopup = CustomScreen for x in xrange(4): self.ScreenmanagerPopup.add_widget(self.ScreenPopup(name='Screen %d' % x)) #popup = Popup(title='Abrechnung für ' + str(TischNr), # content=self.ScreenmanagerPopup,size_hint=(1, 1) ) popup = Popup(title='Abrechnung für Tisch' + str(TischNr), content=PopupFloatLayout)#, #size_hint=(1, 1), #pos_hint={'x': 0.5, 'y': 0.5} ) self.ScreenmanagerPopup.pos_hint = {'x': 0, 'y': 0} PopupFloatLayout.add_widget(self.ScreenmanagerPopup) ButtonExit = Button(text="Exit", pos_hint={'x': 0.8, 'y': 1.005}, size_hint = [0.2,0.065], on_release = popup.dismiss) PopupFloatLayout.add_widget(ButtonExit) popup.open() def bestellungaendern(self, widget): pass def tischbenennen(self, widget): TischNr = widget.id PopupBox1LayoutTischBennenen = BoxLayout(orientation = 'vertical') popup = Popup(title='Tisch Nr. ' + str(TischNr) + 'benennen', content=PopupBox1LayoutTischBennenen, size_hint=(0.75, 0.5)) EingabeTextfeld = TextInput(text='hier Tischbezeichnung eintragen - Funktion muss noch eingebaut werden') PopupBox1LayoutTischBennenen.add_widget(EingabeTextfeld) PopupBoxLayoutTischBenennen = BoxLayout(orientation = 'horizontal', size_hint=(1,1)) ButtonAbbrechenTischBenennen = Button(text="Abbrechen", size_hint=(0.5, 0.5)) ButtonAbbrechenTischBenennen.bind(on_press=popup.dismiss) ButtonOkTischBenennen = Button(text="OK", size_hint=(0.5, 0.5)) ButtonOkTischBenennen.bind(on_press=popup.dismiss) PopupBox1LayoutTischBennenen.add_widget(PopupBoxLayoutTischBenennen) PopupBoxLayoutTischBenennen.add_widget(ButtonAbbrechenTischBenennen) PopupBoxLayoutTischBenennen.add_widget(ButtonOkTischBenennen) #popup.add_widget popup.open() pass #### function for exporting Data to file #################################### def datenpickeln(self): filechooser = self.PopupDateiAuswaehlenSpeichernInst.ids.b.ids.filechooser AusgewaehlteDatei = str(filechooser.selection) AusgewaehlteDatei = (AusgewaehlteDatei)[AusgewaehlteDatei.find('Produktlisten'):-2] if self.FileSaveTextInput.text != '': print 'Du hast einen Dateinamen eingegeben' AusgewaehlteDatei = 'Produktlisten/'+(str(self.FileSaveTextInput.text)) print 'Daten Speichern ausgefuehrt' print AusgewaehlteDatei SicherungsItem1 = self.HauptCarousel2.Texteingabe.text SicherungsItem2 = App.HauptListeDictonaries Sicherungsliste = [SicherungsItem1, SicherungsItem2] '''function to pickle data to make it ready for sending''' try: with open(AusgewaehlteDatei, 'w+b') as SicherungslisteDaten_File: pickle.dump(Sicherungsliste, SicherungslisteDaten_File) except IOError as err: print('Dateifehler: ' + str(err)) except pickle.PickleError as perr: print('Pickling Fehler: ' + str(perr)) #### function for importing Data to file #################################### def datenentpickeln(self): filechooser = self.PopupDateiAuswaehlenInst.ids.b.ids.filechooser AusgewaehlteDatei = str(filechooser.selection) print 'Daten Laden ausgefuehrt' print AusgewaehlteDatei AusgewaehlteDatei = (AusgewaehlteDatei)[AusgewaehlteDatei.find('Produktlisten'):-2] #App.datenentpickeln = self(datenentpickeln(widget = None)) with open(AusgewaehlteDatei, 'rb') as SicherungslisteDaten_File_entpickelt: SicherungslisteWiederhergestellt = pickle.load(SicherungslisteDaten_File_entpickelt) #self.HauptCarousel3.Textausgabe.text = SicherungslisteWiederhergestellt[0] App.HauptListeDictonaries = SicherungslisteWiederhergestellt[1] ## App.AuswahlHauptListe = App.HauptListeDictonaries ## self.ProduktOrganizerInstanz.ids.custScrlInst.data = App.AuswahlHauptListe self.produktorganizerfilter(self) print 'die daten wurden wieder hergestellt'