Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: filips123/GimVicUrnik
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v2.3.13
Choose a base ref
...
head repository: filips123/GimVicUrnik
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref
Loading
Showing with 15,269 additions and 13,625 deletions.
  1. +24 −6 .editorconfig
  2. +11 −34 .gitattributes
  3. +9 −9 .github/ISSUE_TEMPLATE/{malfunction.yaml → bug_report.yaml}
  4. +21 −13 .github/ISSUE_TEMPLATE/data_error.yaml
  5. +10 −10 .github/ISSUE_TEMPLATE/feature_request.yaml
  6. +14 −13 .github/workflows/api.yaml
  7. +14 −10 .github/workflows/deploy.yaml
  8. +64 −13 .github/workflows/website.yaml
  9. +15 −1 .gitignore
  10. +10 −0 .mailmap
  11. +8 −7 API/README.md
  12. +7 −3 API/config.yaml.sample
  13. +3 −1 API/gimvicurnik/__init__.py
  14. +4 −0 API/gimvicurnik/__main__.py
  15. +4 −4 API/gimvicurnik/blueprints/calendar.py
  16. +5 −1 API/gimvicurnik/blueprints/feed.py
  17. +41 −22 API/gimvicurnik/blueprints/menus.py
  18. +70 −32 API/gimvicurnik/blueprints/schedule.py
  19. +51 −8 API/gimvicurnik/blueprints/substitutions.py
  20. +32 −3 API/gimvicurnik/commands/__init__.py
  21. +8 −0 API/gimvicurnik/config/__init__.py
  22. +16 −13 API/gimvicurnik/database/__init__.py
  23. +1 −0 API/gimvicurnik/errors/__init__.py
  24. +5 −0 API/gimvicurnik/errors/solsis.py
  25. +3 −3 API/gimvicurnik/templates/atom.xml
  26. +6 −6 API/gimvicurnik/templates/rss.xml
  27. +1 −0 API/gimvicurnik/updaters/__init__.py
  28. +26 −17 API/gimvicurnik/updaters/base.py
  29. +100 −196 API/gimvicurnik/updaters/eclassroom.py
  30. +20 −6 API/gimvicurnik/updaters/menu.py
  31. +366 −0 API/gimvicurnik/updaters/solsis.py
  32. +44 −26 API/gimvicurnik/updaters/timetable.py
  33. +20 −0 API/gimvicurnik/utils/dates.py
  34. +1 −1 API/gimvicurnik/utils/flask.py
  35. +143 −0 API/gimvicurnik/utils/normalizers.py
  36. +1 −1 API/gimvicurnik/utils/sentry.py
  37. +1,008 −896 API/poetry.lock
  38. +24 −23 API/pyproject.toml
  39. +1 −1 README.md
  40. +0 −6 website/.browserslistrc
  41. +29 −15 website/.env.sample
  42. +0 −22 website/.eslintrc.js
  43. +12 −0 website/.prettierrc.json
  44. +5 −0 website/.yarnrc.yml
  45. +20 −13 website/README.md
  46. +0 −5 website/babel.config.js
  47. +42 −0 website/env.d.ts
  48. +50 −0 website/eslint.config.js
  49. +38 −0 website/index.html
  50. +41 −43 website/package.json
  51. +99 −0 website/plugins/preload.ts
  52. BIN website/public/img/icons/apple-touch-icon-120x120.png
  53. BIN website/public/img/icons/apple-touch-icon-152x152.png
  54. BIN website/public/img/icons/apple-touch-icon-180x180.png
  55. BIN website/public/img/icons/apple-touch-icon-60x60.png
  56. BIN website/public/img/icons/apple-touch-icon-76x76.png
  57. +1 −0 website/public/img/icons/favicon-maskable.svg
  58. +1 −0 website/public/img/icons/favicon-monochrome.svg
  59. BIN website/public/img/icons/msapplication-icon-144x144.png
  60. BIN website/public/img/icons/msapplication-icon-150x150.png
  61. BIN website/public/img/shortcuts/{documents.png → circulars.png}
  62. BIN website/public/img/shortcuts/{menus.png → menu.png}
  63. +0 −28 website/public/index.html
  64. +2 −0 website/public/robots.txt
  65. +153 −245 website/src/App.vue
  66. +0 −1 website/src/assets/logo.svg
  67. +157 −0 website/src/assets/main.css
  68. +33 −0 website/src/components/AppSnackbar.vue
  69. +54 −0 website/src/components/CircularsPassword.vue
  70. +70 −0 website/src/components/CommonAbout.vue
  71. +44 −0 website/src/components/MenuDisplay.vue
  72. +14 −0 website/src/components/NavigationDay.vue
  73. +34 −0 website/src/components/NavigationDesktop.vue
  74. +18 −0 website/src/components/NavigationMobile.vue
  75. +25 −0 website/src/components/SettingsAbout.vue
  76. +62 −0 website/src/components/SettingsBaseAction.vue
  77. +26 −0 website/src/components/SettingsBaseSwitch.vue
  78. +18 −0 website/src/components/SettingsFeedback.vue
  79. +53 −0 website/src/components/SettingsSelectAccentColor.vue
  80. +248 −0 website/src/components/SettingsSelectEntity.vue
  81. +30 −0 website/src/components/SettingsSelectMenuLunch.vue
  82. +30 −0 website/src/components/SettingsSelectMenuSnack.vue
  83. +30 −0 website/src/components/SettingsSelectTheme.vue
  84. +39 −0 website/src/components/SettingsSetDataCollection.vue
  85. +50 −0 website/src/components/SettingsSetMoodleToken.vue
  86. +57 −0 website/src/components/SourcesExpansionPanel.vue
  87. +28 −0 website/src/components/SubscribeDisplay.vue
  88. +128 −0 website/src/components/TimetableDetails.vue
  89. +214 −0 website/src/components/TimetableDisplay.vue
  90. +46 −0 website/src/components/TimetableEmptyClassrooms.vue
  91. +79 −0 website/src/components/TimetableLesson.vue
  92. +23 −0 website/src/components/TimetableLessonLink.vue
  93. +24 −0 website/src/components/WelcomeInformation.vue
  94. +0 −20 website/src/components/base/Loading.vue
  95. +0 −207 website/src/components/documents/DocumentList.vue
  96. +0 −60 website/src/components/documents/DocumentsPassword.vue
  97. +0 −119 website/src/components/menus/MenuDisplay.vue
  98. +0 −48 website/src/components/navigation/DayNavigation.vue
  99. +0 −69 website/src/components/navigation/ViewNavigationDesktop.vue
  100. +0 −32 website/src/components/navigation/ViewNavigationMobile.vue
  101. +0 −52 website/src/components/settings/About.vue
  102. +0 −51 website/src/components/settings/DataCollectionSelection.vue
  103. +0 −117 website/src/components/settings/EntitySelection.vue
  104. +0 −50 website/src/components/settings/LunchSelection.vue
  105. +0 −59 website/src/components/settings/MoodleToken.vue
  106. +0 −39 website/src/components/settings/SettingsAction.vue
  107. +0 −25 website/src/components/settings/SettingsSwitch.vue
  108. +0 −62 website/src/components/settings/SnackSelection.vue
  109. +0 −66 website/src/components/settings/ThemeSelection.vue
  110. +0 −63 website/src/components/settings/entitySelection/SelectClass.vue
  111. +0 −62 website/src/components/settings/entitySelection/SelectClassroom.vue
  112. +0 −57 website/src/components/settings/entitySelection/SelectTeacher.vue
  113. +0 −42 website/src/components/settings/entitySelection/SelectType.vue
  114. +0 −47 website/src/components/settings/entitySelection/WelcomeInfo.vue
  115. +0 −76 website/src/components/subscribe/UrlDisplay.vue
  116. +0 −133 website/src/components/timetable/LessonDetails.vue
  117. +0 −236 website/src/components/timetable/TimetableDay.vue
  118. +0 −24 website/src/components/timetable/TimetableLink.vue
  119. +0 −298 website/src/components/timetable/TimetableWeek.vue
  120. +28 −0 website/src/composables/snackbar.ts
  121. +14 −11 website/src/main.ts
  122. +7 −0 website/src/plugins/pinia.ts
  123. +161 −18 website/src/plugins/vuetify.ts
  124. +268 −112 website/src/registerSentry.ts
  125. +62 −28 website/src/registerServiceWorker.ts
  126. +108 −0 website/src/router/guards.ts
  127. +62 −27 website/src/router/index.ts
  128. +0 −11 website/src/shims-tsx.d.ts
  129. +0 −4 website/src/shims-vue.d.ts
  130. +0 −4 website/src/shims-vuetify.d.ts
  131. +0 −23 website/src/store/index.ts
  132. +0 −158 website/src/store/modules/settings.ts
  133. +0 −30 website/src/store/modules/state.ts
  134. +0 −339 website/src/store/modules/storage.ts
  135. +38 −0 website/src/stores/documents.ts
  136. +54 −0 website/src/stores/food.ts
  137. +31 −0 website/src/stores/lists.ts
  138. +22 −0 website/src/stores/session.ts
  139. +100 −0 website/src/stores/settings.ts
  140. +214 −0 website/src/stores/timetable.ts
  141. +165 −0 website/src/utils/colors.ts
  142. +55 −17 website/src/utils/days.ts
  143. +10 −0 website/src/utils/documents.ts
  144. +29 −0 website/src/utils/entities.ts
  145. +0 −1 website/src/utils/hours.ts
  146. +143 −0 website/src/utils/localization.ts
  147. +34 −0 website/src/utils/router.ts
  148. +0 −10 website/src/utils/snackbar.ts
  149. +36 −0 website/src/utils/times.ts
  150. +0 −157 website/src/utils/timetable.ts
  151. +67 −0 website/src/utils/update.ts
  152. +0 −52 website/src/views/Documents.vue
  153. +0 −39 website/src/views/Home.vue
  154. +0 −105 website/src/views/Menus.vue
  155. +4 −35 website/src/views/NotFound.vue
  156. +0 −357 website/src/views/Settings.vue
  157. +0 −74 website/src/views/Subscribe.vue
  158. +0 −198 website/src/views/Timetable.vue
  159. +128 −0 website/src/views/ViewCirculars.vue
  160. +54 −0 website/src/views/ViewMenu.vue
  161. +197 −0 website/src/views/ViewSettings.vue
  162. +22 −0 website/src/views/ViewSources.vue
  163. +32 −0 website/src/views/ViewSubscribe.vue
  164. +51 −0 website/src/views/ViewTimetable.vue
  165. +18 −0 website/src/views/ViewWelcome.vue
  166. +0 −29 website/src/views/Welcome.vue
  167. +13 −0 website/tsconfig.app.json
  168. +10 −36 website/tsconfig.json
  169. +17 −0 website/tsconfig.node.json
  170. +199 −0 website/vite.config.ts
  171. +0 −119 website/vue.config.js
  172. +8,478 −7,760 website/yarn.lock
