Exemplo n.º 1
0
    def test_calendar_selection(self):
        widget = Calendar(self.window,
                          month=3,
                          year=2011,
                          day=10,
                          maxdate=date(2013, 1, 1),
                          mindate=date(2010, 1, 1))
        widget.pack()
        self.assertEqual(widget.selection_get(), date(2011, 3, 10))

        widget.selection_set(date(2012, 4, 11))
        self.assertEqual(widget.selection_get(), date(2012, 4, 11))
        self.assertEqual(widget._date, date(2012, 4, 1))
        widget.selection_set(datetime(2012, 5, 11))
        self.assertEqual(widget.selection_get(), date(2012, 5, 11))
        self.assertNotIsInstance(widget.selection_get(), datetime)
        self.assertIsInstance(widget.selection_get(), date)
        widget.selection_set(datetime(2012, 5, 21).strftime('%x'))
        self.assertEqual(widget.selection_get(), date(2012, 5, 21))
        self.assertNotIsInstance(widget.selection_get(), datetime)
        self.assertIsInstance(widget.selection_get(), date)

        widget.selection_set(date(2018, 4, 11))
        self.assertEqual(widget.selection_get(), date(2013, 1, 1))
        widget.selection_set(date(2001, 4, 11))
        self.assertEqual(widget.selection_get(), date(2010, 1, 1))
        widget.selection_clear()
        self.assertIsNone(widget.selection_get())
        # test Swedish locale
        widget.destroy()
        widget = Calendar(self.window, locale='sv_SE')
        widget.pack()
        widget.selection_set(format_date(date(2012, 4, 11), 'short', 'sv_SE'))
Exemplo n.º 2
0
    def test_calendar_init(self):
        widget = Calendar(self.window)
        widget.pack()
        self.window.update()
        widget.destroy()
        widget = Calendar(self.window,
                          font="Arial 14",
                          selectmode='day',
                          cursor="hand1",
                          year=2018,
                          month=2,
                          day=5)
        widget.pack()
        self.window.update()
        self.assertEqual(widget.selection_get(), date(2018, 2, 5))
        widget.destroy()

        widget = Calendar(self.window, year=2011, month=2, day=35)
        widget.pack()
        self.window.update()
        self.assertIsNone(widget.selection_get())
        self.assertEqual(widget._date, date(2011, 2, 1))
        widget.destroy()

        with self.assertRaises(ValueError):
            widget = Calendar(self.window, month=23)
            widget.pack()
            self.window.update()
            widget.destroy()

        with self.assertRaises(ValueError):
            widget = Calendar(self.window, borderwidth="e")
            widget.pack()
            self.window.update()
            widget.destroy()

        widget = Calendar(self.window,
                          font="Arial 14",
                          selectmode='day',
                          cursor="hand1",
                          year=2018,
                          month=2,
                          day=5)
        widget.pack()
        self.window.update()
        widget.destroy()

        widget = Calendar(self.window,
                          selectmode='none',
                          year=2015,
                          month=1,
                          background="black",
                          foreground="white",
                          key="a")
        widget.pack()
        self.window.update()
        self.assertIsNone(widget.selection_get())
        self.assertEqual(widget._date, date(2015, 1, 1))
        widget.destroy()

        with self.assertRaises(ValueError):
            widget = Calendar(self.window, selectmode='wrong')
            widget.pack()
            self.window.update()
            widget.destroy()
