1
0
Fork 0
forked from Fuji/Fuji
Fuji/main.py
Marceli c47fa9d46d Nevermind everything was alright before rewrite
revert Rewrite of the entire codebase
2025-01-27 11:00:06 +00:00

548 lines
27 KiB
Python

import flet as ft
# vars
grade1 = "#F44336"
grade2 = "#FF9800"
grade3 = "#eebd00"
grade4 = "#4CAF50"
grade5 = "#2196F3"
grade6 = "#9C27B0"
gradeother = "#5D5D5D"
def main(page: ft.Page):
page.title = "Fuji"
page.theme = ft.Theme(color_scheme_seed=ft.Colors.RED)
def changePage(index):
pages = [
# Home page
ft.Column([
ft.Text(" Home", size=30, weight="bold"),
ft.Text("\n", size=30, weight="bold"),
ft.Row([
ft.Container( # Timetable Card
content=ft.Column([
ft.Row([
ft.Icon(ft.Icons.BACKPACK_OUTLINED, size=32, color="#FFFFFF"),
ft.Text("Timetable", size=24, font_family="Roboto", weight="bold")
]),
ft.ListView(
controls=[
ft.Text("1. Lorem ipsum\n2. Lorem ipsum\n3. Lorem ipsum\n4. Im curious what happens if i ran out of space\n5. It just creates a new line\n6. No idea why i tested that\n7. I also want to test what happens if there is too much lines\n8. Lorem ipsum\n9. Yay now you can scroll\n10. Looks like dogshit but it works\n11. Simi simi jej simi jaj", size=16, weight="normal")
],
expand=True,
spacing=10,
padding=10,
auto_scroll=False
)
]),
margin=20,
padding=10,
alignment=ft.alignment.top_left,
bgcolor='#271D1C',
width=420,
height=270,
border_radius=10,
),
ft.Container( # Recent Grades Card
content=ft.Column([
ft.Row([
ft.Icon(ft.Icons.LOOKS_6_OUTLINED, size=32, color="#FFFFFF"),
ft.Text("Recent Grades", size=24, font_family="Roboto", weight="bold")
]),
ft.ListView(
controls=[
ft.Row([
ft.Text("Matematyka", size=16, weight="normal"),
ft.Container(
content=ft.Text("6"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade6,
width=20,
height=20,
border_radius=5,
),
ft.Container(
content=ft.Text("5"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade5,
width=20,
height=20,
border_radius=5,
),
ft.Container(
content=ft.Text("4"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade4,
width=20,
height=20,
border_radius=5,
),
ft.Container(
content=ft.Text("3"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade3,
width=20,
height=20,
border_radius=5,
),
ft.Container(
content=ft.Text("2"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade2,
width=20,
height=20,
border_radius=5,
),
ft.Container(
content=ft.Text("1"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade1,
width=20,
height=20,
border_radius=5,
),
]),
ft.Row([
ft.Text("Język polski", size=16, weight="normal"),
ft.Container(
content=ft.Text("6"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade6,
width=20,
height=20,
border_radius=5,
),
ft.Container(
content=ft.Text("5"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade5,
width=20,
height=20,
border_radius=5,
),
ft.Container(
content=ft.Text("4"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade4,
width=20,
height=20,
border_radius=5,
),
ft.Container(
content=ft.Text("3"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade3,
width=20,
height=20,
border_radius=5,
),
ft.Container(
content=ft.Text("2"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade2,
width=20,
height=20,
border_radius=5,
),
ft.Container(
content=ft.Text("1"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade1,
width=20,
height=20,
border_radius=5,
),
]),
ft.Row([
ft.Text("Język Angielski", size=16, weight="normal"),
ft.Container(
content=ft.Text("6"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade6,
width=20,
height=20,
border_radius=5,
),
ft.Container(
content=ft.Text("5"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade5,
width=20,
height=20,
border_radius=5,
),
ft.Container(
content=ft.Text("4"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade4,
width=20,
height=20,
border_radius=5,
),
ft.Container(
content=ft.Text("3"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade3,
width=20,
height=20,
border_radius=5,
),
ft.Container(
content=ft.Text("2"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade2,
width=20,
height=20,
border_radius=5,
),
ft.Container(
content=ft.Text("1"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade1,
width=20,
height=20,
border_radius=5,
),
]),
ft.Row([
ft.Text("Informatyka", size=16, weight="normal"),
ft.Container(
content=ft.Text("6"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade6,
width=20,
height=20,
border_radius=5,
),
ft.Container(
content=ft.Text("5"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade5,
width=20,
height=20,
border_radius=5,
),
ft.Container(
content=ft.Text("4"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade4,
width=20,
height=20,
border_radius=5,
),
ft.Container(
content=ft.Text("3"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade3,
width=20,
height=20,
border_radius=5,
),
ft.Container(
content=ft.Text("2"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade2,
width=20,
height=20,
border_radius=5,
),
ft.Container(
content=ft.Text("1"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade1,
width=20,
height=20,
border_radius=5,
),
]),
ft.Row([
ft.Text("Język Niemiecki", size=16, weight="normal"),
ft.Container(
content=ft.Text("6"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade6,
width=20,
height=20,
border_radius=5,
),
ft.Container(
content=ft.Text("5"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade5,
width=20,
height=20,
border_radius=5,
),
ft.Container(
content=ft.Text("4"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade4,
width=20,
height=20,
border_radius=5,
),
ft.Container(
content=ft.Text("3"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade3,
width=20,
height=20,
border_radius=5,
),
ft.Container(
content=ft.Text("2"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade2,
width=20,
height=20,
border_radius=5,
),
ft.Container(
content=ft.Text("1"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade1,
width=20,
height=20,
border_radius=5,
),
]),
ft.Row([
ft.Text("Chemia", size=16, weight="normal"),
ft.Container(
content=ft.Text("6"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade6,
width=20,
height=20,
border_radius=5,
),
ft.Container(
content=ft.Text("5"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade5,
width=20,
height=20,
border_radius=5,
),
ft.Container(
content=ft.Text("4"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade4,
width=20,
height=20,
border_radius=5,
),
ft.Container(
content=ft.Text("3"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade3,
width=20,
height=20,
border_radius=5,
),
ft.Container(
content=ft.Text("2"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade2,
width=20,
height=20,
border_radius=5,
),
ft.Container(
content=ft.Text("1"),
margin=0,
padding=0,
alignment=ft.alignment.center,
bgcolor=grade1,
width=20,
height=20,
border_radius=5,
),
]),
],
expand=False,
spacing=10,
padding=10,
auto_scroll=False
)
]),
margin=20,
padding=10,
alignment=ft.alignment.top_left,
bgcolor='#271D1C',
width=420,
height=270,
border_radius=10,
),
]),
]),
# Grades page
ft.Column([
ft.Text(" Grades", size=30, weight="bold"),
]),
# Timetable page
ft.Column([
ft.Text(" Timetable", size=30, weight="bold"),
]),
# Homework page
ft.Column([
ft.Text(" Homework", size=30, weight="bold"),
]),
# Exams page
ft.Column([
ft.Text(" Exams", size=30, weight="bold"),
]),
# Attendance page
ft.Column([
ft.Text(" Attendance", size=30, weight="bold"),
]),
# Behaviour page
ft.Column([
ft.Text(" Behaviour Notes", size=30, weight="bold"),
]),
# Settings page
ft.Column([
ft.Text(" Settings", size=30, weight="bold"),
]),
]
return pages[index]
# Function to switch content
def update_content(index):
main_container.content = changePage(index)
page.update()
# Initial content display container
main_container = ft.Container(
content=changePage(0),
expand=True,
)
# Navigation Rail
bar = ft.NavigationRail(
selected_index=0,
label_type=ft.NavigationRailLabelType.ALL,
extended=False,
min_width=50,
min_extended_width=400,
group_alignment=0,
destinations=[
ft.NavigationRailDestination(
icon=ft.Icons.HOME_OUTLINED, selected_icon=ft.Icons.HOME, label="Home"
),
ft.NavigationRailDestination(
icon=ft.Icons.LOOKS_6_OUTLINED, selected_icon=ft.Icons.LOOKS_6, label="Grades"
),
ft.NavigationRailDestination(
icon=ft.Icons.BACKPACK_OUTLINED, selected_icon=ft.Icons.BACKPACK, label="Timetable"
),
ft.NavigationRailDestination(
icon=ft.Icons.BOOK_OUTLINED, selected_icon=ft.Icons.BOOK, label="Homework"
),
ft.NavigationRailDestination(
icon=ft.Icons.CALENDAR_TODAY_OUTLINED, selected_icon=ft.Icons.CALENDAR_TODAY, label="Exams"
),
ft.NavigationRailDestination(
icon=ft.Icons.EVENT_NOTE_OUTLINED, selected_icon=ft.Icons.EVENT_NOTE, label="Attendance"
),
ft.NavigationRailDestination(
icon=ft.Icons.STICKY_NOTE_2_OUTLINED, selected_icon=ft.Icons.STICKY_NOTE_2, label="Behaviour"
),
ft.NavigationRailDestination(
icon=ft.Icons.SETTINGS_OUTLINED, selected_icon=ft.Icons.SETTINGS_ROUNDED, label="Settings"
),
],
on_change=lambda e: update_content(e.control.selected_index),
)
page.add(
ft.Row(
[
bar,
main_container,
],
expand=True,
)
)
ft.app(main)