Example #1
0
    def View_Set(self, event=None):
        try:
            self.calendarspace.destroy()
        except:
            pass
        if self.view.get() == 'day':
            self.calendarspace = Day(self, self.doctor.get(), self.day)
        elif self.view.get() == 'week':
            self.calendarspace = Week(self, self.doctor.get(), self.day)
        elif self.view.get() == 'month':
            self.calendarspace = Month(self, self.doctor.get(), self.day)
        else:
            self.log.error(
                'Calendar Base: Could not set view, unrecognized self.view value: %s'
                % self.view.get())
        self.calendarspace.grid(row=1,
                                column=0,
                                columnspan=11,
                                sticky=tk.N + tk.S + tk.E + tk.W,
                                padx=5,
                                pady=5)

        self.yearbox.delete(0, tk.END)
        self.monthbox.delete(0, tk.END)
        self.daybox.delete(0, tk.END)
        self.yearbox.insert(0, self.day.strftime('%Y'))
        self.monthbox.insert(0, self.day.strftime('%m'))
        self.daybox.insert(0, self.day.strftime('%d'))
Example #2
0
    def View_Set(self, event=None):
        try:
            self.calendarspace.destroy()
        except:
            pass
        if self.view.get() == 'day':
            self.calendarspace = Day(self,self.doctor.get(), self.day)
        elif self.view.get() == 'week':
            self.calendarspace = Week(self,self.doctor.get(), self.day)
        elif self.view.get() == 'month':
            self.calendarspace = Month(self,self.doctor.get(), self.day)
        else:
            self.log.error('Calendar Base: Could not set view, unrecognized self.view value: %s' % self.view.get())
        self.calendarspace.grid(row=1, column=0, columnspan=11, sticky=tk.N+tk.S+tk.E+tk.W, padx=5, pady=5)

        self.yearbox.delete(0,tk.END)
        self.monthbox.delete(0,tk.END)
        self.daybox.delete(0,tk.END)
        self.yearbox.insert(0, self.day.strftime('%Y'))
        self.monthbox.insert(0, self.day.strftime('%m'))
        self.daybox.insert(0, self.day.strftime('%d'))