Exemplo n.º 3
0
    def test_calendar_init(self):
        widget = Calendar(self.window)
        widget.pack()
        self.window.update()
        widget.destroy()
        widget = Calendar(self.window, showweeknumbers=False)
        self.window.update()
        widget.destroy()
        today = format_date(date.today(), 'short')
        var = tk.StringVar(self.window, today)
        widget = Calendar(self.window,
                          textvariable=var,
                          month=3,
                          year=2011,
                          day=10)
        self.window.update()
        self.assertEqual(var.get(), today)
        self.assertEqual(widget.selection_get(), date.today())
        widget.destroy()
        widget = Calendar(self.window,
                          font="Arial 14",
                          selectmode='day',
                          cursor="hand1",
                          year=2018,
                          month=2,
                          day=5)
        widget.pack()
        self.window.update()
        self.assertEqual(widget.selection_get(), date(2018, 2, 5))
        self.assertEqual(widget.get_displayed_month(), (2, 2018))
        w, d = widget._get_day_coords(date(2018, 2, 5))
        self.assertEqual(widget._calendar[w][d].cget('text'), '5')
        widget.destroy()

        widget = Calendar(self.window, year=2011, month=2, day=35)
        widget.pack()
        self.window.update()
        self.assertIsNone(widget.selection_get())
        self.assertEqual(widget._date, date(2011, 2, 1))
        widget.destroy()

        with self.assertRaises(ValueError):
            widget = Calendar(self.window, month=23)
            widget.pack()
            self.window.update()
            widget.destroy()

        with self.assertRaises(ValueError):
            widget = Calendar(self.window, borderwidth="e")
            widget.pack()
            self.window.update()
            widget.destroy()

        with self.assertRaises(TypeError):
            widget = Calendar(self.window, weekenddays=7)
            widget.pack()
            self.window.update()
            widget.destroy()

        with self.assertRaises(ValueError):
            widget = Calendar(self.window, weekenddays="e")
            widget.pack()
            self.window.update()
            widget.destroy()

        with self.assertRaises(ValueError):
            widget = Calendar(self.window, weekenddays=[1])
            widget.pack()
            self.window.update()
            widget.destroy()

        with self.assertRaises(ValueError):
            widget = Calendar(self.window, weekenddays=['a', 'b'])
            widget.pack()
            self.window.update()
            widget.destroy()

        with self.assertRaises(ValueError):
            widget = Calendar(self.window, weekenddays=[12, 3])
            widget.pack()
            self.window.update()
            widget.destroy()

        with self.assertRaises(TypeError):
            widget = Calendar(self.window, maxdate="e")
            widget.pack()
            self.window.update()
            widget.destroy()

        widget = Calendar(self.window,
                          mindate=datetime(2013, 5, 22, 10, 5),
                          maxdate=datetime.today())
        widget.pack()
        self.window.update()
        widget.destroy()

        with self.assertRaises(TypeError):
            widget = Calendar(self.window, mindate="e")
            widget.pack()
            self.window.update()
            widget.destroy()

        with self.assertRaises(ValueError):
            widget = Calendar(self.window,
                              mindate=date(2018, 4, 5),
                              maxdate=date(2018, 4, 4))
            widget.pack()
            self.window.update()
            widget.destroy()

        with self.assertRaises(ValueError):
            widget = Calendar(self.window, firstweekday="e")
            widget.pack()
            self.window.update()
            widget.destroy()

        widget = Calendar(self.window,
                          font="Arial 14",
                          selectmode='day',
                          cursor="hand1",
                          year=2018,
                          month=2,
                          day=5)
        widget.pack()
        self.window.update()
        widget.destroy()

        widget = Calendar(self.window,
                          selectmode='none',
                          year=2015,
                          month=1,
                          background="black",
                          foreground="white",
                          key="a")
        widget.pack()
        self.window.update()
        self.assertIsNone(widget.selection_get())
        self.assertEqual(widget._date, date(2015, 1, 1))
        widget.destroy()

        with self.assertRaises(ValueError):
            widget = Calendar(self.window, selectmode='wrong')
            widget.pack()
            self.window.update()
            widget.destroy()
Exemplo n.º 4
0
    def test_calendar_textvariable(self):
        var = tk.StringVar(self.window)
        widget = Calendar(self.window,
                          selectmode='day',
                          year=2015,
                          month=1,
                          day=3,
                          textvariable=var)
        widget.pack()
        self.window.update()
        self.assertEqual('', var.get())
        self.assertEqual('', widget.get_date())
        self.assertEqual(date(2015, 1, 1), widget._date)
        widget.selection_set(date(2018, 11, 21))
        self.window.update()
        self.assertEqual(format_date(date(2018, 11, 21), 'short'), var.get())
        self.assertEqual(format_date(date(2018, 11, 21), 'short'),
                         widget.get_date())
        widget.selection_set(None)
        self.window.update()
        self.assertEqual('', widget.get_date())
        self.assertEqual('', var.get())
        var.set(format_date(date(2014, 3, 2), 'short'))
        self.window.update()
        self.assertEqual(date(2014, 3, 2), widget.selection_get())
        self.assertEqual(format_date(date(2014, 3, 2), 'short'), var.get())
        self.assertEqual(format_date(date(2014, 3, 2), 'short'),
                         widget.get_date())
        try:
            var.set('a')
        except tk.TclError:
            # some versions of python raise an error because of the exception
            # raised inside the trace
            pass
        self.window.update()
        self.assertEqual(date(2014, 3, 2), widget.selection_get())
        self.assertEqual(format_date(date(2014, 3, 2), 'short'), var.get())
        self.assertEqual(format_date(date(2014, 3, 2), 'short'),
                         widget.get_date())
        var.set('')
        self.window.update()
        self.assertIsNone(widget.selection_get())
        self.assertEqual('', var.get())
        self.assertEqual('', widget.get_date())

        var2 = tk.StringVar(widget, format_date(date(2011, 1, 21), 'short'))
        widget['textvariable'] = var2
        self.window.update()
        self.assertEqual(widget.get_date(), var2.get())
        self.assertEqual('', var.get())

        widget.destroy()
        widget = Calendar(self.window,
                          selectmode='day',
                          locale='en_US',
                          textvariable=var)
        widget.pack()
        self.window.update()
        widget.selection_set(date(2018, 1, 2))
        self.assertEqual('1/2/18', widget.get_date())
        widget['date_pattern'] = 'MM/dd/yyyy'
        self.assertEqual('01/02/2018', widget.get_date())
