|
|
41af6dcb7c
|
chore(purchase/migrations/0008): remove obsolete PurchasableProduct.stripe_payment_url field
|
2026-05-20 19:12:26 +02:00 |
|
|
|
e399d98f31
|
chore(purchase/models.py): remove obsolete PurchasableProduct.stripe_payment_url field
|
2026-05-20 19:12:11 +02:00 |
|
|
|
33d2b89b07
|
feat(purchase/urls.py): add route to create_checkout_session view
|
2026-05-20 19:05:52 +02:00 |
|
|
|
118a1188d5
|
feat(purchase/views.py): use custom stripe session and auto-finalize purchase via webhook
|
2026-05-20 19:05:18 +02:00 |
|
|
|
6d927856c8
|
feat: add stripe webhook
|
2026-05-19 21:14:04 +02:00 |
|
|
|
d2c870414f
|
feat(course_page.html): use stripe payment links
|
2026-05-18 18:08:21 +02:00 |
|
|
|
4dbfb8fc41
|
feat(base.py): add STRIPE_SUCCESS_URL
|
2026-05-18 18:07:58 +02:00 |
|
|
|
2065f3c9c5
|
feat(pages.py): add support for creating PurchasableProduct from within CoursePage
|
2026-05-18 18:07:39 +02:00 |
|
|
|
b24e48f1b1
|
chore(purchase/migrations): add migrations 0005 & 0006
|
2026-05-18 18:06:45 +02:00 |
|
|
|
211dcc4f67
|
feat(purchase/models.py): create payment links and sync name and description from coursepage
|
2026-05-18 18:06:16 +02:00 |
|
|
|
a3cd8d42fa
|
feat: remove Products admin page
|
2026-05-18 18:05:16 +02:00 |
|
|
|
6471b98ec2
|
feat: add Products form to admin
|
2026-05-18 17:07:15 +02:00 |
|
|
|
3b46a18b29
|
feat(stripe_client.py): use SITE_URL in callback
|
2026-05-18 15:56:41 +02:00 |
|
|
|
3bc11bf58d
|
feat(base.py): add SITE_URL const
|
2026-05-18 15:54:00 +02:00 |
|
|
|
9041ecd206
|
feat: first stripe imp
|
2026-05-06 19:27:00 +02:00 |
|
|
|
1fdd316d0d
|
feat(models.py): add users to gitea teams on purchase/refund
|
2026-05-05 12:46:07 +02:00 |
|
|
|
da5662ceee
|
feat(base.py): add GITEA_ROOT_URL and configure logger
|
2026-05-05 12:45:35 +02:00 |
|
|
|
9acb4c8d7c
|
feat(module_lesson_page.html): auto login to gitea when viewing repo
|
2026-05-05 12:45:08 +02:00 |
|
|
|
36c14ab939
|
feat(pages.py): add gitea login redirect url property for handling links to repo
|
2026-05-05 12:44:37 +02:00 |
|
|
|
a9d7aef6dd
|
feat(signals.py): add gitea repo to team
|
2026-05-05 12:44:01 +02:00 |
|
|
|
fa942809d9
|
chore(signals.py): remove unused commented code
|
2026-05-05 12:43:28 +02:00 |
|
|
|
29f8475b88
|
feat(module_lesson_page.html): add link to Gitea code
|
2026-04-23 19:56:09 +02:00 |
|
|
|
1875c6fd97
|
feat(blog_page.html): add BlogPage template
|
2026-04-23 19:54:51 +02:00 |
|
|
|
92aa1fc024
|
feat(blog_index_page.html): add BlogIndexPage template
|
2026-04-23 19:54:20 +02:00 |
|
|
|
3551d2b654
|
feat(header.html): add blog link to header
|
2026-04-23 19:54:02 +02:00 |
|
|
|
4c21e324f6
|
feat(pages.py): add posts ctx variable to BlogIndexPage
|
2026-04-23 19:53:41 +02:00 |
|
|
|
80a80553fe
|
chore(home/views.py): remove debug print
|
2026-04-23 19:13:30 +02:00 |
|
|
|
15e74660f5
|
feat(admin_chat.html): add back button to admin chat
|
2026-04-23 19:13:10 +02:00 |
|
|
|
2b34cadf24
|
refactor(admin_chat.html): style chat
|
2026-04-23 19:09:46 +02:00 |
|
|
|
6dd3355087
|
refactor(user_chat.html): style chat
|
2026-04-23 18:58:31 +02:00 |
|
|
|
bfdc953e0f
|
feat(header.html): add chat link to header
|
2026-04-23 18:57:39 +02:00 |
|
|
|
27567caf78
|
fix(forms.py): fix error when gitea account already exists
|
2026-04-23 18:57:18 +02:00 |
|
|
|
97df6349ab
|
feat(pages.py): delete event's future occurrences if unpublished
|
2026-04-23 18:17:24 +02:00 |
|
|
|
6d355b603d
|
fix(pages.py): fix event's other occurrences not being deleted when changing event from recurrent to single
Closes #1
|
2026-04-23 18:10:05 +02:00 |
|
|
|
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 |
|