168c877970refactored lists to have more descriptive urlpatterns; cascading changes across API, dashboard app & even FTs; restarted staging server db w. new migrations
main
Disco DeDisco
2026-02-22 23:56:29 -05:00
94f3120addrefactored to green: all references in urlpatterns thruout project to apps/ dir now skip it & point directly to the app contained w.in (i.e., not apps/lyric/ or apps/dashboard/, but lyric/ or dashboard/ now
Disco DeDisco
2026-02-22 22:08:34 -05:00
a8c199b719ensured in apps.dashboard.views, w. passing ITs in .tests.integrated.test_views & passing FT in functional_tests.test_sharing, passes only to recipients & owner
Disco DeDisco
2026-02-22 21:50:25 -05:00
17eb83c760plugged share_list() FBV ability for user to share list w. self as recipient
Disco DeDisco
2026-02-22 21:18:22 -05:00
44c335b089added superuser support in apps.lyric.admin & new manage.py cmd ensure_superuser; .tests.integrated.test_admin & .test_management_commands green
Disco DeDisco
2026-02-22 20:42:33 -05:00
87ef197823enabled redis alongside celery, but waiting on true caching functionality—flash messages will behave better w. cache_page after they rely on htmx library, not current full-page reload
Disco DeDisco
2026-02-21 23:13:23 -05:00
a9e635f40efix for functional_tests.test_login, which still relied on old mock logic, no longer in apps.lyric.views, but handled by celery in apps.lyric.tasks
Disco DeDisco
2026-02-21 22:03:03 -05:00
04e28b96c8offloaded some apps.lyric.views responsibilities to new Celery depend fn in .tasks; core.celery created for celery config; CELERY_BROKER_URL added to .settings & throughout project; some lyric view IT responsibility now accordingly covered by task UT domain
Disco DeDisco
2026-02-21 21:35:15 -05:00
880fcb5bcfmore consistent DRF installation in pipeline
Disco DeDisco
2026-02-20 16:58:55 -05:00
9bdc358e59commenced DRF efforts w. package installation, creation of apps.api, w. UTs & ITs to ensure core efficacy; core.settings & .urls changed to accomodate
Disco DeDisco
2026-02-20 16:37:48 -05:00
ed21730a38when clause fixes in .woodpecker.yaml
Disco DeDisco
2026-02-20 15:16:19 -05:00
4b558020afadded staging & prod https support to core.settings
pre-drf
Disco DeDisco
2026-02-20 13:33:11 -05:00
5106b04175updated User creation method in functional_tests.management.commands.create_session
Disco DeDisco
2026-02-19 20:50:31 -05:00
025a59938breenabled admin area; outfitted apps.lyric.models w. AbstractBaseUser instead of custom user class; many other fns & several models updated to accomodate, such as set_unusable_password() method to base user model; reset staging db to prepare for refreshed lyric migrations to accomodate for retrofitted pw field
Disco DeDisco
2026-02-19 20:31:29 -05:00
d26196a7f1added CSRF_TRUSTED_ORIGINS to core.settings, now that https added
Disco DeDisco
2026-02-18 23:32:43 -05:00
84fd0554bdmoved adman magic link to howdy.earthmanrpg.com, in anticipation of having to mirror the prod server location; staging server preserved, along w. gitea & woodpecker, on earthmanrpg.me
Disco DeDisco
2026-02-18 23:04:21 -05:00
a1e7ae8071added coverage dependency; 99 percent test coverage (only lacking admin, currently by design); commenced postgresql db integration
Disco DeDisco
2026-02-18 20:18:56 -05:00
a06fce26efreorganized and reclassified old 'unit tests' for ea. app into dirs for UTs & ITs; abandoning effort to refactor any test_views into UTs; all tests passing
Disco DeDisco
2026-02-18 19:07:02 -05:00
c41624152aadded headless option to .test_sharing for woodpecker FT run
Disco DeDisco
2026-02-18 15:24:55 -05:00
64d4ba9542added to apps.dashboard.views, share_list() FBV, a try/except catch that accounts for nonexistent users; .test.test_views ensures functionality
Disco DeDisco
2026-02-18 15:14:35 -05:00
0370f36e9elist sharing implemented w. passing UTs & FTs; changes to apps.dashboard.urls, .models, .views & .tests.test_views to accomodate; functional_tests.test_sharing also ensures sharing visible in UX; templates/apps/dashboard/list.html & /my_lists.html updated with django templating & for loops
Disco DeDisco
2026-02-18 13:53:05 -05:00
a85e0597d7created functional_tests.my_lists_page to contain helpers for viewing shared lists; refactored several other FTs to passing
Disco DeDisco
2026-02-17 23:27:54 -05:00
e32c6bbfd6created functional_tests.list_page to handle common FT helpers; almost every FT file affected & less reliant on .base, which no longer contains those helpers
Disco DeDisco
2026-02-17 23:07:12 -05:00
e26ee5af1dnew functional_tests.test_sharing FT for sharing lists; create_pre_authenticated_session() moved from .test_my_lists to .base
Disco DeDisco
2026-02-17 21:19:24 -05:00
d74189f0b7ensured my_list is viewable by auth user only
Disco DeDisco
2026-02-17 20:26:42 -05:00
877e3f35cfhoping to sidestep CD permissions issue w. python call in infra/deploy.sh.j2
Disco DeDisco
2026-02-17 18:21:50 -05:00
9a1a79fb9aadded .gitattributes for real this time
Disco DeDisco
2026-02-17 17:57:20 -05:00
2a9ac4c0f0renormalized to LF end of line sequences for all files for CD compatibility; created .gitattributes @ project root to manage it; defined {{ ansible_user }} more explicitly in the ansible playbook
Disco DeDisco
2026-02-17 17:48:09 -05:00
510874b87ccreated CD pipeline to complement the existing gitea/woodpecker CI pipeline: build, push to registry, deploy to staging on main
Disco DeDisco
2026-02-13 15:27:59 -05:00
e02385118fintentially broke functional_tests.test_login to ensure screendumps functionality works on test runner failure in pipeline
Disco DeDisco
2026-02-11 15:29:02 -05:00
71b35242ebintentially broke functional_tests.test_login to ensure screendumps functionality works on test runner failure in pipeline
Disco DeDisco
2026-02-11 15:20:25 -05:00
bcadb28017functional_tests.base updated w. many helper functions to save screendumps on server after test failures; woodpecker pipeline updated accordingly
Disco DeDisco
2026-02-11 15:12:04 -05:00
7f61dbd205inadvertently committed Jasmine while most of Jasmine was ignored under .gitignore
Disco DeDisco
2026-02-11 14:50:32 -05:00
5d0a1401d8created new dir for STATICFILES_DIRS in core.settings; all Jasmine test files transferred to new dir src/static_src/; new FT test_jasmine executes Jasmine test runner as part of CI pipeline & base FT has dobules MAX_WAIT to 10s; some cleanup of unused imports in text_simple_list_creation
Disco DeDisco
2026-02-11 14:42:38 -05:00
a98a0fcd53added Jasmine test suite from inside src/static dir to git repo
Disco DeDisco
2026-02-11 13:43:59 -05:00
d1c715ab0c.woodpecker.yaml FT step now covers collectstatic
Disco DeDisco
2026-02-11 13:26:55 -05:00
0222aa9ea2.woodpecker.yaml pipeline updated with first-push FT testing
Disco DeDisco
2026-02-11 12:54:49 -05:00
5ff0e4ec10commented out second step of .woodpecker.yaml to confirm working test pipeline
Disco DeDisco
2026-02-10 22:44:10 -05:00
b94f1f48aaDockerfile.ci & debug-ci now build working container for CI test image
Disco DeDisco
2026-02-10 22:42:45 -05:00
9fa428c63aadded cssselect to requirements.txt to accompany lxml library from previous commit
Disco DeDisco
2026-02-10 21:45:49 -05:00
5a633dcceeapps.lyric.views and .tests.test_views updated for better Mailgun API post mocking; UTs passing locally
Disco DeDisco
2026-02-10 21:42:15 -05:00
fec1cfcb30Gitea repo init; Woodpecker pipeline init; much CI/CD structure outlined in ./infra, incl. docker-compose.yaml, cicd-playbook.yaml, new cicd vault, & config files for gitea, woodpecker & ansible
Disco DeDisco
2026-02-10 21:16:00 -05:00
4e1feddb45new name @property in List model, replete w. proper testing in tests.test_models
Disco DeDisco
2026-02-08 22:50:03 -05:00
94a161fe09List objects now container owner values, saved upon creation, linked to user fk; apps.dashboard.views updated accordingly; 36 UTs passing (2 new)
Disco DeDisco
2026-02-08 22:33:15 -05:00
6c0e9bb6ecnew_list() FBV tries to assign List owner, but List() model has no such attr
Disco DeDisco
2026-02-08 22:23:43 -05:00
c176fe6cb3new UT ensures correct list ownership from apps.dashboard.views
Disco DeDisco
2026-02-08 22:18:41 -05:00
fad8657c97placeholder view & code for my_lists.html implemented
Disco DeDisco
2026-02-08 21:52:04 -05:00
306b4c8e5enew template _partials for apps.dashboard, incl. _form.html & _scripts.html; respective form, table & content code offloaded from base.html, home.html & list.html; functional_tests.test_my_list TODO resumed (only FT not currently passing, but this is as expected)
Disco DeDisco
2026-02-08 21:43:58 -05:00
8190317c21nginx compatibility added to serve static files on server; whitenoise installed to catch static file serving in local docker container, also added to core.settings middleware; console logs & print statements removed from dashboard.js & functional_tests.container_commands; ansible playbook and nginx config file support nginx w.in deployment workflow
Disco DeDisco
2026-02-08 17:55:09 -05:00
07a76cb32dadded new template apps/dashboard/my_lists.html; all FTs passing green locally, tho half og .test_my_lists TODO'd out; test_login uses mock-patch architecture to avoid Mailgun and DigitalOcean magic login link testing restraints
Disco DeDisco
2026-02-07 22:47:04 -05:00
0c413a9cc2pre–db-reset commit; attempting to update User model w. uuid pk enumeration
Disco DeDisco
2026-02-07 20:15:27 -05:00
58b526f434add_list_item() helper added to functional_tests.base; further propagated into .test_layout_and_styling, .test_list_item_validation, .test_my_lists & .test_simple_list_creation; all FTs passing locally (tho js-dependent FT still require nginx to serve scripts properly in docker or on server)
Disco DeDisco
2026-02-07 19:44:47 -05:00
10ba5b84e4after many diversions and forlorn pivot from copilot to claude, new infra/ structure contains group_vars and ansible vaults; requests added to dev and prod dependencies; apps.lyric.views and core .settings both abandon django's send_mail(); instead incorporate requests to target Mailgun's HTTP API (DigitalOcean's SMTP blocker thwarted previous magic login link email attempts, but this issue has been resol ved with this commit)
Disco DeDisco
2026-02-07 18:58:17 -05:00
449b40e12enew functional_tests.container_commands file discerns local from server containers; .base calls now calls reset_database() therefrom; .test_my_lists also discerns test server location for different session keys; functional_tests restored as app in core.settings
Disco DeDisco
2026-02-03 22:14:55 -05:00
55bb589f61added functional_tests to installed apps in core.settings (but only when debug is true); created management dir to contain new django cmds & listed in .dockerignore; created management.create_session cmd; recreated container.db.sqlite3; tweaked test_server setup in functional_tests.base; added test_server failsafe to magic link login testing in .test_login
Disco DeDisco
2026-02-03 14:54:37 -05:00
3fdd07e003wrapped most helper functions in functional_tests.base in the new @wait decorator, including wait_for() itself; all UTs & FTs passing
Disco DeDisco
2026-02-01 20:38:26 -05:00
2db1c0e3fctemp. favicon 204 silencer added to core.urls; functional_tests.test_my_lists now tests authenticity of login compared to queried list
Disco DeDisco
2026-02-01 20:18:42 -05:00
cf33f0ccd4created new FT file at functional_tests.test_my_lists, where the first test model focuses on the integrity of cookie sessions; much of FT login/logout logic offloaded to helper functions in .base;logout django templating added to base.html
Disco DeDisco
2026-02-01 20:06:01 -05:00
36f4182a4fcore/base.html & settings.py updated for email-based login & logout
Disco DeDisco
2026-02-01 16:19:07 -05:00
d236ab9d69apps.lyric.views updated with simpler FBV & test functionality for user login & authentication (some mocking employed); FT in test_simple_list_creation updated for new base.html content from several commits previous, now only FT not passing (to be expected) is under test_login
Disco DeDisco
2026-01-31 15:16:34 -05:00
9c102ac0f5updated apps.lyric.views for simpler login authentication and error messaging; .tests.test_views have new test method to assert either authentication condition has properly occurred
Disco DeDisco
2026-01-30 21:51:06 -05:00
ae63861adbmigrations run for lyric models; authentication & views & their tests now account more fully for uuid over email as pk
Disco DeDisco
2026-01-30 21:33:30 -05:00
f002cc5c84auth backend defined in core.settings
Disco DeDisco
2026-01-30 19:35:45 -05:00
b12f56c7cafunctional auth backend; new get_user() method in authentication model & new accompanying test methods
Disco DeDisco
2026-01-30 19:26:02 -05:00
41f4ff1725new apps.lyric.authenticate model PasswordlessAuthenticationBackend and authenticate() function help determine Token authenticity, login to existing accounts, or create new ones; associated .tests.test_authentication class asserts this functionality; apps.lyric.models & .tests.models now handles token uid instead of id, completing the transition away from email-as-pk
Disco DeDisco
2026-01-30 19:10:17 -05:00
2d61506a6dapps.lyric.views now generates a token associated w. the user-entered email & includes a link w. the token to login to the testserver; .tests.test_views asserts the association and the inclusion
Disco DeDisco
2026-01-30 17:52:44 -05:00
bab0b045b0new apps.lyric.views login FBV; new login path in .urls; new UT in .tests.test_views to assert the FBV's redirect to '/'
Disco DeDisco
2026-01-30 17:36:48 -05:00
93eb497decmocking added thruout apps.lyric.tests.test_views, where UTs mock message sending; status message loop added to base.html below navbar; hardcoded assert and model/view values aligned across lyric app, UTs & FTs
Disco DeDisco
2026-01-30 17:23:07 -05:00
4b1906b1eenew apps.lyric.urls, .tests.test_views files to test & execute mock email sending; apps.lyric.models, .tests.test_models now test & execute unique token autogen to integrate w. magic link login using only email; core.settings updated w. new urlpatterns to accommodate
Disco DeDisco
2026-01-30 16:21:32 -05:00
d724e03c3ccustom user model that maintains id as pk
Disco DeDisco
2026-01-30 15:04:47 -05:00
a734901b80started lyric app (in earnest this time); added bootstrap-classed navbar w. login form to base.html; tweaked apps.dashboard.tests.test_views to accomodate multiple forms on same page
Disco DeDisco
2026-01-29 15:21:54 -05:00
3ebf4db974removed spiked lyric app; pursuring spiked code via TDD, starting w. functional_tests.test_login
Disco DeDisco
2026-01-29 14:28:19 -05:00
512e5e6cd9prod commit with small staticfile handling changes to container.db.sqlite3, the Dockerfile & requirements.dev.txt
Disco DeDisco
2026-01-27 23:32:16 -05:00
adf0ca3d25js complete to hide error msg on changed user input
Disco DeDisco
2026-01-27 17:18:59 -05:00
e699c18321applied initalize() to templates/core/base.html for DRYer script tags
Disco DeDisco
2026-01-27 17:05:47 -05:00
6546bbba84refactored for DRY handling of inputSelector (#id_text) & errorSelector (.invalid-feedback)
Disco DeDisco
2026-01-27 16:56:05 -05:00
7f2267f5e3initialize() restored to a const (was a function)
Disco DeDisco
2026-01-27 16:39:48 -05:00
93aa3534e5initialize() functionality restored to dashboard.js, after a missing id-selector was found missing
Disco DeDisco
2026-01-27 16:38:47 -05:00
6178dccd3fbypassed app-specific script initialize() function to include directly in spec; Jasmine tests now also passing
Disco DeDisco
2026-01-27 14:29:48 -05:00
fc05281351restored templates/apps/dashboard/ & its contents; inadvertently deleted in previous update; all UTs & FTs once again passing
Disco DeDisco
2026-01-27 13:48:59 -05:00
d8da9051ffdefined static structure as src/apps/dashboard/static/apps/scripts/dashboard.js for Jasmine testing purposes; efforts to get past textInput=null have thus far been frustrated
Disco DeDisco
2026-01-25 22:40:57 -05:00
eb237f95ecnew FT method & error element helper in functional_tests.test_list_item_validation; not yet passing, awaiting JS implementation
Disco DeDisco
2026-01-24 14:23:43 -05:00
373b20d516missed a crucial line in an apps.dashboard.tests.test_forms test method to ensure the form is_valid(); has now been rectified so that all UTs & FTs pass
Disco DeDisco
2026-01-24 13:44:38 -05:00
6627042b7aremoved reliance on built-in django ModelForms from templates/core/base.html, apps.dashboard.forms, .tests.test_forms & .test_views
Disco DeDisco
2026-01-24 13:36:31 -05:00
0afc5ee8d7defined Meta ordering of the Item() model in apps.dashboard.models; Item() also now returns a __str__ result; in .forms, defined a specific use-case of is_valid() method; a pair of new UTs in .tests.test_models help confirm str representation and list order of items; .test_forms now ensures the .is-invalid bootstrap class is tested as a css class attr; migrations run; full UT & FT suite back to passing state (tho a refactor of flimsy form customizations is desperately needed)
Disco DeDisco
2026-01-24 13:00:12 -05:00
49491e2497new save FBVs, methods & test methods
Disco DeDisco
2026-01-23 22:39:12 -05:00
f27b9ffb52apps.dashboard.views & .tests.test_views now take advantage of DUPLICATE_ITEM_ERROR & ExistingListItemForm() from .forms
Disco DeDisco
2026-01-23 22:30:42 -05:00
004241d52dnew form model in apps.dashboard.forms to handle existing item-lists; new test model in .tests.test_forms to accommodate; also new method in .test_views, but skipped for now
Disco DeDisco
2026-01-23 22:23:40 -05:00
6804d3aaaeactually committed previously enumerated changes; the previous commit actually contained only the migrations reflecting these changes
Disco DeDisco
2026-01-23 21:51:56 -05:00
8a9f7c8af8changed #id-list-table everywhere to #id_list_table; duplicate item validation in apps.dashboard.tests.test_models, where ListAndItemModelsTest has been broken out into two different test models
Disco DeDisco
2026-01-23 21:50:49 -05:00
fa5700d9e8added Meta class to Item() model to test for duplicate item/list entries
Disco DeDisco
2026-01-21 15:29:47 -05:00
e01391446enew test method in ItemValidationTest(); does not currently pass
Disco DeDisco
2026-01-21 15:12:13 -05:00
f841408488custom save method implemented in ItemForm(); views & tests updated accordingly (all UTs & FTs passing)
Disco DeDisco
2026-01-21 15:02:26 -05:00
071a3d2532apps.dashboard.forms now employed in all views; FT helpers in base.py updated to look for Django's default #id_text (instead of #id-text)
Disco DeDisco
2026-01-21 14:41:25 -05:00
1d96871d7bemancipated hardcoded form views & html from base.html, apps.dashboard.views, apps.dashboard.tests.test_views; added get_item_input_box() helper method to functional_tests.base & retrofitted the other FTs to utilize it
Disco DeDisco
2026-01-20 15:14:05 -05:00
93cc6632c4found-n-replaced all instances of name='item_text' w. ='text'
Disco DeDisco
2026-01-19 22:33:21 -05:00
5b1f28db4bform code placeholders left commented-out in apps.dashboard.views; base.html somewhat retrofitted w. dynamic form views
Disco DeDisco
2026-01-19 22:19:33 -05:00
0014d9124acreated apps.dashboard.forms & commensurate apps.dashboard.tests.test_forms; new ItemForm() ModelForm & EMPTY_ITEM_ERROR constant
Disco DeDisco
2026-01-19 22:01:33 -05:00
5af5ff55fainvoked get_absolute_url() on List model to achieve DRY urls in views
Disco DeDisco
2026-01-19 19:25:04 -05:00