Exemplo n.º 5
0
    def test_calendar_init(self):
        widget = Calendar(self.window)
        widget.pack()
        self.window.update()
        widget.destroy()
        widget = Calendar(self.window, showweeknumbers=False)
        self.window.update()
        widget.destroy()
        today = format_date(date.today(), 'short')
        var = tk.StringVar(self.window, today)
        widget = Calendar(self.window, textvariable=var, month=3, year=2011, day=10)
        self.window.update()
        self.assertEqual(var.get(), today)
        self.assertEqual(widget.selection_get(), date.today())
        widget.destroy()
        widget = Calendar(self.window, font="Arial 14", selectmode='day',
                          cursor="hand1", year=2018, month=2, day=5)
        widget.pack()
        self.window.update()
        self.assertEqual(widget.selection_get(), date(2018, 2, 5))
        widget.destroy()

        widget = Calendar(self.window, year=2011, month=2, day=35)
        widget.pack()
        self.window.update()
        self.assertIsNone(widget.selection_get())
        self.assertEqual(widget._date, date(2011, 2, 1))
        widget.destroy()

        with self.assertRaises(ValueError):
            widget = Calendar(self.window, month=23)
            widget.pack()
            self.window.update()
            widget.destroy()

        with self.assertRaises(ValueError):
            widget = Calendar(self.window, borderwidth="e")
            widget.pack()
            self.window.update()
            widget.destroy()

        widget = Calendar(self.window, font="Arial 14", selectmode='day',
                          cursor="hand1", year=2018, month=2, day=5)
        widget.pack()
        self.window.update()
        widget.destroy()

        widget = Calendar(self.window, selectmode='none',
                          year=2015, month=1, background="black",
                          foreground="white", key="a")
        widget.pack()
        self.window.update()
        self.assertIsNone(widget.selection_get())
        self.assertEqual(widget._date, date(2015, 1, 1))
        widget.destroy()

        with self.assertRaises(ValueError):
            widget = Calendar(self.window, selectmode='wrong')
            widget.pack()
            self.window.update()
            widget.destroy()