Example #3
0
class CalendarBase(tk.Toplevel):
    # root:
    #     no space needed

    isopen = False
    
    def __init__(self, root):
        CalendarBase.isopen = True
        
        # Variables
        self.log = logging.getLogger(__name__)
        self.colour = Colours.calendarbase
        self.relief = Relief.calendarbase
        self.root = root
        self.doctor = tk.StringVar()
        self.view = tk.StringVar()
        self.calendarspace = None
        self.day = datetime.today()
        
        # Build Window
        tk.Toplevel.__init__(self, root, bg=self.colour['frame'])
        self.title('Calendar')
        self.protocol('WM_DELETE_WINDOW', self.Close)
        self.bind('<Escape>', self.Close)
        
        # Window Configure
        self.grid_columnconfigure(0, weight=0)
        self.grid_columnconfigure(1, weight=0)
        self.grid_columnconfigure(2, weight=0)
        for i in range(3, 11): self.grid_columnconfigure(i, weight=1)
            
        self.grid_rowconfigure(0, weight=0)
        self.grid_rowconfigure(1, weight=1)
        
        # Declare Widgets
        self.yearbox = tk.Entry(self,
                                bg=self.colour['entry'],
                                width=5,
                                relief=self.relief['entry'])
        self.monthbox = tk.Entry(self,
                                 bg=self.colour['entry'],
                                 width=3,
                                 relief=self.relief['entry'])
        self.daybox = tk.Entry(self,
                               bg=self.colour['entry'],
                               width=3,
                               relief=self.relief['entry'])
        
        self.jumpbackmenu = tk.Menubutton(self,
                                          text='jump back',
                                          bg=self.colour['button'],
                                          relief=self.relief['button'],
                                          activebackground=self.colour['buttonactive'])
        self.jumpbackday = tk.Button(self,
                                     text='prev',
                                     bg=self.colour['button'],
                                     relief=self.relief['button'],
                                     highlightthickness=0,
                                     activebackground=self.colour['buttonactive'],
                                     command=self.Jump_Back)
        
        self.jumpforwardday = tk.Button(self,
                                        text='next',
                                        bg=self.colour['button'],
                                        relief=self.relief['button'],
                                        highlightthickness=0,
                                        activebackground=self.colour['buttonactive'],
                                        command=self.Jump_Forward)
        
        self.jumpforwardmenu = tk.Menubutton(self,
                                             text='jump forward',
                                             bg=self.colour['button'],
                                             relief=self.relief['button'],
                                             activebackground=self.colour['buttonactive'])

        self.doctormenu = tk.Menubutton(self,
                                        text='Doctor',
                                        bg=self.colour['button'],
                                        relief=self.relief['button'],
                                        activebackground=self.colour['buttonactive'])

        self.viewmenu = tk.Menubutton(self,
                                      text='View',
                                      bg=self.colour['button'],
                                      relief=self.relief['button'],
                                      activebackground=self.colour['buttonactive'])

        self.printbutton = tk.Button(self,
                                     text='Print',
                                     bg=self.colour['button'],
                                     relief=self.relief['button'],
                                     highlightthickness=0,
                                     activebackground=self.colour['buttonactive'])

        self.refreshbutton = tk.Button(self,
                                       text='Refresh',
                                       bg=self.colour['button'],
                                       relief=self.relief['button'],
                                       highlightthickness=0,
                                       activebackground=self.colour['buttonactive'],
                                       command=self.Refresh)

        # Initial Widget Properties
        self.yearbox.bind('<Return>', self.Entry_Day)
        self.monthbox.bind('<Return>', self.Entry_Day)
        self.daybox.bind('<Return>', self.Entry_Day)

        self.jumpbackmenu.menu = tk.Menu(self.jumpbackmenu, tearoff=0)
        self.jumpbackmenu['menu'] = self.jumpbackmenu.menu
        self.jumpbackmenu.menu.add_command(label='week', command=self.Jump_Back_Week)
        self.jumpbackmenu.menu.add_command(label='month', command=self.Jump_Back_Month)
        self.jumpbackmenu.menu.add_command(label='year', command=self.Jump_Back_Year)

        self.jumpforwardmenu.menu = tk.Menu(self.jumpforwardmenu, tearoff=0)
        self.jumpforwardmenu['menu'] = self.jumpforwardmenu.menu
        self.jumpforwardmenu.menu.add_command(label='week', command=self.Jump_Forward_Week)
        self.jumpforwardmenu.menu.add_command(label='month', command=self.Jump_Forward_Month)
        self.jumpforwardmenu.menu.add_command(label='year', command=self.Jump_Forward_Year)

        self.doctormenu.menu = tk.Menu(self.doctormenu, tearoff=0)
        self.doctormenu['menu'] = self.doctormenu.menu
        self.doctormenu.menu.add_radiobutton(label='Jessica', value='jessica', variable=self.doctor)
        self.doctormenu.menu.add_radiobutton(label='Connor', value='connor', variable=self.doctor)
        self.doctor.set('jessica')

        self.viewmenu.menu = tk.Menu(self.viewmenu, tearoff=0)
        self.viewmenu['menu'] = self.viewmenu.menu
        self.viewmenu.menu.add_radiobutton(label='day', value='day', variable=self.view, command=self.View_Set)
        self.viewmenu.menu.add_radiobutton(label='week', value='week', variable=self.view, command=self.View_Set)
        self.viewmenu.menu.add_radiobutton(label='month', value='month', variable=self.view, command=self.View_Set)
        self.view.set('day')

        # Place Widgets
        self.yearbox.grid(row=0, column=0, sticky=tk.N+tk.S+tk.E+tk.W)
        self.monthbox.grid(row=0, column=1, sticky=tk.N+tk.S+tk.E+tk.W)
        self.daybox.grid(row=0, column=2, sticky=tk.N+tk.S+tk.E+tk.W)

        self.jumpbackmenu.grid(row=0, column=3, sticky=tk.N+tk.S+tk.E+tk.W)
        self.jumpbackday.grid(row=0, column=4, sticky=tk.N+tk.S+tk.E+tk.W)
        self.jumpforwardday.grid(row=0, column=5, sticky=tk.N+tk.S+tk.E+tk.W)
        self.jumpforwardmenu.grid(row=0, column=6, sticky=tk.N+tk.S+tk.E+tk.W)
        
        self.doctormenu.grid(row=0, column=7, sticky=tk.N+tk.S+tk.E+tk.W)
        self.viewmenu.grid(row=0, column=8, sticky=tk.N+tk.S+tk.E+tk.W)
        self.printbutton.grid(row=0, column=9, sticky=tk.N+tk.S+tk.E+tk.W)
        self.refreshbutton.grid(row=0, column=10, sticky=tk.N+tk.S+tk.E+tk.W)

        self.View_Set()

        self.log.info('Started the calendar')

    # Changes the current calendar view to show day, week, or month, also changes the textbox day
    def View_Set(self, event=None):
        try:
            self.calendarspace.destroy()
        except:
            pass
        if self.view.get() == 'day':
            self.calendarspace = Day(self,self.doctor.get(), self.day)
        elif self.view.get() == 'week':
            self.calendarspace = Week(self,self.doctor.get(), self.day)
        elif self.view.get() == 'month':
            self.calendarspace = Month(self,self.doctor.get(), self.day)
        else:
            self.log.error('Calendar Base: Could not set view, unrecognized self.view value: %s' % self.view.get())
        self.calendarspace.grid(row=1, column=0, columnspan=11, sticky=tk.N+tk.S+tk.E+tk.W, padx=5, pady=5)

        self.yearbox.delete(0,tk.END)
        self.monthbox.delete(0,tk.END)
        self.daybox.delete(0,tk.END)
        self.yearbox.insert(0, self.day.strftime('%Y'))
        self.monthbox.insert(0, self.day.strftime('%m'))
        self.daybox.insert(0, self.day.strftime('%d'))

    # Switches the view to day view
    def View_Day(self, event=None, day=None):
        self.view.set('day')
        if day != None:
            self.day = day
        self.View_Set()

    # Switches the view to week view 
    def View_Week(self, event=None):
        self.view.set('week')
        self.View_Set()

    # Switches the view to month view
    def View_Month(self, event=None):
        self.view.set('month')
        self.View_Set()

    # Attempts to change the date to the one entered in the entry boxes
    def Entry_Day(self, event=None):
        try:
            date = datetime(year=int(self.yearbox.get()), month=int(self.monthbox.get()), day=int(self.daybox.get()))
            self.day = date
        except:
            return

        self.View_Set()

    # Moves the day being viewed forward by one increment depending on the view type
    def Jump_Forward(self, event=None):
        if self.view.get() == 'day':
            self.Jump_Forward_Day(event)
        elif self.view.get() == 'week':
            self.Jump_Forward_Week(event)
        elif self.view.get() == 'month':
            self.Jump_Forward_Month(event)
        else:
            self.log.error('Could not interpret self.view.get(), got value: %s' % self.view.get())

    # Moves the day being viewed back by one increment depending on the view type
    def Jump_Back(self, event=None):
        if self.view.get() == 'day':
            self.Jump_Back_Day(event)
        elif self.view.get() == 'week':
            self.Jump_Back_Week(event)
        elif self.view.get() == 'month':
            self.Jump_Back_Month(event)
        else:
            self.log.error('Could not interpret self.view.get(), got value: %s' % self.view.get())

    # Moves the viewed day forward by one
    def Jump_Forward_Day(self, event=None):
        self.day = self.day + timedelta(days=1)
        self.View_Set()

    # Moves the viewed day forward by one week
    def Jump_Forward_Week(self, event=None):
        self.day = self.day + timedelta(days=7)
        self.View_Set()

    # Moves the viewed day forward by one month
    def Jump_Forward_Month(self, event=None):
        self.day = self.day + timedelta(days=29)
        self.View_Set()

    # Moves the viewed day forward by one year
    def Jump_Forward_Year(self, event=None):
        self.day = self.day + timedelta(days=365)
        self.View_Set()

    # Moves the viewed day forward by one day
    def Jump_Back_Day(self, event=None):
        self.day = self.day - timedelta(days=1)
        self.View_Set()

    # Moves the viewed day forward by one week
    def Jump_Back_Week(self, event=None):
        self.day = self.day - timedelta(days=7)
        self.View_Set()
        
    # Moves the viewed day forward by one month
    def Jump_Back_Month(self, event=None):
        self.day = self.day - timedelta(days=29)
        self.View_Set()

    # Moves the viewed day forward by one year
    def Jump_Back_Year(self, event=None):
        self.day = self.day - timedelta(days=365)
        self.View_Set()

    # refreshes the view, ie reloads all calendar information
    def Refresh(self, event=None):
        self.View_Set()

    def Close(self, event=None):
        CalendarBase.isopen = False
        self.root.calendar = None
        if self.calendarspace != None:
            self.calendarspace.Close()
        self.destroy()
