|
|
f9f812caf0
|
chore(.gitignore): ignore gitea data
|
2026-04-22 20:39:59 +02:00 |
|
|
|
299a600b09
|
fix(docker-compose.yml): run gitea on host network
|
2026-04-22 20:39:47 +02:00 |
|
|
|
0cb2794eff
|
chore(gitea): add gitea config
|
2026-04-22 20:39:26 +02:00 |
|
|
|
3d51c6f043
|
build(uv.lock): update depedencies
|
2026-04-22 20:38:27 +02:00 |
|
|
|
2a15556513
|
refactor(base.py): use relative DB path
|
2026-04-22 20:38:14 +02:00 |
|
|
|
ffa0b03661
|
fix(signals.py): fix repo creation even if create_gitea_repo False
|
2026-04-22 20:37:42 +02:00 |
|
|
|
3ec8963030
|
chore(0023): add EventIndexPage
|
2026-04-22 20:36:39 +02:00 |
|
|
|
d70bf79107
|
feat(pages.py): add EventIndexPage
|
2026-04-22 20:36:22 +02:00 |
|
|
|
daf0b05bb8
|
feat: add gitea docker
|
2026-04-02 14:59:29 +02:00 |
|
|
|
35d6bb5f2e
|
docs(README.md): add README
|
2026-04-02 10:40:09 +02:00 |
|
|
|
dd936473d8
|
feat(signals.py): create per-lesson repositories on ModuleLessonPage save
|
2026-03-30 10:58:01 +02:00 |
|
|
|
787440d56f
|
chore(migrations/0022): create BlogIndexPage and BlogPage
|
2026-03-30 10:13:12 +02:00 |
|
|
|
37b0a6a95b
|
feat(pages.py): add blog pages
|
2026-03-30 10:13:12 +02:00 |
|
|
|
345914a519
|
chore(migrations/0021): add create_gitea_repo and gitea_repo_url to ModuleLessonPage
|
2026-03-30 10:13:12 +02:00 |
|
|
|
7e24ded8ee
|
fix(pages.py): generate event occurrences only if live
|
2026-03-30 10:13:12 +02:00 |
|
|
|
64edf6656e
|
feat(pages.py): add per-lesson repo fields
|
2026-03-30 10:13:03 +02:00 |
|
|
|
a2ad8e7ac9
|
feat(module_lesson_page.html): add link to course library
|
2026-03-23 14:03:38 +01:00 |
|
|
|
a0b4697c61
|
feat(course_module_page.html): add link to course library
|
2026-03-23 14:03:29 +01:00 |
|
|
|
983384f62b
|
feat(course_page.html): add link to course library in CoursePage
|
2026-03-23 14:03:10 +01:00 |
|
|
|
668ddccea5
|
feat(settings/base.py): add LOGGING config
|
2026-03-23 14:02:24 +01:00 |
|
|
|
6dd826c3bd
|
feat(home/signals.py): create gitea team and repo for course on CoursePage save
|
2026-03-23 14:02:07 +01:00 |
|
|
|
e74c1fb28d
|
chore(migrations/0020): add repository_url field to CoursePage
|
2026-03-23 13:46:24 +01:00 |
|
|
|
cb19bc6262
|
feat(models/pages.py): add repository_url field to CoursePage
|
2026-03-23 13:45:19 +01:00 |
|
|
|
a918ee73c4
|
fix(models/pages.py): ensure course has ID before creating group
|
2026-03-23 13:44:33 +01:00 |
|
|
|
5913e847bc
|
refactor(forms.py): move gitea account creation login to separate function
|
2026-03-20 14:47:12 +01:00 |
|
|
|
18b21b0892
|
feat(forms.py): create gitea account on signup
|
2026-03-20 14:37:40 +01:00 |
|
|
|
efb3799e12
|
feat(forms.py): capitalize first and last name
|
2026-03-20 14:37:22 +01:00 |
|
|
|
306d39bd22
|
feat(oauth_validators.py): use user ID for gitea username
|
2026-03-20 14:36:27 +01:00 |
|
|
|
e503d69235
|
feat(locale/pl): update polish locale
|
2026-03-20 13:22:39 +01:00 |
|
|
|
57ec3162d0
|
feat(locale/en): update english locale
|
2026-03-20 13:22:39 +01:00 |
|
|
|
c4e9ec5484
|
feat(kursy/urls.py): include purchase urls
|
2026-03-20 13:18:39 +01:00 |
|
|
|
c8732a05cb
|
chore(settings/base.py): add purchase to INSTALLED_APPS
|
2026-03-20 13:18:07 +01:00 |
|
|
|
6810e540e5
|
feat(purchase/views.py): add purchase and refund views
|
2026-03-20 13:17:47 +01:00 |
|
|
|
21500e0f10
|
feat(purchase/urls.py): add purchase/urls.py
|
2026-03-20 13:17:18 +01:00 |
|
|
|
be42d71bb8
|
feat(course_page.html): add refund button and make purchase button work
|
2026-03-20 13:16:36 +01:00 |
|
|
|
b5e9e1ec66
|
feat(home/models/pages.py): add mock purchase login and auto group creation
|
2026-03-20 13:16:00 +01:00 |
|
|
|
d575c836e9
|
feat(purchase/models.py): handle mock refunds
|
2026-03-20 13:14:03 +01:00 |
|
|
|
84a6c4cf5e
|
feat(purchase/): add purchase app
|
2026-03-20 12:03:57 +01:00 |
|
|
|
e46f034d9e
|
refactor(header.html): use 'Calendar' instead of 'Course Calendar' as it's shorter
|
2026-03-19 18:18:04 +01:00 |
|
|
|
dc7e34f5b6
|
feat(locale/en): update english translations
|
2026-03-19 18:16:20 +01:00 |
|
|
|
f002651e2a
|
feat(locale/pl): update polish translations
|
2026-03-19 18:16:09 +01:00 |
|
|
|
c789eeb4ff
|
feat(header.html): make header sticky on desktop
|
2026-03-19 18:11:14 +01:00 |
|
|
|
acb6ea58ce
|
chore(templates/welcome_page.html): remove unused template
|
2026-03-19 17:58:56 +01:00 |
|
|
|
72fca4228c
|
feat(home/course_page.html): add description to course page template
|
2026-03-19 17:56:53 +01:00 |
|
|
|
9f779407af
|
feat(header.html): add link to course index page and move course calendar to left side
|
2026-03-19 17:56:27 +01:00 |
|
|
|
f2f594afb6
|
feat(templates/course_index_page.html): add CourseIndexPage template
|
2026-03-19 17:55:31 +01:00 |
|
|
|
95ab896e5f
|
chore(migrations/0019): add description to CoursePage
|
2026-03-19 17:54:57 +01:00 |
|
|
|
4f58cb0320
|
feat(models/pages.py): add description field to CoursePage
|
2026-03-19 17:54:35 +01:00 |
|
|
|
294ea9a28b
|
chore(migrations/0018): add CourseIndexPage
|
2026-03-19 17:54:15 +01:00 |
|
|
|
e56aff1a5c
|
feat(models/pages.py): add CourseIndexPage
|
2026-03-19 17:53:53 +01:00 |
|