예제 #1
0
class ui_builders():

    #This is a recursion function and runs for the amount of times there is sticky notes for an user
    #This was done so that each note card would have its own animation. all the sticky note info is passed
    #as a list sorted based on creation date
    def sticky_note_builder(self, data):
        #run only if there is any elements within the list data
        if len(data) > 0:
            Mainscreenvar = sm.get_screen("MainScreen")
            #set color
            if data[0][3] == 1:
                self.color = (100 / 256, 0, 0, 1)
            elif data[0][3] == 2:
                self.color = (244 / 256, 81 / 256, 30 / 256, 1)
            elif data[0][3] == 3:
                self.color = (246 / 256, 191 / 256, 38 / 256, 1)
            elif data[0][3] == 4:
                self.color = (11 / 256, 128 / 256, 67 / 256, 1)
            elif data[0][3] == 5:
                self.color = (251 / 256, 182 / 256, 121 / 256, 1)
            elif data[0][3] == 6:
                self.color = (3 / 256, 155 / 256, 129 / 256, 1)
            elif data[0][3] == 7:
                self.color = (63 / 256, 81 / 256, 181 / 256, 1)
            elif data[0][3] == 8:
                self.color = (121 / 256, 134 / 256, 203 / 256, 1)
            elif data[0][3] == 9:
                self.color = (172 / 256, 36 / 256, 127 / 256, 1)
            #make card
            self.card = MDCard(size_hint=(None, None),
                               size=(200, 200),
                               name=str(data[0][0]),
                               md_bg_color=self.color,
                               opacity=0,
                               elevation=14,
                               radius=(20, 20, 20, 20))
            self.card.bind(on_press=partial(Operations.open_edit_mode, self))
            self.layout = RelativeLayout(size=self.card.size)
            self.content = MDLabel(
                text=data[0][1],
                color=(0, 0, 0, 1),
                padding=("20dp", "20dp"),
                font_size="25sp",
                font_style='Body1',
                valign='top',
            )
            self.edit = MDIconButton(icon='pencil', pos_hint={'top': 1})
            self.delete = MDIconButton(icon='delete',
                                       pos_hint={
                                           'top': 1,
                                           'right': 1
                                       })
            self.layout.add_widget(self.edit)
            self.layout.add_widget(self.delete)
            self.layout.add_widget(self.content)
            self.card.add_widget(self.layout)

            Mainscreenvar.ids.container.add_widget(self.card)

            anim1 = Animation(opacity=1, duration=.3)
            #when the animation is complete we call the function recursor that repeats the entire process
            anim1.bind(on_complete=partial(ui_builders.recursor, self, data))
            anim1.start(self.card)
            #remove the first element of the list of data
            del data[0]

        else:
            pass

    #This function repeats the creation of stick note cards until recquired
    def recursor(self, data, *args):
        ui_builders.sticky_note_builder(self, data)