Exemplo n.º 6
0
class Funçoes(Validadores):
    def conecta_bd(self):
        self.conn = sqlite3.connect("AGENDAMENTOS.db")
        self.cursor = self.conn.cursor()
        print("Conectando ao banco de dados")

    def desconecta_bd(self):
        self.conn.close()
        print("Desconectando ao banco de dados")

    def montaTabelas(self):
        self.conecta_bd()
        ### Criar tabela
        self.cursor.execute("""
            CREATE TABLE IF NOT EXISTS Agendas (
                COD INTEGER PRIMARY KEY,
                NOME_CLIENTE CHAR(40) NOT NULL,
                TELEFONE INTEGER(20),
                DATA date,
                HORA time              
            );
        """)
        self.conn.commit()
        print("Banco de dados criado")
        self.desconecta_bd()

    def Calendario(self):
        self.cal = Calendar(self.Main, fg='black', locale='pt_br')
        self.cal.place(relx=0.75, rely=0.08)
        self.btsalva = Button(self.Main,
                              text='Salvar',
                              command=self.Salvar,
                              bg='#00FF7F')
        self.btsalva.place(relx=0.75, rely=0.27, relwidth=0.15)
        self.bt_fechar = Button(self.Main,
                                text='Sair',
                                command=self.Fechar,
                                bg='red')
        self.bt_fechar.place(relx=0.90, rely=0.27, relwidth=0.05)

    def Fechar(self):
        self.cal.destroy()
        self.btsalva.destroy()
        self.bt_fechar.destroy()

    def Agendar(self):
        self.conecta_bd()
        self.montaTabelas()

        self.entry_cod = Entry(self.Main)
        self.entry_cod.place(relx=0.15, rely=0.05, relwidth=0.04)

        self.entrynome = Entry(self.Main)
        self.entrynome.place(relx=0.25, rely=0.10, relwidth=0.40)
        self.lbnome = Label(self.Main, text='Nome', background='white')
        self.lbnome.place(relx=0.15, rely=0.10)

        self.entrytele = Entry(self.Main,
                               validate='key',
                               validatecommand=self.vdTele)
        self.entrytele.place(relx=0.25, rely=0.20, relwidth=0.40)
        self.lbtele = Label(self.Main, text='Telefone', background='white')
        self.lbtele.place(relx=0.15, rely=0.20)

        self.entryhora = Entry(self.Main,
                               validate='key',
                               validatecommand=self.vdhora)
        self.entryhora.place(relx=0.25, rely=0.30, relwidth=0.05)
        self.lbhora = Label(self.Main, text='Hora', background='white')
        self.lbhora.place(relx=0.15, rely=0.30)

        self.entrydata = Entry(self.Main)
        self.entrydata.place(relx=0.40, rely=0.30, relwidth=0.10)
        self.lbdata = Label(self.Main, text='Data', background='white')
        self.lbdata.place(relx=0.35, rely=0.30)

        self.bt_calendario = Button(self.Main,
                                    text='Calendario',
                                    command=self.Calendario)
        self.bt_calendario.place(relx=0.55, rely=0.30)

        self.bt_altera = Button(self.Main,
                                text='Alterar',
                                command=self.Alteraagenda)
        self.bt_altera.place(relx=0.65, rely=0.30)

    def Salvar(self):
        dataini = self.cal.get_date()
        self.entrydata.delete(0, END)
        self.entrydata.insert(END, dataini)
        self.conecta_bd()
        self.conn.execute(
            '''
        insert into Agendas (NOME_CLIENTE,TELEFONE,DATA,HORA) values (?,?,?,?)''',
            (self.entrynome.get(), self.entrytele.get(), self.entrydata.get(),
             self.entryhora.get()))
        self.conn.commit()
        self.desconecta_bd()
        self.limpa_cliente()
        self.entrynome.destroy()
        self.lbnome.destroy()
        self.entryhora.destroy()
        self.lbhora.destroy()
        self.entrytele.destroy()
        self.lbtele.destroy()
        self.entrydata.destroy()
        self.lbdata.destroy()
        self.bt_calendario.destroy()
        self.btsalva.destroy()
        self.cal.destroy()
        self.entry_cod.destroy()
        self.bt_altera.destroy()
        self.bt_fechar.destroy()
        self.Tarefas()

    def OnDoubleClick(self, event):
        self.limpa_cliente()
        self.listaCli.selection()

        for n in self.listaCli.selection():
            col1, col2, col3, col4, col5 = self.listaCli.item(n, 'values')
            self.entry_cod.insert(END, col1)
            self.entrynome.insert(END, col2)
            self.entrytele.insert(END, col3)
            self.entrydata.insert(END, col4)
            self.entryhora.insert(END, col5)

    def Tarefas(self):
        self.listaCli.delete(*self.listaCli.get_children())
        self.conecta_bd()
        dia = self.data_e_hora = strftime('%d/%m/%Y')
        lista = self.conn.execute('''
       SELECT * FROM Agendas where data like ('%s')ORDER BY NOME_CLIENTE ASC'''
                                  % dia)
        for i in lista:
            self.listaCli.insert("", END, values=i)
        self.desconecta_bd()
        self.limpa_cliente()

    def VerMes(self):
        self.Agendar()
        self.listaCli.delete(*self.listaCli.get_children())
        self.conecta_bd()
        meses = self.data_e_hora = strftime('/%m/%Y')
        mes = ('%') + meses
        lista = self.conn.execute('''
        SELECT * FROM Agendas where data like ('%s')ORDER BY data ASC''' % mes)
        for i in lista:
            self.listaCli.insert("", END, values=i)
        self.desconecta_bd()

    def Notas(self):
        print('Atualizando')

    def Validaentrada(self):
        self.vdhora = (self.root.register(self.ValidaHora), "%P")
        self.vdTele = (self.root.register(self.ValidaTele), "%P")

    def Alteraagenda(self):

        self.conecta_bd()
        self.conn.execute(
            '''UPDATE Agendas set NOME_CLIENTE=?,TELEFONE=?,DATA=?,HORA=? where COD=?''',
            (self.entrynome.get(), self.entrytele.get(), self.entrydata.get(),
             self.entryhora.get(), self.entry_cod.get()))
        self.conn.commit()
        self.desconecta_bd()
        self.limpa_cliente()
        self.Tarefas()

    def limpa_cliente(self):
        self.entry_cod.delete(0, END)
        self.entrynome.delete(0, END)
        self.entrytele.delete(0, END)
        self.entrydata.delete(0, END)
        self.entryhora.delete(0, END)