Beispiel #1
0
 def create_report_and_update_filename(self, event=None):
     try:
         MIS_Database_Functions.generate_csv_report()
         self.filename = (
             str(os.getcwd())
             + "\\Reports\\"
             + MIS_Database_Functions.get_most_recent_event_date()
             + "_Attendance_Report.csv"
         )
         self.feedback_label.config(style="SuccessLabel.TLabel")
         self.feedback_label["text"] = "Report File Created Successfully.\nReview for accuracy."
     except PermissionError:
         self.feedback_label.config(style="ErrorLabel.TLabel")
         self.feedback_label["text"] = (
             "There is an issue with file permissions.\n"
             "Make sure the file is not open.\n"
             "If the problem persistsContact the Tech Director."
         )
     except OSError:
         self.feedback_label.config(style="ErrorLabel.TLabel")
         self.feedback_label["text"] = (
             "There was an issue with the operating system call.\n" "Try again or contact the Technical Director."
         )
     except TypeError:
         self.feedback_label.config(style="ErrorLabel.TLabel")
         self.feedback_label["text"] = (
             "The file was not created, likely because there was\n" "no data to put into the report."
         )
Beispiel #2
0
    def __init__(self, parent, controller):
        ttk.Frame.__init__(self, parent)
        event_date = MIS_Database_Functions.get_most_recent_event_date()
        if event_date is not None:
            self.filename = str(os.getcwd()) + "\\Reports\\" + event_date + "_Attendance_Report.csv"
        else:
            self.filename = ""

        #####################################################
        #                  SIDE FRAME                       #
        #####################################################
        self.logo_border = ttk.Label(self, border=border_default, relief=relief_default, takefocus=False)
        self.logo_border.grid(row=0, column=0, rowspan=4, columnspan=3, sticky="nsew")

        self.logo_label = ttk.Label(self, image=controller.image, takefocus=False)
        self.logo_label.image = controller.image
        self.logo_label.grid(row=0, column=0, rowspan=4, columnspan=3)

        self.side_frame = ttk.Label(self, border=border_default, relief=relief_default, takefocus=False)
        self.side_frame.grid(row=4, column=0, rowspan=6, columnspan=3, sticky="nsew")

        self.frame_title = ttk.Label(self, text="REPORTS", font=Superhead, takefocus=False)
        self.frame_title.grid(row=4, column=0, columnspan=3, rowspan=1)

        self.file_label = ttk.Label(self, text="Data Administration", font=Head)
        self.file_label.grid(row=5, column=0, columnspan=3, rowspan=2)

        self.instructions = ttk.Label(
            self,
            text="Use the buttons to manage reports.\n\n"
            "1) Create the report.\n"
            "2) Review it with Excel.\n"
            "3) Email it",
        )
        self.instructions.grid(row=7, column=0, columnspan=3, rowspan=3, sticky="nw", padx=(10, 10))

        #####################################################
        #                  MAIN CONTENTS                    #
        #####################################################
        self.content_border_label = ttk.Label(self, border=border_default, relief=relief_default, takefocus=False)
        self.content_border_label.grid(row=0, column=3, sticky="nsew", rowspan=7, columnspan=7)

        self.generate_label = ttk.Label(self, text="REPORT GENERATION", font=Head, takefocus=False)
        self.generate_label.grid(row=0, column=5, columnspan=3, sticky="n", pady=(10, 0))
        self.generate_report_button = ttk.Button(
            self,
            text="CREATE REPORT",
            command=lambda: self.create_report_and_update_filename(),
            style="DataSubmitter.TButton",
        )
        self.generate_report_button.bind("<Return>", lambda e: self.create_report_and_update_filename())
        self.generate_report_button.grid(row=0, column=5, columnspan=3, sticky="sew")

        self.review_label = ttk.Label(self, text="REVIEW REPORTS", font=Head, takefocus=False)
        self.review_label.grid(row=2, column=5, columnspan=3, sticky="n", pady=(10, 0))
        self.review_button = ttk.Button(
            self, text="REVIEW", command=lambda: self.review_report(), style="DataGetter.TButton"
        )
        self.review_button.bind("<Return>", lambda e: self.review_report())
        self.review_button.grid(row=2, column=5, columnspan=3, sticky="sew")

        self.email_label = ttk.Label(self, text="EMAIL REPORTS", font=Head, takefocus=False)
        self.email_label.grid(row=4, column=5, columnspan=3, sticky="n", pady=(10, 0))
        self.email_button = ttk.Button(
            self, text="EMAIL", command=lambda: self.email_report(), style="DataSubmitter.TButton"
        )
        self.email_button.bind("<Return>", lambda e: self.email_report())
        self.email_button.grid(row=4, column=5, columnspan=3, sticky="sew")

        self.feedback_label_border = ttk.Label(self, border=border_default, relief=relief_default, takefocus=False)
        self.feedback_label_border.grid(row=7, column=3, rowspan=3, columnspan=7, sticky="nsew")
        self.feedback_label = ttk.Label(
            self,
            text="Use the buttons above to\n"
            "generate, open, and email reports.\n"
            "Please note you can also find these\n"
            "CSV files in the Reports directory.",
            font=Subhead,
            takefocus=False,
        )
        self.feedback_label.grid(row=7, column=3, rowspan=3, columnspan=7, pady=(5, 5), padx=(5, 5))