예제 #2
0
파일: lesson.py 프로젝트: importtme/testapp
class CoronaParfumApp(MDApp):
    birinci_miqdar = '10ML'
    ikinci_miqdar = '20ML'
    ucuncu_miqdar = '30ML'
    dorduncu_miqdar = '50ML'

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.screen = Builder.load_file('lesson.kv')
        Window.bind(on_keyboard=self.on_key)
        self.milli = ''
        self.profile = False
        self.ml = 'ML'
        self.idd = ''
        self.dictt = {}
        self.siyahi9 = []
        self.get = requests.get('http://167.86.115.50/product/')
        self.new = json.loads(self.get.text)
        self.qiymet10_son = ''
        self.qiymet20_son = ''
        self.qiymet30_son = ''
        self.qiymet50_son = ''
        for i in self.new:
            self.siyahi9.append(str(i["name"]).lower().capitalize())
        """
        for d in self.new:
            self.dictt["name"] = str(d["name"]).lower().capitalize()
            self.dictt["image"] = d["image"]
            self.dictt["descrption"] = d["descrption"]
            self.dictt["gender"] = d["gender"]
            self.dictt["price_10_ml"] = d["price_10_ml"]
            self.dictt["price_20_ml"] = d["price_20_ml"]
            self.dictt["price_30_ml"] = d["price_30_ml"]
            self.dictt["price_50_ml"] = d["price_50_ml"]
            self.siyahi9.append(str(self.dictt))
            self.dictt.clear()
        """

        self.deyishken = True
        self.adi = ''
        self.cinsi = ''
        self.terkibi = ''
        self.qiymet10 = ''
        self.qiymet20 = ''
        self.qiymet30 = ''
        self.qiymet50 = ''

        for i in self.new:
            self.card = MDCard(orientation='horizontal')

            self.image = AsyncImage(source=f'{i["image"]}')
            self.label1 = MDLabel(text=f'{str(i["name"]).lower().capitalize()}')
            self.label2 = MDLabel(text=f'{str(i["gender"]).capitalize()}', font_size='14sp')
            self.desc = str(i["descrption"])
            self.label3 = MDLabel(
                text=f'10ml-{i["price_10_ml"][:3] if len(i["price_10_ml"]) == 5 else i["price_10_ml"][:2]}₼\n20ml-{i["price_20_ml"][:3] if len(i["price_20_ml"]) == 5 else i["price_20_ml"][:2]}₼\n30ml-{i["price_30_ml"][:3] if len(i["price_30_ml"]) == 5 else i["price_30_ml"][:2]}₼\n50ml-{i["price_50_ml"][:3] if len(i["price_50_ml"]) == 5 else i["price_50_ml"][:2]}₼')

            self.qiymet10 = f'{i["price_10_ml"][:3] if len(i["price_10_ml"]) == 5 else i["price_10_ml"][:2]}'
            self.qiymet20 = f'{i["price_20_ml"][:3] if len(i["price_20_ml"]) == 5 else i["price_20_ml"][:2]}'
            self.qiymet30 = f'{i["price_30_ml"][:3] if len(i["price_30_ml"]) == 5 else i["price_30_ml"][:2]}'
            self.qiymet50 = f'{i["price_50_ml"][:3] if len(i["price_50_ml"]) == 5 else i["price_50_ml"][:2]}'

            self.card.add_widget(self.image)
            self.card.add_widget(self.label1)
            self.card.add_widget(self.label2)
            self.card.add_widget(self.label3)
            self.screen.get_screen('etirler').ids.crsl9.add_widget(self.card)
            self.card.bind(
                on_release=partial(self.etrin_seklin_ve_adin_goster, self.label1.text, self.label2.text, self.desc,
                                   self.image.source))

    def yeniden(self):
        self.root.current = 'loadingscreen'
        self.on_start()

    def etrin_seklin_ve_adin_goster(self, etrinadi, etrincinsi, etrinterkibi, etrinsekli, value):
        self.deyishken = False
        if self.deyishken == False:
            self.screen.get_screen('parfumepage').ids.geriduymesi.on_release = self.rtetirler
            self.screen.get_screen('parfumepage').ids.etiretrafli.on_press = self.etrafli
            self.screen.get_screen('sifaris').ids.sifariset.on_release = self.sonsifaris
        self.root.current = 'parfumepage'
        self.screen.get_screen('parfumepage').ids.parfumephoto.source = etrinsekli
        self.screen.get_screen('parfumepage').ids.etrinadiyazilacaqlabel.text = str(etrinadi)
        self.adi = etrinadi
        self.cinsi = etrincinsi
        self.terkibi = etrinterkibi

    def sonsifaris(self):
        self.root.current = 'sonsifaris'

    def etrafli(self):
        self.root.current = 'etirmelumat'
        self.screen.get_screen('etirmelumat').ids.etrinadisifarissehifesi.text = self.adi
        self.screen.get_screen('etirmelumat').ids.terkibi.text = self.terkibi
        self.screen.get_screen('etirmelumat').ids.cinsi.text = self.cinsi

    def rtetirler(self):
        self.root.current = 'etirler'

    def on_start(self):
        self.net = False
        try:
            requests.get('https://www.google.com')
            self.net = True
            self.root.current = 'menu'



        except ConnectionError:
            self.root.current = 'errorscreen'

    def on_key(self, window, key, *args):
        if key == 27:
            if self.root.current_screen.name != 'menu':
                self.root.current = 'menu'
                return True
            elif self.root.current_screen.name == 'menu':
                return False

    def profile_kecid(self):
        self.root.current = 'profil'

    def build(self):
        self.connect = s3.connect('user.db')
        self.cursor = self.connect.cursor()
        self.cursor.execute(
            """CREATE TABLE IF NOT EXISTS users(ad,soyad,dogum_tarixi,mail,nomre,sifre,istifadeci_adi,id INTEGER primary key autoincrement)""")
        self.connect.commit()
        self.connect.close()
        self.sm = ScreenManager()
        self.sm.add_widget(QabSecimi(name='qabsecimi'))
        self.sm.add_widget(IdIste(name='idiste'))
        self.sm.add_widget(SonSifaris(name='sonsifaris'))
        self.sm.add_widget(SifarisSehifesi(name='sifaris'))
        self.sm.add_widget(EtirMelumat(name='etirmelumat'))
        self.sm.add_widget(ParfumePage(name='parfumepage'))
        self.sm.add_widget(Profile(name='profil'))
        self.sm.add_widget(NewName(name='newname'))
        self.sm.add_widget(IscidiYaYox(name='iscidiyayox'))
        self.sm.add_widget(QabKodu(name='qabkodu'))
        self.sm.add_widget(MenuScreen(name='menu'))
        self.sm.add_widget(Etirler(name='etirler'))
        self.sm.add_widget(Axtaris(name='axtaris'))
        self.sm.add_widget(Huquqlar(name='huquqlar'))
        self.sm.add_widget(BizimBrendimiz(name='bizimbrendimiz'))
        self.sm.add_widget(BizimleElaqe(name='bizimleelaqe'))
        self.sm.add_widget(MarketinqVeQaydalar(name='marketinqveqaydalar'))
        self.sm.add_widget(GirisVeQeydiyyat(name='girisveqeydiyyat'))
        self.sm.add_widget(Giris(name='giris'))
        self.sm.add_widget(Qeydiyyat(name='qeydiyyat'))
        self.sm.add_widget(QeydiyyatNumEmailPassword(name='qnmp'))
        self.sm.add_widget(QeydiyyatAuthenticator(name='qa'))
        self.sm.add_widget(ErrorScreen(name='errorscreen'))
        self.sm.add_widget(LoadingScreen(name='loadingscreen'))
        self.sm.add_widget(ForgetPassword(name='forgetpassword'))
        self.sm.add_widget(ForgetAuthenticationCode(name='forgetauthenticationcode'))
        self.sm.add_widget(SifreDeyis(name='sifredeyismeyeri'))
        self.title = 'Korona Parfum'
        self.image_name_list = []
        self.parfume_name_list = []
        self.dict2 = {}
        self.s1 = 0

        # ####################################################################################################################### #######################################################################################################################
        return self.screen

    def axtar_goster(self):
        self.root.current = 'axtaris'
        self.dialog2 = MDDialog(
            text="Axtardığınız ətri tapmadığınız halda baş hərfini böyük hərflə yazın.",
            size_hint=(.7, .5),
            buttons=[
                MDFlatButton(
                    text="Ok",
                    on_release=self.dialogu_dagit2
                )
            ]
        )
        self.dialog2.open()

    def back_from_forget(self):
        self.root.current = 'forgetpassword'

    def qeydiyyatdan_kec(self):

        self.number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0, '+']
        self.mail = self.screen.get_screen('qnmp').ids.email.text
        self.number = self.screen.get_screen('qnmp').ids.number.text
        self.password_new = self.screen.get_screen('qnmp').ids.password_new.text
        self.password_new2 = self.screen.get_screen('qnmp').ids.password_new2.text
        self.username = self.screen.get_screen('qnmp').ids.username.text
        self.a = True

        if not self.mail:
            self.sn = Snackbar(text='Email boş ola bilməz.')
            self.sn.show()
            self.a = False
        elif not self.number:
            self.sn = Snackbar(text='Nömrə boş ola bilməz.')
            self.sn.show()
            self.a = False
        elif not self.password_new:
            self.sn = Snackbar(text='Şifrə boş ola bilməz.')
            self.sn.show()
            self.a = False
        elif not self.password_new2:
            self.sn = Snackbar(text='Şifrəni təkrarlayın.')
            self.sn.show()
            self.a = False
        elif not self.username:
            self.sn = Snackbar(text='İstifadəçi adı boşdur')
            self.sn.show()
            self.a = False
        elif '@' not in self.mail:
            self.sn = Snackbar(text='Email düzgün yazılmayıb.')
            self.sn.show()
            self.a = False
        elif '.' not in self.mail:
            self.sn = Snackbar(text='Email düzgün yazılmayıb.')
            self.sn.show()
            self.a = False
        elif len(self.password_new) < 8:
            self.sn = Snackbar(text='Şifrə uzunluğu 8 deyil.')
            self.sn.show()
            self.a = False
        elif self.password_new != self.password_new2:
            self.sn = Snackbar(text='Şifrələr eyni deyil.')
            self.sn.show()
            self.a = False
        else:
            if self.a == True:
                self.root.current = 'qa'
                self.authentication_code = random.randint(111111, 999999)
                self.mail_content = str(self.authentication_code)
                self.server = slib.SMTP('64.233.184.108', 587)
                self.server.ehlo()
                self.server.starttls()
                self.server.login("*****@*****.**", "10bk572275")
                try:
                    self.server.sendmail("*****@*****.**",
                                         str(self.mail), self.mail_content)
                except:
                    pass

    def forget_check_username(self):
        self.forget_username = str(self.screen.get_screen('forgetpassword').ids.forgetusername.text)
        if not self.forget_username:
            self.sn = Snackbar(text='İstifadəçi adınzı yazın').show()
        self.connect = s3.connect('user.db')
        self.cursor = self.connect.cursor()
        self.username_for_check = self.screen.get_screen('forgetpassword').ids.forgetusername.text
        self.cursor.execute(f"""SELECT istifadeci_adi FROM users WHERE istifadeci_adi='{self.username_for_check}'""")
        self.connect.commit()
        if not self.cursor.fetchone():
            self.sn = Snackbar(text="Profil mövcud deyil").show()
            self.connect.close()
        else:
            self.authentication_code = random.randint(111111, 999999)
            self.mail_content000 = str(self.authentication_code)
            self.connect = s3.connect('user.db')
            self.cursor = self.connect.cursor()
            self.cursor.execute(f"""SELECT mail FROM users WHERE istifadeci_adi='{self.username_for_check}' """)

            self.server = slib.SMTP('64.233.184.108', 587)
            self.server.ehlo()
            self.server.starttls()
            self.server.login("*****@*****.**", "harley572275")
            try:
                for i in self.cursor.fetchone():
                    self.server.sendmail("*****@*****.**",
                                         str(i), self.mail_content000)
                    break
                self.dialog = MDDialog(
                    text=("Mail adresinizə identifikasiya kodu göndərildi."),
                    size_hint_x='.7',
                    buttons=[
                        MDFlatButton(
                            text="OK",
                            text_color=self.theme_cls.primary_color,
                            on_release=self.forget_authentication_code_sehifesine_kecid,
                        )
                    ]
                )
                self.dialog.open()
                self.connect.commit()
                self.connect.close()
            except:
                self.dialog = MDDialog(
                    text=("Mail adresinizə identifikasiya kodu göndərildi."),
                    size_hint_x='.7',
                    buttons=[
                        MDFlatButton(
                            text="OK",
                            text_color=self.theme_cls.primary_color,
                            on_release=self.forget_authentication_code_sehifesine_kecid,
                        )
                    ]
                )

                self.dialog.open()
                self.connect.commit()
                self.connect.close()

    def forget_authentication_code_sehifesine_kecid(self, value):
        self.dialog.dismiss()
        self.root.current = 'forgetauthenticationcode'

    def forget_password(self):
        self.root.current = 'forgetpassword'

    def etirlerkechid(self):
        self.root.current = 'etirler'

    def resend_code(self):
        self.authentication_code = random.randint(111111, 999999)
        self.mail_content = str(self.authentication_code)
        self.server = slib.SMTP('64.233.184.108', 587)
        self.server.ehlo()
        self.server.starttls()
        self.server.login("*****@*****.**", "harley572275")
        try:
            self.server.sendmail("*****@*****.**",
                                 str(self.mail), self.mail_content)
            self.sn5 = Snackbar(
                text='Kod göndərildi.'
            )
            self.sn5.show()
        except:
            self.sn5 = Snackbar(
                text='Kod göndərildi.'
            )
            self.sn5.show()

    def idyoxla(self):
        self.idfield = self.screen.get_screen('idiste').ids.sifarisciidsi.text
        if not self.idfield:
            toast("Zəhmət olmasa İD yazın")
        else:
            self.id = self.screen.get_screen('idiste').ids.sifarisciidsi.text
            url = 'http://167.86.115.50/api/register/'
            data = {
                "username": f"{str(self.username1.strip())}",
                "password": f"{self.password_new1}",
                "last_name": f"{str(self.soyad.strip())}",
                "first_name": f"{str(self.ad1.strip())}",
                "invite_id": f"{self.id}",
                "email": f"{self.email1.strip()}"
            }
            post = requests.post(url, data)
            self.new = json.loads(post.text)
            with open('username.txt', 'w+', encoding='utf-8') as file1:
                file1.write(str(self.new['username']))
            with open('email.txt', 'w+', encoding='utf-8') as file2:
                file2.write(str(self.new['email']))
            with open('id.txt', 'w+', encoding='utf-8') as file3:
                file3.write(str(self.new['id']))
            if self.new['username'] == ["A user with that username already exists."]:
                toast('İstifadəçi adını dəyişin')
                self.root.current = 'qnmp'
            elif self.new['email'] == ['Enter a valid email address.']:
                toast('Email düzgün yazılmayıb')
                self.root.current = 'qnmp'
            else:
                toast('Qeydiyyat tamamlandı.Giriş edin.')
                self.root.current = 'giris'

    def LogIn(self):
        self.istifadechi_adi = self.screen.get_screen('giris').ids.istifadeciadi.text
        self.password = self.screen.get_screen('giris').ids.sifre.text
        if not self.istifadechi_adi:
            toast('Məlumatlar boş ola bilməz')
        if not self.password:
            toast('Məlumatlar boş ola bilməz')
        data = {
            "username": f"{str(self.istifadechi_adi).strip()}",
            "password": f"{str(self.password).strip()}"
        }
        post = requests.post('http://167.86.115.50/auth/token/login', data=data)
        new = json.loads(post.text)
        if 'auth_token' in str(post.text):
            self.profile = True
            self.root.current = 'menu'
            girish.append("entered")
            with open('username.txt', 'r+') as file1:
                self.screen.get_screen('profil').ids.labelforusername.text = file1.read()
            with open('email.txt', 'r+') as file2:
                self.screen.get_screen('profil').ids.labelformail.text = file2.read()
            with open('id.txt', 'r+') as file3:
                self.screen.get_screen('profil').ids.labelforid.text = file3.read()
            self.deyismeli_button = self.screen.get_screen('menu').ids.button_for_login_and_signup
            self.deyismeli_button.text = 'Profil'

        else:
            toast('İstifadəçi adı yaxud parol səhvdir')

    def qacmenuya(self):
        url = 'http://167.86.115.50/api/register/'
        data = {
            "username": f"{str(self.username1.strip())}",
            "password": f"{self.password_new1}",
            "last_name": f"{str(self.soyad.strip())}",
            "first_name": f"{str(self.ad1.strip())}",
            "invite_id": "0",
            "email": f"{self.email1.strip()}"
        }
        post = requests.post(url, data)
        self.new = json.loads(post.text)
        with open('username.txt', 'w+', encoding='utf-8') as file1:
            file1.write(str(self.new['username']))
        with open('email.txt', 'w+', encoding='utf-8') as file2:
            file2.write(str(self.new['email']))
        with open('id.txt', 'w+', encoding='utf-8') as file3:
            file3.write(str(self.new['id']))
        if self.new['username'] == ["A user with that username already exists."]:
            toast('İstifadəçi adını dəyişin')
            self.root.current = 'qnmp'
        elif self.new['email'] == ['Enter a valid email address.']:
            toast('Email düzgün yazılmayıb')
            self.root.current = 'qnmp'
        else:
            toast('Qeydiyyat tamamlandı.Giriş edin.')
            self.root.current = 'giris'

    def check_authentication_code(self):
        self.authentication_text = self.screen.get_screen('qa').ids.authcode.text
        if str(self.authentication_text) == str(self.authentication_code):
            self.root.current = 'idiste'

            girish.append("entered")
            self.ad1 = self.screen.get_screen('qeydiyyat').ids.ad.text
            self.soyad1 = self.screen.get_screen('qeydiyyat').ids.soyad.text
            self.email1 = self.screen.get_screen('qnmp').ids.email.text
            self.number1 = self.screen.get_screen('qnmp').ids.number.text
            self.password_new1 = self.screen.get_screen('qnmp').ids.password_new.text
            self.username1 = self.screen.get_screen('qnmp').ids.username.text
            self.ad1 = str(self.ad1.strip())
            self.soyad1 = str(self.soyad1.strip())
            self.email1 = str(self.email1.strip())
            self.number1 = str(self.number1.strip())
            self.password_new1 = str(self.password_new1.strip())
            self.username1 = str(self.username1.strip())
        else:
            toast('Kod düzgün deyil')

    def forget_check_authentication_code(self):
        self.forget_authentication_code_textfield_text = self.screen.get_screen(
            'forgetauthenticationcode').ids.forgetauthenticationcode.text
        if not self.forget_authentication_code_textfield_text:
            self.sn = Snackbar(
                text='Kodu daxil edin.'
            ).show()
        elif str(self.forget_authentication_code_textfield_text) != self.mail_content000:
            self.sn = Snackbar(
                text='Kod düzgün deyil.'
            ).show()
        elif str(self.forget_authentication_code_textfield_text) == self.mail_content000:
            self.root.current = 'sifredeyismeyeri'

    def check_new_password(self):
        self.new_password = str(self.screen.get_screen('sifredeyismeyeri').ids.newpassword.text)
        self.new_password2 = str(self.screen.get_screen('sifredeyismeyeri').ids.newpasswordagain.text)
        self.pass_text_list = []
        for i in str(self.new_password):
            self.pass_text_list.append(i)
        if len(self.pass_text_list) < 8:
            self.sn = Snackbar(
                text="Şifrə uzunluğu 8 deyil."
            )
            self.sn.show()
        if not self.new_password:
            self.sn = Snackbar(
                text="Şifrəni daxil edin."
            ).show()
        if not self.new_password2:
            self.sn = Snackbar(
                text="Şifrəni təkrarlayın."
            ).show()
        if self.new_password != self.new_password2:
            self.sn = Snackbar(
                text="Şifrələr eyni deyil."
            ).show()

        self.connect = s3.connect('user.db')
        self.cursor = self.connect.cursor()
        self.cursor.execute(
            f"""UPDATE users SET sifre='{self.new_password}' WHERE istifadeci_adi='{self.forget_username}'""")
        self.dialog2 = MDDialog(
            text='Şifrəniz dəyişdirildi.',
            size_hint_x='.7',
            buttons=[MDRaisedButton(text='OK', on_release=self.kecmenyuya2)]
        ).open()
        self.connect.commit()
        self.connect.close()

    def forget_resend_authentication_code(self):
        self.authentication_code = random.randint(111111, 999999)
        self.mail_content000 = str(self.authentication_code)
        self.connect = s3.connect('user.db')
        self.cursor = self.connect.cursor()
        self.cursor.execute(f"""SELECT mail FROM users WHERE istifadeci_adi='{self.username_for_check}' """)

        self.server = slib.SMTP('64.233.184.108', 587)
        self.server.ehlo()
        self.server.starttls()
        self.server.login("*****@*****.**", "harley572275")
        try:
            for i in self.cursor.fetchone():
                self.server.sendmail("*****@*****.**",
                                     str(i), self.mail_content000)
            self.dialog = MDDialog(
                size_hint_x='.7',
                text=("Mail adresinizə identifikasiya kodu göndərildi."),
                buttons=[
                    MDFlatButton(
                        text="OK",
                        text_color=self.theme_cls.primary_color,
                        on_release=self.forget_authentication_code_sehifesine_kecid,
                    )
                ]
            )
            self.dialog.open()
            self.connect.commit()
            self.connect.close()
        except:
            self.dialog = MDDialog(
                text=("Mail adresinizə identifikasiya kodu göndərildi."),
                buttons=[
                    MDFlatButton(
                        text="OK",
                        text_color=self.theme_cls.primary_color,
                        on_release=self.forget_authentication_code_sehifesine_kecid,
                    )
                ]
            )
            self.dialog.open()
            self.connect.commit()
            self.connect.close()

    def first_sign_check(self):
        self.ad = self.screen.get_screen('qeydiyyat').ids.ad.text
        self.soyad = self.screen.get_screen('qeydiyyat').ids.soyad.text
        self.dtarixi_text = self.screen.get_screen('qeydiyyat').ids.dogumbutton.text
        if self.dtarixi_text == 'Doğum tarixi' or not self.ad or not self.soyad:
            toast('Məlumatlarınızı düzgün qeyd edin')
        else:
            self.root.current = 'qnmp'

    def show_date(self):
        self.picker = MDDatePicker(callback=self.got_date,
                                   year=2000,
                                   month=1,
                                   day=1)
        self.picker.open()

    def got_date(self, the_date):
        self.screen.get_screen('qeydiyyat').ids.dogumbutton.text = str(the_date)
        self.birthday = str(the_date)

    def deyismeli(self):
        if str(self.screen.get_screen('menu').ids.button_for_login_and_signup.text) == 'Profil':
            self.root.current = 'profil'
        else:
            self.root.current = 'girisveqeydiyyat'

    def sqy10(self):
        self.milli = '10ML'
        for i in self.new:
            if i["name"] == str(self.screen.get_screen('etirmelumat').ids.etrinadisifarissehifesi.text):
                self.qiymet10_son = str(i["price_10_ml"])
                self.qiymet20_son = str(i["price_20_ml"])
                self.qiymet30_son = str(i["price_30_ml"])
                self.qiymet50_son = str(i["price_50_ml"])

        self.ad_sifaris = self.screen.get_screen('sonsifaris').ids['adsoyadsifaris'].text
        self.nomre_sifaris = str(self.screen.get_screen('sonsifaris').ids.nomresifaris.text)
        self.unvan_sifaris = str(self.screen.get_screen('sonsifaris').ids.unvansifaris.text)
        self.content1 = f"{self.screen.get_screen('etirmelumat').ids.etrinadisifarissehifesi.text}\n" \
                        "10ML\n" \
                        f"{self.ad_sifaris}\n" \
                        f"{self.nomre_sifaris}\n" \
                        f"{self.unvan_sifaris}"

        if not self.ad_sifaris:
            toast('Məlumatları düzgün qeyd edin')
        elif not self.nomre_sifaris:
            toast('Məlumatları düzgün qeyd edin')
        elif not self.unvan_sifaris:
            toast('Məlumatları düzgün qeyd edin')
        else:
            self.root.current = 'iscidiyayox'
            self.milli = '10ML'
        self.qiymet = f'{self.qiymet10_son}'

    def sqy20(self):

        self.milli = '20ML'
        for i in self.new:
            if i["name"] == str(self.screen.get_screen('etirmelumat').ids.etrinadisifarissehifesi.text):
                self.qiymet10_son = str(i["price_10_ml"])
                self.qiymet20_son = str(i["price_20_ml"])
                self.qiymet30_son = str(i["price_30_ml"])
                self.qiymet50_son = str(i["price_50_ml"])
        self.ad_field = str(self.screen.get_screen('sonsifaris').ids.adsoyadsifaris.text)
        self.nomre_field = str(self.screen.get_screen('sonsifaris').ids.nomresifaris.text)
        self.unvan_field = str(self.screen.get_screen('sonsifaris').ids.unvansifaris.text)
        self.content1 = f"{self.screen.get_screen('etirmelumat').ids.etrinadisifarissehifesi.text}\n" \
                        "20ML\n" \
                        f"{self.ad_field}\n" \
                        f"{self.nomre_field}\n" \
                        f"{self.unvan_field}"

        if not self.ad_field:
            toast('Məlumatları düzgün qeyd edin')
        elif not self.nomre_field:
            toast('Məlumatları düzgün qeyd edin')
        elif not self.unvan_field:
            toast('Məlumatları düzgün qeyd edin')
        else:
            self.root.current = 'iscidiyayox'
            self.milli = '20ML'
        self.qiymet = f'{self.qiymet20_son}'

    def sqy30(self):
        self.milli = '30ML'
        for i in self.new:
            if i["name"] == str(self.screen.get_screen('etirmelumat').ids.etrinadisifarissehifesi.text):
                self.qiymet10_son = str(i["price_10_ml"])
                self.qiymet20_son = str(i["price_20_ml"])
                self.qiymet30_son = str(i["price_30_ml"])
                self.qiymet50_son = str(i["price_50_ml"])
        self.ad_field = str(self.screen.get_screen('sonsifaris').ids.adsoyadsifaris.text)
        self.nomre_field = str(self.screen.get_screen('sonsifaris').ids.nomresifaris.text)
        self.unvan_field = str(self.screen.get_screen('sonsifaris').ids.unvansifaris.text)
        self.content1 = f"{self.screen.get_screen('etirmelumat').ids.etrinadisifarissehifesi.text}\n" \
                        "30ML\n" \
                        f"{self.ad_field}\n" \
                        f"{self.nomre_field}\n" \
                        f"{self.unvan_field}"

        if not self.ad_field:
            toast('Məlumatları düzgün qeyd edin')
        elif not self.nomre_field:
            toast('Məlumatları düzgün qeyd edin')
        elif not self.unvan_field:
            toast('Məlumatları düzgün qeyd edin')
        else:
            self.root.current = 'iscidiyayox'
            self.milli = '30ML'
        self.qiymet = f'{self.qiymet30_son}'

    def sqy50(self):
        self.milli = '50ML'
        for i in self.new:
            if i["name"] == str(self.screen.get_screen('etirmelumat').ids.etrinadisifarissehifesi.text):
                self.qiymet10_son = str(i["price_10_ml"])
                self.qiymet20_son = str(i["price_20_ml"])
                self.qiymet30_son = str(i["price_30_ml"])
                self.qiymet50_son = str(i["price_50_ml"])
        self.ad_field = str(self.screen.get_screen('sonsifaris').ids.adsoyadsifaris.text)
        self.nomre_field = str(self.screen.get_screen('sonsifaris').ids.nomresifaris.text)
        self.unvan_field = str(self.screen.get_screen('sonsifaris').ids.unvansifaris.text)
        self.content1 = f"{self.screen.get_screen('etirmelumat').ids.etrinadisifarissehifesi.text}\n" \
                        "MIQDAR: 50ML\n" \
                        f"AD VE SOYAD: {self.ad_field}\n" \
                        f"ELAQE NOMRESI: {self.nomre_field}\n" \
                        f"UNVAN: {self.unvan_field}"

        if not self.ad_field:
            toast('Məlumatları düzgün qeyd edin')
        elif not self.nomre_field:
            toast('Məlumatları düzgün qeyd edin')
        elif not self.unvan_field:
            toast('Məlumatları düzgün qeyd edin')
        else:
            self.root.current = 'iscidiyayox'
            self.milli = '50ML'
        self.qiymet = f'{self.qiymet50_son}'

    def gonder(self):
        self.server = slib.SMTP('64.233.184.108', 587)
        self.server.ehlo()
        self.server.starttls()
        self.server.login("*****@*****.**", "harley572275")
        self.server.sendmail("*****@*****.**", "*****@*****.**", self.content1)
        self.root.current = 'menu'
        self.dialog56 = MDDialog(
            text="Sifarişiniz üçün təşəkkürlər.Sizinlə 24 saat ərzində əlaqə saxlanılacaq.",
            size_hint_y=.7,
            buttons=[
                MDFlatButton(text="Ok", on_release=self.dismis56)
            ]
        )
        self.dialog56.open()

    def sifariset(self):
        for i in self.new:
            if i["name"] == str(self.screen.get_screen('etirmelumat').ids.etrinadisifarissehifesi.text):
                self.screen.get_screen('sifaris').ids.ml10.text = str(i["price_10_ml"])
                self.screen.get_screen('sifaris').ids.ml20.text = str(i["price_20_ml"])
                self.screen.get_screen('sifaris').ids.ml30.text = str(i["price_30_ml"])
                self.screen.get_screen('sifaris').ids.ml50.text = str(i["price_50_ml"])
        self.root.current = 'sonsifaris'

    def dismis56(self, value):
        self.dialog56.dismiss()

    def sifarisekecid(self):
        self.sonsifaris()

    def etir_haqqinda_melumat(self):
        for i in self.new:
            if i["name"] == self.adad.upper():
                self.screen.get_screen('etirmelumat').ids.etrinadisifarissehifesi.text = str(
                    i["name"]).lower().capitalize()
                self.screen.get_screen('etirmelumat').ids.terkibi.text = str(i["descrption"])
                self.screen.get_screen('etirmelumat').ids.cinsi.text = str(i["gender"]).capitalize()
        self.root.current = 'etirmelumat'
        """
        self.screen.get_screen('etirmelumat').ids.qiymet10ml.text = f'{self.lazimli_list[2]}{self.lazimli_list[3]}AZN'
        self.screen.get_screen('etirmelumat').ids.qiymet20ml.text = f'{self.lazimli_list[6]}{self.lazimli_list[7]}AZN'
        self.screen.get_screen('etirmelumat').ids.qiymet30ml.text = f'{self.lazimli_list[10]}{self.lazimli_list[11]}AZN'
        if len(self.lazimli_list) == 17:
            self.screen.get_screen('etirmelumat').ids.qiymet50ml.text = f'{self.lazimli_list[14]}{self.lazimli_list[15]}{self.lazimli_list[16]}AZN'
        else:
            self.screen.get_screen(
                'etirmelumat').ids.qiymet50ml.text = f'{self.lazimli_list[14]}{self.lazimli_list[15]}AZN'
        self.root.current = 'etirmelumat'
        """

    #######################################################################################################################################################
    def on_stop(self):
        girish.clear()

    def sifre_deyisme_legv_et(self):
        self.dialog = MDDialog(
            text=("Ləğv etmək istədiyinizdən əminsinizmi?"),
            size_hint_x='.7',
            buttons=[
                MDFlatButton(
                    text="Geri",
                    text_color=self.theme_cls.primary_color,
                    on_release=self.dialogu_dagit,
                ),
                MDRaisedButton(
                    text="OK",
                    text_color=self.theme_cls.primary_color,
                    on_release=self.kecmenyuya
                )
            ]
        )
        self.dialog.open()

    def kecmenyuya(self, value):
        self.dialog.dismiss()
        self.root.current = 'menu'

    def kecmenyuya2(self, value):
        self.root.current = 'menu'

    def dialogu_dagit2(self, value):
        self.dialog2.dismiss(force=True)

    def dialogu_dagit(self, value):
        self.dialog.dismiss()

    def yazdir(self, name):
        self.adad = str(name)
        self.screen.get_screen('parfumepage').ids.etrinadiyazilacaqlabel.text = str(name)
        for i in self.new:
            if i["name"] == str(name).upper():
                self.screen.get_screen('parfumepage').ids.parfumephoto.source = i["image"]
            else:
                pass
        self.root.current = 'parfumepage'

    def set_list_md_icons(self, text="", search=False):
        '''Builds a list of icons for the screen MDIcons.'''
        """
        self.current = os.getcwd()
        self.dict1 = {}
        try:
            self.book = load_workbook('duxusiyahi.xlsx')
        except:
            os.chdir('..')
            self.book = load_workbook('duxusiyahi.xlsx')
        self.duxu_adlari = []
        self.sheet = self.book['sheet']
        for row in self.sheet.rows:
            if str(row[1].value) == 'None':
                pass
            else:
                self.duxu_adlari.append(str(row[1].value).lower().capitalize())

        self.sekil_adlari = []

        try:
            if os.getcwd().endswith('_files'):
                os.chdir('..')
                for i in os.listdir(os.chdir('allimages_files')):
                    self.sekil_adlari.append(str(i))
            else:
                for i in os.listdir(os.chdir('allimages_files')):
                    self.sekil_adlari.append(str(i))
        except:
            os.chdir('..')
            for i in os.listdir(os.chdir('allimages_files')):
                self.sekil_adlari.append(str(i))
        self.s = 0
        for t in self.duxu_adlari:
            self.dict1[f'{t}'] = self.sekil_adlari[self.s]
            self.s += 1
        """

        def add_icon_item(name_icon):
            self.screen.get_screen('axtaris').ids.rv.data.append(
                {
                    "viewclass": "CustomOneLineIconListItem",
                    "icon": 'atom',
                    "text": name_icon,
                    "on_press": partial(self.yazdir, name_icon)
                }
            )

        self.screen.get_screen('axtaris').ids.rv.data = []
        for name_icon in self.siyahi9:
            if search:
                if text in name_icon:
                    add_icon_item(name_icon)
            else:
                add_icon_item(name_icon)

    def idyazildi(self):
        self.idd = str(self.screen.get_screen('iscidiyayox').ids.sifarisbitdiid.text)
        self.qabsecimi()

    def qabsecimi(self):
        self.nm = ''
        self.root.current = 'qabsecimi'
        self.siyahi = {'eight.jpg30': '#101',
                       'eleven.jpg50': '#102',
                       'fifteen.jpg50': '#103',
                       'five.jpg30': '#104',
                       'four.jpg50': '#105',
                       'fourteen.jpg10': '#106',
                       'nine.jpg50': '#107',
                       'nineteen.jpg50': '#108',
                       'seven.jpg50': '#109',
                       'six.jpg30': '#110',
                       'sixteen.jpg30': '#111',
                       'ten.jpg30': "#112",
                       'thirteen.jpg50': "#113",
                       'three.jpg50': "#114",
                       'twelve.jpg30': "#115",
                       'twenty.jpg30': "#116",
                       'twentyeight.jpg20': "#117",
                       'twentyfive.jpg50': "#118",
                       'twentyfour.jpg30': "#119",
                       'twentynine.jpg30': "#120",
                       'twentyone.jpg30': "#121",
                       'twentyseven.jpg50': "#122",
                       'twentysix.jpg50': "#123",
                       'twentythree.jpg20': "#124",
                       'twentytwo.jpg50': "#125",
                       'two.jpg10': "#126"
                       }
        for qab in self.siyahi.keys():
            a, b = os.path.splitext(qab)
            self.label = MDLabel(text=f'{b[4:]} ML Kod-{self.siyahi[f"{qab}"]}', halign='center', size_hint_y=.1)
            self.image = Image(source=f'{a}.jpg', size_hint_y=.9)
            self.card = MDCard(orientation='vertical', on_release=self.yaz)

            self.card.add_widget(self.label
                                 )
            self.card.add_widget(
                self.image
            )
            self.screen.get_screen('qabsecimi').ids.crsl1.add_widget(self.card)

    def qabsecimioldu(self):
        self.qiymet = ''

        self.kod_field = self.screen.get_screen('qabkodu').ids.kod.text
        if not self.kod_field:
            toast('Zəhmət olmasa qabın kodunu yazın')
        else:
            for i in self.new:
                if i["name"] == str(self.screen.get_screen('etirmelumat').ids.etrinadisifarissehifesi.text).upper():
                    self.qiymet10_son = str(i["price_10_ml"])
                    self.qiymet20_son = str(i["price_20_ml"])
                    self.qiymet30_son = str(i["price_30_ml"])
                    self.qiymet50_son = str(i["price_50_ml"])
                    if self.milli == '10ML':
                        self.qiymet = self.qiymet10_son
                    elif self.milli == '20ML':
                        self.qiymet = self.qiymet20_son
                    elif self.milli == '30ML':
                        self.qiymet = self.qiymet30_son
                    elif self.milli == '50ML':
                        self.qiymet = self.qiymet50_son
            for i in self.siyahi.keys():
                if self.siyahi[str(i)] == str(self.kod_field):
                    toast('Sifarişiniz qəbul olundu.')
                    a, b = os.path.splitext(f'{i}')
                    msg = MIMEMultipart()
                    msg['Subject'] = "Yeni Sifariş"
                    msg['From'] = '*****@*****.**'
                    msg['To'] = '*****@*****.**'
                    self.ad_str = self.screen.get_screen('sonsifaris').ids.adsoyadsifaris.text
                    self.nomre_str = self.screen.get_screen('sonsifaris').ids.nomresifaris.text
                    self.unvan_str = self.screen.get_screen('sonsifaris').ids.unvansifaris.text
                    self.etrin_adi = self.screen.get_screen('etirmelumat').ids.etrinadisifarissehifesi.text

                    try:
                        self.content999 = MIMEText(
                            f'SIFARİŞ HAQQINDA MƏLUMAT\n{datetime.datetime.now().year}-{datetime.datetime.now().month}-{datetime.datetime.now().day} {datetime.datetime.now().hour}:{datetime.datetime.now().minute}\nƏTRİN ADI - {self.etrin_adi}\nQİYMƏTİ - {self.qiymet} AZN\nMİQDARI - {self.milli}\n'
                            f'QABIN KODU - {self.kod_field}\n\nSİFARİŞÇİ HAQQINDA MƏLUMAT\nADI - {self.ad_str}\n'
                            f'TELEFON NÖMRƏSİ - {self.nomre_str}\nÜNVANI - {self.unvan_str}\n'
                            f'SİFARİŞÇİNİN İD KODU - {self.idd}')
                        msg.attach(self.content999)
                        server = smtplib.SMTP('64.233.184.108', 587)
                        server.ehlo()
                        server.starttls()
                        server.login('*****@*****.**', password='******')
                        server.sendmail('*****@*****.**', '*****@*****.**', msg.as_string())
                        server.quit()
                        self.root.current = 'menu'
                    except:
                        self.content999 = MIMEText(
                            f'SIFARİŞ HAQQINDA MƏLUMAT\n{datetime.datetime.now().year}-{datetime.datetime.now().month}-{datetime.datetime.now().day} {datetime.datetime.now().hour}:{datetime.datetime.now().minute}\nƏTRİN ADI - {self.etrin_adi}\nQİYMƏTİ - {self.qiymet} AZN\nMİQDARI - {self.milli}\n'
                            f'QABIN KODU - {self.kod_field}\n\nSİFARİŞÇİ HAQQINDA MƏLUMAT\nADI - {self.ad_str}\n'
                            f'TELEFON NÖMRƏSİ - {self.nomre_str}\nÜNVANI - {self.unvan_str}\n')
                        msg.attach(self.content999)
                        server = smtplib.SMTP('64.233.184.108', 587)
                        server.ehlo()
                        server.starttls()
                        server.login('*****@*****.**', password='******')
                        server.sendmail('*****@*****.**', '*****@*****.**', msg.as_string())
                        server.quit()
                        self.root.current = 'menu'
                else:
                    toast('Sifarişiniz qəbul olundu.')

    def yaz(self, value):
        self.root.current = 'qabkodu'