30 changes: 24 additions & 6 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -4,19 +4,37 @@

root = true

# General
[*]
charset = utf-8
end_of_line = lf
indent_style = space
indent_size = 4
insert_final_newline = true
trim_trailing_whitespace = true

# Web & Data
[*.{html,css,sass,scss,xml,js,jsx,jsm,ts,tsx,vue,json,yaml,yml,webmanifest}]
# == Native

# Programs
[*.py]
indent_size = 4

# Data
[*.toml]
indent_size = 4

# == Web

# HTML
[*.{html,svelte,vue}]
indent_size = 2

# Scripts
[*.{js,jsx,cjs,mjs,ts,tsx,cts,mts}]
indent_size = 2

# Stylesheets
[*.{css,sass,scss}]
indent_size = 2

# Configuration
[.*rc]
# Data
[*.{json,yaml,yml,xml,webmanifest}]
indent_size = 2
45 changes: 11 additions & 34 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -8,44 +8,21 @@
*.css diff=css
*.htm diff=html
*.html diff=html
*.php diff=php
*.vue diff=html
*.py diff=python
*.md diff=markdown
*.sh diff=bash

# Declare files that are binary
*.pdf binary
*.bmp binary
*.gif binary
*.ico binary
*.jpg binary
*.jpeg binary
*.png binary
*.tif binary
*.tiff binary
*.wbmp binary
*.webp binary
*.mp3 binary
*.ogg binary
*.mov binary
*.mp4 binary
*.mpeg binary
*.webm binary
*.tar binary
*.zip binary
*.phar binary

