Compare commits
3 commits
eed70bf5cc
...
daa2126756
Author | SHA1 | Date | |
---|---|---|---|
daa2126756 | |||
1866f61b05 | |||
8c2ab10eb1 |
4 changed files with 69 additions and 8 deletions
|
@ -1,15 +1,39 @@
|
|||
import flet as ft
|
||||
import configparser
|
||||
from i18n import _
|
||||
from constants import *
|
||||
from homeutils import RecentGradesColumn # Import the function from your new file
|
||||
from homeutils import RecentGradesColumn
|
||||
from utils import getconfigpath, getinitials
|
||||
|
||||
def HomePage():
|
||||
config = configparser.ConfigParser()
|
||||
config.read(f"{getconfigpath()}/config.ini")
|
||||
|
||||
studentFullName = config['User']['fullName']
|
||||
studentClass = config['User']['grade']
|
||||
return ft.Column([
|
||||
ft.Text((_("Home")), size=30, weight="bold"),
|
||||
ft.Text("\n", size=30, weight="bold"),
|
||||
ft.Card(
|
||||
content=ft.Container(
|
||||
content=ft.Column(
|
||||
controls=[
|
||||
ft.ListTile(
|
||||
leading=ft.CircleAvatar(
|
||||
content=ft.Text(getinitials(studentFullName)),
|
||||
),
|
||||
title=ft.Text(studentFullName),
|
||||
subtitle=ft.Text(studentClass),
|
||||
),
|
||||
]
|
||||
),
|
||||
width=400,
|
||||
padding=10
|
||||
),
|
||||
),
|
||||
ft.Row([
|
||||
ft.Card(
|
||||
content=ft.Container( # Timetable Card
|
||||
content=ft.Container(
|
||||
content=ft.Column([
|
||||
ft.Row([
|
||||
ft.Icon(ft.Icons.BACKPACK_OUTLINED, size=32, color="#FFFFFF"),
|
||||
|
@ -34,8 +58,8 @@ def HomePage():
|
|||
),
|
||||
|
||||
ft.Card(
|
||||
content=ft.Container( # Recent Grades Card
|
||||
content=RecentGradesColumn(), # Use the imported function here
|
||||
content=ft.Container(
|
||||
content=RecentGradesColumn(),
|
||||
#margin=20,
|
||||
padding=10,
|
||||
alignment=ft.alignment.top_left,
|
||||
|
|
|
@ -1,13 +1,26 @@
|
|||
import flet as ft
|
||||
from constants import *
|
||||
from utils import setthemecolor, setlanguage, restart
|
||||
from utils import setthemecolor, setlanguage, restart, logout
|
||||
from i18n import _, set_language
|
||||
|
||||
def SettingsPage(page):
|
||||
# Create the main container to hold everything
|
||||
main_container = ft.Container()
|
||||
|
||||
def handle_logout(e):
|
||||
logout()
|
||||
restart(e.page)
|
||||
logout_modal = ft.AlertDialog(
|
||||
modal=True,
|
||||
title=ft.Text(_("Logout")),
|
||||
content=ft.Text(_("Do you want to logout?")),
|
||||
actions=[
|
||||
ft.TextButton("Yes", on_click=handle_logout),
|
||||
ft.TextButton("No", on_click=lambda e: page.close(logout_modal)),
|
||||
],
|
||||
actions_alignment=ft.MainAxisAlignment.END,
|
||||
)
|
||||
|
||||
# Create a custom notification that we'll show/hide
|
||||
notification = ft.Container(
|
||||
visible=False,
|
||||
bgcolor=ft.colors.AMBER_100,
|
||||
|
@ -103,6 +116,12 @@ def SettingsPage(page):
|
|||
on_change=onthemechange
|
||||
)
|
||||
]),
|
||||
ft.Row([
|
||||
ft.ElevatedButton(
|
||||
_("Logout"),
|
||||
on_click=lambda e: page.open(logout_modal)
|
||||
),
|
||||
]),
|
||||
]),
|
||||
expand=True # Make this container expand to push the notification to the bottom
|
||||
),
|
||||
|
|
|
@ -32,7 +32,7 @@ class Lesson(BaseModel):
|
|||
return Lesson(
|
||||
position = data["TimeSlot"]["Position"],
|
||||
date = datetime.fromtimestamp(data["Date"]["Timestamp"] / 1000).date(),
|
||||
room = data["Room"]["Code"],
|
||||
room = data["Room"]["Code"] if data.get("Room") else None,
|
||||
start = datetime.strptime(data["TimeSlot"]["Start"], "%H:%M").time(),
|
||||
end = datetime.strptime(data["TimeSlot"]["End"], "%H:%M").time(),
|
||||
subject = data["Subject"]["Name"] if data["Subject"] else data["Event"],
|
||||
|
|
20
src/utils.py
20
src/utils.py
|
@ -102,4 +102,22 @@ def get_current_month_dates():
|
|||
next_month = today.replace(month=today.month + 1, day=1)
|
||||
end_date = next_month - timedelta(days=1)
|
||||
|
||||
return start_date.strftime("%Y-%m-%d"), end_date.strftime("%Y-%m-%d")
|
||||
return start_date.strftime("%Y-%m-%d"), end_date.strftime("%Y-%m-%d")
|
||||
|
||||
def getinitials(full_name):
|
||||
initials = ''.join([part[0].upper() for part in full_name.split()])
|
||||
return initials
|
||||
|
||||
def logout():
|
||||
config = configparser.ConfigParser()
|
||||
config.read(f"{getconfigpath()}/config.ini")
|
||||
config["Settings"]["islogged"] = "False"
|
||||
config["User"]["fullname"] = ""
|
||||
config["User"]["grade"] = ""
|
||||
config["User"]["semester"] = "1"
|
||||
|
||||
if os.path.exists("database.db"):
|
||||
os.remove("database.db")
|
||||
|
||||
with open(f"{getconfigpath()}/config.ini", "w") as file:
|
||||
config.write(file)
|
Loading…
Add table
Reference in a new issue