Example #4
0
class CalendarBase(tk.Toplevel):
    # root:
    #     no space needed

    isopen = False

    def __init__(self, root):
        CalendarBase.isopen = True

        # Variables
        self.log = logging.getLogger(__name__)
        self.colour = Colours.calendarbase
        self.relief = Relief.calendarbase
        self.root = root
        self.doctor = tk.StringVar()
        self.view = tk.StringVar()
        self.calendarspace = None
        self.day = datetime.today()

        # Build Window
        tk.Toplevel.__init__(self, root, bg=self.colour['frame'])
        self.title('Calendar')
        self.protocol('WM_DELETE_WINDOW', self.Close)
        self.bind('<Escape>', self.Close)

        # Window Configure
        self.grid_columnconfigure(0, weight=0)
        self.grid_columnconfigure(1, weight=0)
        self.grid_columnconfigure(2, weight=0)
        for i in range(3, 11):
            self.grid_columnconfigure(i, weight=1)

        self.grid_rowconfigure(0, weight=0)
        self.grid_rowconfigure(1, weight=1)

        # Declare Widgets
        self.yearbox = tk.Entry(self,
                                bg=self.colour['entry'],
                                width=5,
                                relief=self.relief['entry'])
        self.monthbox = tk.Entry(self,
                                 bg=self.colour['entry'],
                                 width=3,
                                 relief=self.relief['entry'])
        self.daybox = tk.Entry(self,
                               bg=self.colour['entry'],
                               width=3,
                               relief=self.relief['entry'])

        self.jumpbackmenu = tk.Menubutton(
            self,
            text='jump back',
            bg=self.colour['button'],
            relief=self.relief['button'],
            activebackground=self.colour['buttonactive'])
        self.jumpbackday = tk.Button(
            self,
            text='prev',
            bg=self.colour['button'],
            relief=self.relief['button'],
            highlightthickness=0,
            activebackground=self.colour['buttonactive'],
            command=self.Jump_Back)

        self.jumpforwardday = tk.Button(
            self,
            text='next',
            bg=self.colour['button'],
            relief=self.relief['button'],
            highlightthickness=0,
            activebackground=self.colour['buttonactive'],
            command=self.Jump_Forward)

        self.jumpforwardmenu = tk.Menubutton(
            self,
            text='jump forward',
            bg=self.colour['button'],
            relief=self.relief['button'],
            activebackground=self.colour['buttonactive'])

        self.doctormenu = tk.Menubutton(
            self,
            text='Doctor',
            bg=self.colour['button'],
            relief=self.relief['button'],
            activebackground=self.colour['buttonactive'])

        self.viewmenu = tk.Menubutton(
            self,
            text='View',
            bg=self.colour['button'],
            relief=self.relief['button'],
            activebackground=self.colour['buttonactive'])

        self.printbutton = tk.Button(
            self,
            text='Print',
            bg=self.colour['button'],
            relief=self.relief['button'],
            highlightthickness=0,
            activebackground=self.colour['buttonactive'])

        self.refreshbutton = tk.Button(
            self,
            text='Refresh',
            bg=self.colour['button'],
            relief=self.relief['button'],
            highlightthickness=0,
            activebackground=self.colour['buttonactive'],
            command=self.Refresh)

        # Initial Widget Properties
        self.yearbox.bind('<Return>', self.Entry_Day)
        self.monthbox.bind('<Return>', self.Entry_Day)
        self.daybox.bind('<Return>', self.Entry_Day)

        self.jumpbackmenu.menu = tk.Menu(self.jumpbackmenu, tearoff=0)
        self.jumpbackmenu['menu'] = self.jumpbackmenu.menu
        self.jumpbackmenu.menu.add_command(label='week',
                                           command=self.Jump_Back_Week)
        self.jumpbackmenu.menu.add_command(label='month',
                                           command=self.Jump_Back_Month)
        self.jumpbackmenu.menu.add_command(label='year',
                                           command=self.Jump_Back_Year)

        self.jumpforwardmenu.menu = tk.Menu(self.jumpforwardmenu, tearoff=0)
        self.jumpforwardmenu['menu'] = self.jumpforwardmenu.menu
        self.jumpforwardmenu.menu.add_command(label='week',
                                              command=self.Jump_Forward_Week)
        self.jumpforwardmenu.menu.add_command(label='month',
                                              command=self.Jump_Forward_Month)
        self.jumpforwardmenu.menu.add_command(label='year',
                                              command=self.Jump_Forward_Year)

        self.doctormenu.menu = tk.Menu(self.doctormenu, tearoff=0)
        self.doctormenu['menu'] = self.doctormenu.menu
        self.doctormenu.menu.add_radiobutton(label='Jessica',
                                             value='jessica',
                                             variable=self.doctor)
        self.doctormenu.menu.add_radiobutton(label='Connor',
                                             value='connor',
                                             variable=self.doctor)
        self.doctor.set('jessica')

        self.viewmenu.menu = tk.Menu(self.viewmenu, tearoff=0)
        self.viewmenu['menu'] = self.viewmenu.menu
        self.viewmenu.menu.add_radiobutton(label='day',
                                           value='day',
                                           variable=self.view,
                                           command=self.View_Set)
        self.viewmenu.menu.add_radiobutton(label='week',
                                           value='week',
                                           variable=self.view,
                                           command=self.View_Set)
        self.viewmenu.menu.add_radiobutton(label='month',
                                           value='month',
                                           variable=self.view,
                                           command=self.View_Set)
        self.view.set('day')

        # Place Widgets
        self.yearbox.grid(row=0, column=0, sticky=tk.N + tk.S + tk.E + tk.W)
        self.monthbox.grid(row=0, column=1, sticky=tk.N + tk.S + tk.E + tk.W)
        self.daybox.grid(row=0, column=2, sticky=tk.N + tk.S + tk.E + tk.W)

        self.jumpbackmenu.grid(row=0,
                               column=3,
                               sticky=tk.N + tk.S + tk.E + tk.W)
        self.jumpbackday.grid(row=0,
                              column=4,
                              sticky=tk.N + tk.S + tk.E + tk.W)
        self.jumpforwardday.grid(row=0,
                                 column=5,
                                 sticky=tk.N + tk.S + tk.E + tk.W)
        self.jumpforwardmenu.grid(row=0,
                                  column=6,
                                  sticky=tk.N + tk.S + tk.E + tk.W)

        self.doctormenu.grid(row=0, column=7, sticky=tk.N + tk.S + tk.E + tk.W)
        self.viewmenu.grid(row=0, column=8, sticky=tk.N + tk.S + tk.E + tk.W)
        self.printbutton.grid(row=0,
                              column=9,
                              sticky=tk.N + tk.S + tk.E + tk.W)
        self.refreshbutton.grid(row=0,
                                column=10,
                                sticky=tk.N + tk.S + tk.E + tk.W)

        self.View_Set()

        self.log.info('Started the calendar')

    # Changes the current calendar view to show day, week, or month, also changes the textbox day
    def View_Set(self, event=None):
        try:
            self.calendarspace.destroy()
        except:
            pass
        if self.view.get() == 'day':
            self.calendarspace = Day(self, self.doctor.get(), self.day)
        elif self.view.get() == 'week':
            self.calendarspace = Week(self, self.doctor.get(), self.day)
        elif self.view.get() == 'month':
            self.calendarspace = Month(self, self.doctor.get(), self.day)
        else:
            self.log.error(
                'Calendar Base: Could not set view, unrecognized self.view value: %s'
                % self.view.get())
        self.calendarspace.grid(row=1,
                                column=0,
                                columnspan=11,
                                sticky=tk.N + tk.S + tk.E + tk.W,
                                padx=5,
                                pady=5)

        self.yearbox.delete(0, tk.END)
        self.monthbox.delete(0, tk.END)
        self.daybox.delete(0, tk.END)
        self.yearbox.insert(0, self.day.strftime('%Y'))
        self.monthbox.insert(0, self.day.strftime('%m'))
        self.daybox.insert(0, self.day.strftime('%d'))

    # Switches the view to day view
    def View_Day(self, event=None, day=None):
        self.view.set('day')
        if day != None:
            self.day = day
        self.View_Set()

    # Switches the view to week view
    def View_Week(self, event=None):
        self.view.set('week')
        self.View_Set()

    # Switches the view to month view
    def View_Month(self, event=None):
        self.view.set('month')
        self.View_Set()

    # Attempts to change the date to the one entered in the entry boxes
    def Entry_Day(self, event=None):
        try:
            date = datetime(year=int(self.yearbox.get()),
                            month=int(self.monthbox.get()),
                            day=int(self.daybox.get()))
            self.day = date
        except:
            return

        self.View_Set()

    # Moves the day being viewed forward by one increment depending on the view type
    def Jump_Forward(self, event=None):
        if self.view.get() == 'day':
            self.Jump_Forward_Day(event)
        elif self.view.get() == 'week':
            self.Jump_Forward_Week(event)
        elif self.view.get() == 'month':
            self.Jump_Forward_Month(event)
        else:
            self.log.error(
                'Could not interpret self.view.get(), got value: %s' %
                self.view.get())

    # Moves the day being viewed back by one increment depending on the view type
    def Jump_Back(self, event=None):
        if self.view.get() == 'day':
            self.Jump_Back_Day(event)
        elif self.view.get() == 'week':
            self.Jump_Back_Week(event)
        elif self.view.get() == 'month':
            self.Jump_Back_Month(event)
        else:
            self.log.error(
                'Could not interpret self.view.get(), got value: %s' %
                self.view.get())

    # Moves the viewed day forward by one
    def Jump_Forward_Day(self, event=None):
        self.day = self.day + timedelta(days=1)
        self.View_Set()

    # Moves the viewed day forward by one week
    def Jump_Forward_Week(self, event=None):
        self.day = self.day + timedelta(days=7)
        self.View_Set()

    # Moves the viewed day forward by one month
    def Jump_Forward_Month(self, event=None):
        self.day = self.day + timedelta(days=29)
        self.View_Set()

    # Moves the viewed day forward by one year
    def Jump_Forward_Year(self, event=None):
        self.day = self.day + timedelta(days=365)
        self.View_Set()

    # Moves the viewed day forward by one day
    def Jump_Back_Day(self, event=None):
        self.day = self.day - timedelta(days=1)
        self.View_Set()

    # Moves the viewed day forward by one week
    def Jump_Back_Week(self, event=None):
        self.day = self.day - timedelta(days=7)
        self.View_Set()

    # Moves the viewed day forward by one month
    def Jump_Back_Month(self, event=None):
        self.day = self.day - timedelta(days=29)
        self.View_Set()

    # Moves the viewed day forward by one year
    def Jump_Back_Year(self, event=None):
        self.day = self.day - timedelta(days=365)
        self.View_Set()

    # refreshes the view, ie reloads all calendar information
    def Refresh(self, event=None):
        self.View_Set()

    def Close(self, event=None):
        CalendarBase.isopen = False
        self.root.calendar = None
        if self.calendarspace != None:
            self.calendarspace.Close()
        self.destroy()