# Declare files that must have CRLF line endings
*.bat text eol=crlf
*.cmd text eol=crlf
*.ps1 text eol=crlf
# Mark Yarn files as generated
*/.yarn/** linguist-vendored
*/.yarn/releases/* binary
*/.yarn/plugins/**/* binary
*/.pnp.* binary linguist-generated

# Exclude unused files in archive
.editorconfig export-ignore
.gitattributes export-ignore
.gitignore export-ignore
.editorconfig export-ignore
.scrutinizer.yml export-ignore
.travis.yml export-ignore
.github export-ignore
phpunit.xml.dist export-ignore
phpcs.xml.dist export-ignore
phpdoc.xml.dist export-ignore
box.json.dist export-ignore
benches export-ignore
tests export-ignore
Original file line number Diff line number Diff line change
@@ -1,38 +1,38 @@
name: Napaka v delovanju
description: Napišite poročilo o napaki v delovanju.
labels: ["bug"]
body:
- type: markdown
attributes:
value: |
Hvala, ker ste si vzeli čas za izpolnitev tega poročila!
value: Hvala, ker ste si vzeli čas za izpolnjevanje tega poročila!
- type: textarea
id: description
attributes:
label: Opis napake
description: Kolikor vam je mogoče podrobno opisati napako.
description: Čim bolj podrobno opišite napako, ki ste jo opazili.
validations:
required: true
- type: input
id: os
attributes:
label: Operacijski sistem
description: V katerem operacijskem sistemu se pojavlja ta napaka (po možnosti z verzijo)?
placeholder: Android 13, iOS 16, Windows 11 itd.
placeholder: npr. Android 14, iOS 17.6, Windows 11, itd.
validations:
required: true
- type: input
id: browser
attributes:
label: Brskalnik
description: V katerem brskalniku se pojavlja ta napaka?
placeholder: Chrome, Safari, Firefox itd.
description: V katerem brskalniku se pojavlja ta napaka (po možnosti z verzijo)?
placeholder: npr. Chrome 128, Firefox 130, Safari 17.6, itd.
validations:
required: true
- type: textarea
id: screenshot
attributes:
label: Posnetek zaslona telefona/računalnika
description: V primeru, če imate vizualne napake, lahko tu prilepite svoj posnetek zaslona.
label: Posnetek zaslona
description: V primeru, da imate vizualne napake, lahko tu prilepite svoj posnetek zaslona.
placeholder: Kliknite v to besedilno polje in prilepite svoj posnetek zaslona.
validations:
required: false
required: false
34 changes: 21 additions & 13 deletions .github/ISSUE_TEMPLATE/data_error.yaml
Original file line number Diff line number Diff line change
@@ -1,47 +1,55 @@
name: Napaka v podatkih
description: Napišite poročilo o napaki v podatkih.
labels: ["bug"]
body:
- type: markdown
attributes:
value: |
Hvala, ker ste si vzeli čas za izpolnitev tega poročila!
value: Hvala, ker ste si vzeli čas za izpolnjevanje tega poročila!
- type: dropdown
id: datatype
attributes:
label: Vrsta podatka
description: Pri katerem podatku, se je pojavila napaka?
description: Pri katerem podatku se je pojavila napaka?
options:
- Urnik
- Jedilniki
- Okrožnice
- Nadomeščanja
- Okrožnice
- Jedilniki
- Razporedi kosil
validations:
required: true
- type: dropdown
id: viewtype
attributes:
label: Vrsta pogleda
description: Pri katerem pogledu, se je pojavila napaka?
description: Pri katerem pogledu se je pojavila napaka?
options:
- Razred
- Profesor
- Učilnica
validations:
required: true
required: false
- type: input
id: viewlist
attributes:
label: Ime pogleda
description: Pri katerem pogledu se je pojavila napaka?
placeholder: npr. 4A, MINF, MZGO
validations:
required: false
- type: textarea
id: error
id: description
attributes:
label: Opis napake
description: Kolikor vam je mogoče podrobno opisati napako.
placeholder: npr. Namesto geografije 3. uro je bila napisana 4. uro
description: Čim bolj podrobno opišite napako, ki ste jo opazili.
placeholder: npr. Namesto geografije 3. uro je bila napisana kemija.
validations:
required: true
- type: input
id: date
attributes:
label: Datum
description: Vpišite datum, ko se je zgodila napaka (dd. mm. yyyy)
placeholder: npr. 29. 12. 2023
description: Vnesite datum, ko se je zgodila napaka (dd. mm. yyyy).
placeholder: npr. 27. 5. 2024
validations:
required: false
required: false
20 changes: 10 additions & 10 deletions .github/ISSUE_TEMPLATE/feature_request.yaml
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
name: Prošnja za funkcijo
description: Napišite izboljšavo obstoječih funkcij ali novo funkcijo
description: Napišite predlog za izboljšavo obstoječih funkcij ali dodajanja novih.
labels: ["enhancement"]
body:
- type: markdown
attributes:
value: |
Hvala, ker ste si vzeli čas za izpolnitev tega poročila!
value: Hvala, ker ste si vzeli čas za izpolnjevanje tega poročila!
- type: textarea
id: idea
id: description
attributes:
label: Vaša zamisel
description: V nekaj stavkih opišite svojo zamisel.
validations:
required: true
- type: textarea
id: whatfor
id: problem
attributes:
label: Problem, ki ga reši
label: Rešen problem
description: Kakšen problem bi rešila vaša zamisel?
validations:
required: true
- type: textarea
id: other
id: context
attributes:
label: Slike vaše zamisli
description: Kako bi izgledala vaša zamisel? Kako rešijo to druge aplikacije?
label: Več informacij
description: Kako bi izgledala vaša zamisel? Kako to rešujejo druge aplikacije?
validations:
required: false
required: false
27 changes: 14 additions & 13 deletions .github/workflows/api.yaml
Original file line number Diff line number Diff line change
@@ -24,13 +24,12 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Configure Poetry cache
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: |
~/.cache/black
~/.cache/pip
~/.cache/pypoetry
~/.local/share/pypoetry
@@ -40,9 +39,9 @@ jobs:
restore-keys: ${{ runner.os }}-poetry-lint-

- name: Install Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: "3.11"
python-version: "3.13"

- name: Install Poetry
run: |
@@ -53,22 +52,24 @@ jobs:
- name: Install dependencies
run: poetry install --extras sentry

- name: Lint the project with ruff
run: ruff gimvicurnik
- name: Lint the project with ruff check
if: always()
run: ruff check --output-format=github

- name: Lint the project with black
run: black gimvicurnik --check
- name: Lint the project with ruff format
if: always()
run: ruff format --check

typecheck:
name: Typechecking
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Configure Poetry cache
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: |
~/.cache/pip
@@ -80,9 +81,9 @@ jobs:
restore-keys: ${{ runner.os }}-poetry-typecheck-

- name: Install Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: "3.11"
python-version: "3.13"

- name: Install Poetry
run: |
Loading