sankalp
9da2e2ee03
feat(templates/users): reorganize user templates into pages subdirectory
...
Refactor template layout to group related pages, improving project structure and clarity.
2026-06-29 08:00:44 +05:45
sankalp
e1f1d4a4fc
feat(templates/tickets): rename pages and add create ticket modal
...
Refactor page templates into pages/ and introduce a create modal for ticket creation
2026-06-29 08:00:27 +05:45
sankalp
1a228cbd70
refactor(settings): reorganize UI template hierarchy
...
Move ui.html into pages subdirectory to improve organization and align with future UI components.
2026-06-29 08:00:10 +05:45
sankalp
25554feac5
feat(page_views): add automation rule management UI
...
Add support for creating, toggling and deleting automation rules to streamline workflow and reduce manual effort
2026-06-29 07:50:27 +05:45
sankalp
2f1df8ab03
feat(templates/projects): add automation UI and modal for board automation rules
...
Enable management of automation rules with UI buttons, modal, and status condition handling
2026-06-29 07:50:09 +05:45
sankalp
84cb41790c
feat(src/tickets): assign request user as ticket updater
...
Ensure audit trail of status changes by recording requesting user.
2026-06-29 07:49:51 +05:45
sankalp
a6e482691c
feat(automation): add automation rule handling for ticket status changes
...
Prevents brute‑force attacks by enabling server‑side automation on ticket status changes.
2026-06-29 07:49:34 +05:45
sankalp
5e77c3be61
feat(config): add automation rule routes
...
Add URL routes for board automation actions to enable rule management via API.
2026-06-29 07:49:16 +05:45
sankalp
4d78b7b31b
feat(root): improve role‑based permissions and user management documentation
...
Clarify dynamic custom role CRUD and system roles (superadmin, manager) with per‑project, per‑status move permissions
2026-06-29 07:24:12 +05:45
sankalp
d30cfd61c3
fix(src/tickets): wrap move ticket view in atomic transaction with select_for_update
...
Ensures data integrity and prevents race conditions when moving tickets.
2026-06-29 07:20:47 +05:45
sankalp
0497b7e68d
refactor(src/projects): cache role names in role_display_name
...
Prevent repeated DB hits by caching Role objects and names.
2026-06-29 07:20:29 +05:45
sankalp
9070bf3015
feat(src/dashboard/views): annotate ticket metrics
...
Introduce aggregated ticket counts to eliminate redundant queries and boost performance.
2026-06-29 07:20:11 +05:45
sankalp
e3551a822c
refactor(src/dashboard): enhance DB query efficiency and pagination stability
...
Prevent N+1 queries, streamline aggregation, and fix role deletion count
2026-06-29 07:19:53 +05:45
sankalp
1bdb254e94
feat(src/dashboard/board_views): add atomic transaction and select_for_update to move_ticket view
...
Ensure consistent status updates and prevent race conditions when moving tickets
2026-06-29 07:19:35 +05:45
sankalp
7431c8f050
refactor(templates): use role_display_name and improve role/admin clarity
...
Clarify role display names, refine admin role labeling, and update confirmation messages for better UX.
2026-06-29 06:57:52 +05:45
sankalp
80c05d8fc7
refactor(src): replace role CharField with Role FK and centralize role management
...
Centralize role definitions to support dynamic roles and enforce role existence at DB level
2026-06-29 06:57:35 +05:45
sankalp
574d93ece5
feat(roles): introduce Role CRUD and replace hardcoded role strings with model
...
Centralize role management and switch to is_admin for admin checks.
2026-06-29 06:57:17 +05:45
sankalp
b7d43b57f4
feat(templates/users): adopt role objects for branding and selection
...
Replace role name comparisons with slug checks and display role.name to support dynamic role definitions.
2026-06-29 06:56:55 +05:45
sankalp
128866bda2
feat(config): add roles CRUD dashboard URL patterns
...
Add dashboard URL patterns for role management to prepare for upcoming admin role CRUD UI.
2026-06-29 06:56:36 +05:45
sankalp
4c1ebbf357
feat(templates/projects/partials): replace hard-coded status completion check with configurable allowed_move_to_status_ids
...
Prevents brute-force attacks by only allowing moves to statuses explicitly permitted.
2026-06-28 19:35:54 +05:45
sankalp
ce0c1349ca
feat(templates/projects): add permissions modal and restricted mode logic
...
Implement permission configuration UI and enforce restricted movement rules
2026-06-28 19:35:30 +05:45
sankalp
7600b7b773
fix(src/tickets): adjust permission check for moving tickets to use user_can_move_to_status
...
Clarify error message and strengthen security validation
2026-06-28 19:35:03 +05:45
sankalp
eef68868d1
feat(src/dashboard/page_views): add board permissions management UI
...
Introduce views for creating, editing and deleting board role permissions and expose permission data in the project detail context.
2026-06-28 19:34:38 +05:45
sankalp
a6bdf22912
feat(src/dashboard/board_views): add admin role check and permission handling
...
Replace hard-coded admin checks with granular permission checks using BoardRolePermission
Expose allowed move status IDs to front‑end and unify permission logic across views
2026-06-28 19:34:15 +05:45
sankalp
5d6b3a6220
feat(src/projects): add authorized move-to-status logic and permission model
...
Allow fine‑grained control over which statuses a role can move tickets to and store permissions centrally.
2026-06-28 19:32:14 +05:45
sankalp
fbb1ee7c95
feat(config): add board permissions and delete permission endpoints
...
Expose permission management views under project-specific URL paths, requiring authentication
2026-06-28 19:31:49 +05:45
sankalp
6a343efc0a
refactor(src): replace hardcoded role checks with is_admin attribute
...
Simplify permission logic by using the unified `is_admin` flag instead of duplicated role list checks.
2026-06-28 19:16:54 +05:45
sankalp
5db8cfc63e
feat(templates/users): default new user role to backend_developer
...
Switch default role from 'member' to 'backend_developer' in forms, list, and modals, ensuring consistency across templates. Also update role label rendering to use get_role_display fallback.
2026-06-28 19:16:22 +05:45
sankalp
9cd3026785
feat(templates/tickets): replace role checks with is_admin for admin UI
...
Replaces `role != 'member'` checks with `is_admin` to correctly target admin users and simplify conditional rendering.
2026-06-28 19:16:02 +05:45
sankalp
457fc76f9d
feat(templates/projects): add manage statuses button and restricted mode UI
...
Provides admin UI to manage statuses and prevents moving tickets to completed statuses
2026-06-28 19:15:35 +05:45
sankalp
04a7965a2a
fix(src/tickets): prevent moving tickets to completed status without admin rights
...
Non-admin users cannot move tickets to completed statuses to avoid accidental closure.
2026-06-28 19:15:10 +05:45
sankalp
b3b6c3eb0b
docs(root): expand project overview and environment variable documentation
...
Add comprehensive project description, feature list, and environment variable reference to improve onboarding and self‑documentation.
2026-06-28 18:42:33 +05:45
sankalp
37cc6a660c
feat(templates/projects): replace view link with button and add note view modal
...
Switch from <a> tag to button with Alpine click handler and add a modal dialog for viewing note content, improving interactivity and user experience.
2026-06-28 18:36:49 +05:45
sankalp
40d435e48d
fix(auth): simplify dark mode condition to only check explicit setting
...
Remove reliance on prefers-color-scheme when dark mode preference is explicitly stored, preventing unintended dark mode activation.
2026-06-28 18:36:25 +05:45
sankalp
4937c99fe6
refactor(src/projects): adjust external access import path and clean up unused import
...
Use absolute import to avoid app label dependencies and improve code clarity
2026-06-28 18:35:57 +05:45
sankalp
8d61792a3f
fix(justfile): add makemigrations before migrate in setup/reset-db
...
When migrations are not committed (src/*/migrations/ is gitignored),
running 'just setup' skips makemigrations and goes straight to migrate.
Without migration files, admin.0001_initial's swappable_dependency to
accounts becomes a no-op, causing InconsistentMigrationHistory errors
when makemigrations is run later.
Fix by adding makemigrations to setup, setup-complete, and reset-db
targets so migrations are always generated before being applied.
2026-06-28 18:24:28 +05:45
sankalp
04e0d032b7
Revert "fix(src): commit migration files to prevent InconsistentMigrationHistory"
...
This reverts commit 9f0f771213 .
2026-06-28 18:23:52 +05:45
sankalp
9f0f771213
fix(src): commit migration files to prevent InconsistentMigrationHistory
...
Remove src/*/migrations/ from .gitignore and commit all generated
migration files. The admin.0001_initial migration uses
swappable_dependency(AUTH_USER_MODEL) which requires accounts.0001_initial
to exist before admin migrations can be applied. Without committed migration
files, running migrate before makemigrations causes admin to apply first
(since accounts appears to have no migrations), leading to an
InconsistentMigrationHistory error when makemigrations is run later.
This follows Django's recommended workflow of committing migrations.
2026-06-28 18:20:46 +05:45
sankalp
75bccb4528
chore(root): lowercase "Recommended" to "recommended" and add createcachetable to justfile
...
Ensure consistent casing and include the necessary cache table creation in setup steps
2026-06-28 16:21:51 +05:45
sankalp
122c83bfb3
chore(src): delete stale Django migration files
...
Remove migrations that no longer correspond to active models.
2026-06-28 16:12:59 +05:45
sankalp
c81a7ca935
chore(src/tickets): delete generated migration files
...
Remove outdated migration files to clean the repository state and prevent version conflicts.
2026-06-28 16:12:42 +05:45
sankalp
9487fce284
chore(src/projects): remove outdated migration files
...
Remove generated Django migration files that are no longer needed after refactoring the project schema, ensuring consistent migrations and preventing migration conflicts.
2026-06-28 16:12:25 +05:45
sankalp
61ff8f4d42
chore(src/notifications): remove DeadlineReminderLog migration and related index migrations
...
Removed the DeadlineReminderLog migration and its index migration files to clean up obsolete code and eliminate migration conflicts.
2026-06-28 16:12:09 +05:45
sankalp
2e1add0a54
chore(src/notes): remove generated migration and __init__ files
...
Clean up leftover migration artifacts and dependency list to prevent stale imports.
2026-06-28 16:11:52 +05:45
sankalp
4635129b21
Ignore app migration dirs
2026-06-28 16:09:25 +05:45
sankalp
df6df1b407
feat(src): cache branding lookup and improve leaderboard performance
...
Prevent DB hits by caching site branding and refactor leaderboard query using annotate
2026-06-28 16:07:05 +05:45
sankalp
ec350b1531
feat(config): add database connection options and cache backend
...
Add connection pooling and Django cache using Database backend for session persistence to improve performance and reliability in production environments.
2026-06-28 16:06:46 +05:45
sankalp
b17e810531
chore(src/accounts): refactor migration dependencies and index formatting
...
Update dependencies and AddIndex formatting to improve consistency and readability.
2026-06-28 16:06:29 +05:45
sankalp
eb717b3a5e
feat(src/projects): add prefetch_related and select_related for better performance
...
Improve query efficiency by prefetching related objects and using select_related, reducing DB hits.
2026-06-28 16:06:11 +05:45
sankalp
9f3a81e313
feat(src/notifications): add select_related to Notification queryset
...
Optimize database query by prefetching related user data
2026-06-28 16:05:55 +05:45
sankalp
f60fe64c84
feat(src): add indexes for role and user-group lookups
...
Improve query performance for role‑based filtering and user‑group constraints.
2026-06-28 16:01:05 +05:45
sankalp
2350d8c1f0
perf(src/tickets): add database indexes for ticket‑related lookups
2026-06-28 16:00:47 +05:45
sankalp
0f37f9bedb
feat(src/projects): add database index on ProjectMember user and project
...
Improve query performance for user‑project lookups and enforce uniqueness efficiently.
2026-06-28 16:00:30 +05:45
sankalp
86df5d7286
feat(src/notifications): add indexes for deadline reminder and notification models
...
Prevent missing indexes that slow queries on ticket/user and user/created_at fields.
2026-06-28 16:00:12 +05:45
sankalp
51ad3809dd
feat(external): add index to ExternalAccess for project and is_active
...
Improves query performance on project and is_active lookups.
2026-06-28 15:59:55 +05:45
sankalp
d66e03c0ce
feat(src/projects): add ProjectNoteInline to ProjectAdmin
...
Add ProjectNoteInline to allow inline note management in project admin.
Restrict queryset to users with appropriate project memberships.
2026-06-28 15:45:47 +05:45
sankalp
0d11aa0e16
refactor(src/notes): remove admin registration for ProjectNote and add inline comment
...
The changes reduce admin duplication and align with ProjectAdmin inline registration.
2026-06-28 15:45:27 +05:45
sankalp
1f236a44b8
chore(root): bump django-jazzmin to 3.0.2
...
Update uv.lock and pin version for reproducibility.
2026-06-28 15:45:09 +05:45
sankalp
9af2a8820a
feat(config/settings): externalize TIME_ZONE via env variable
...
Allow TIME_ZONE to be configured via environment variable while keeping default.
2026-06-28 15:25:39 +05:45
sankalp
1ab6efe6c4
feat(root): add TIME_ZONE setting
...
Set timezone for Nepal to ensure correct datetime handling.
2026-06-28 15:25:21 +05:45
sankalp
829dc626c2
chore(root): remove docker-compose.yml
...
Docker Compose moved to Dockerfile and entrypoint for streamlined deployment.
2026-06-28 15:07:59 +05:45
sankalp
c29c2c4be8
feat(config): enable session save on every request
...
Ensures session data persists across requests by saving session at each request.
2026-06-28 15:03:20 +05:45
sankalp
3d3c21d4cc
chore(root): remove Procfile and runtime.txt
...
Removed legacy deployment configuration files that are no longer required.
2026-06-28 15:03:01 +05:45
sankalp
aaee794bff
feat(static/src): add Tailwind CSS entry point
...
Initialize Tailwind CSS for front‑end styling
2026-06-28 15:01:41 +05:45
sankalp
5869d85ee4
feat(static): add quotes.json with motivational quotes
...
Add static JSON file containing 150 inspirational quotes for frontend usage.
2026-06-28 15:01:23 +05:45
sankalp
c0750c00e7
feat(static/css): add Tailwind CSS entry file
...
Adds Tailwind CSS pre‑flight and utilities to enable consistent styling across the frontend. This file will be compiled by django-tailwind-cli and bundled with static assets.
2026-06-28 15:01:06 +05:45
sankalp
ec9012efcb
feat(deps): upgrade Django to 5.0
...
Fix compatibility with new middleware and remove deprecated imports.
2026-06-28 15:00:47 +05:45
sankalp
0e255da3fb
fix(templates): simplify dark mode detection
...
Remove redundant prefers-color-scheme check after confirming dark mode via localStorage.
2026-06-28 15:00:20 +05:45
sankalp
ab0e71f7eb
feat(src): add ticketing REST API and admin UI for tickets, settings, and branding
...
Introduce DRF views for ticket creation, listing, updating, and commenting, integrate admin registrations for new models, and provide a demo data command to seed initial content. This enables full project management workflow within the backend.
2026-06-28 14:16:16 +05:45
sankalp
57c6984c66
refactor(.github): split CI workflow into lint, test, and security jobs
...
Body:
- Separate lint, test, and security stages
- Use uv for dependency management
- Move env variables to appropriate jobs
- Remove redundant steps and improve readability
2026-06-28 14:15:57 +05:45
sankalp
71b700388b
feat(templates): add polished login UI with Tailwind and Alpine.js
...
Enhances user experience with dark‑mode detection, responsive layout, and streamlined role selection workflow
2026-06-28 14:15:39 +05:45
sankalp
89adfe89c5
feat(config): add email backend and update settings for production
...
Support email sending via SMTP, configure static/media handling, set correct timezone, enable Swagger UI, and add external access routes.
2026-06-28 14:15:22 +05:45
sankalp
9d5ebcfcde
feat(root): add project management features and dependencies
...
Add Kanban board, epics, notifications, external sharing, and related API endpoints; update README and install required packages such as django‑q2, openpyxl, and others.
2026-06-28 14:15:00 +05:45
sankalp
ed1d6c66c8
update
2026-06-28 12:36:40 +05:45
sankalp
71bfd63799
update
2026-06-28 12:36:16 +05:45
sankalp
70fd9711b5
feat(src): replace config with Django settings and add board view with context processors for dashboard metrics
...
Replace decouple config calls for Google OAuth credentials with settings; add new board view and associated context processors to render project board and dashboard charts; update serializer import path; centralize configuration and improve maintainability.
2026-06-25 23:31:04 +05:45
sankalp
b8070e292c
refactor(src/tickets): update serializer imports to src.* namespace
...
Switch from apps.* to src.* imports for consistency with project structure
2026-06-25 23:30:43 +05:45
sankalp
610d95bf04
refactor(src/projects): adjust imports from apps.* to src.* namespace
...
Switch to absolute imports under src to align with package structure and avoid circular import issues.
2026-06-25 23:30:21 +05:45
sankalp
67c27f6057
chore(root): pin dependencies and improve formatting
...
Pin dependencies to explicit versions for reproducible builds and update ruff config for consistency.
2026-06-25 23:30:04 +05:45
sankalp
a5ca9a8cd6
feat(config): add Google OAuth client configuration and extend external URL routes
...
Add GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, and GOOGLE_REDIRECT_URI env vars and configure external access endpoints for OAuth callback and logout.
2026-06-25 23:29:46 +05:45
sankalp
9d11d397cb
update
2026-06-25 23:29:34 +05:45
sankalp
a4876e5b8b
fuck ai
2026-06-25 23:13:25 +05:45
sankalp
660d55f4f4
feat(protocol): add ProtocolState implementation
...
Introduce model, admin, serializers, views and URL routes for managing protocol states.
2026-06-25 23:12:35 +05:45
sankalp
e220cfdaa3
feat(tickets): add Ticketing app with models, admin, serializers and views
...
Adds full ticketing functionality for issue tracking, including priority and status management, comments, history, and API endpoints.
2026-06-25 23:11:07 +05:45
sankalp
03bda8889b
feat(src/projects): add Project and ProjectMember models with API serializers and views
...
Implement project management infrastructure to support ticket workflows and dashboard statistics
2026-06-25 23:09:28 +05:45
sankalp
0851411be7
feat(src/notes): add note CRUD API
...
Implement models, serializers, views and URLs for managing project notes; enables structured association of notes with projects and users, improving organization and auditability.
2026-06-25 23:07:58 +05:45
sankalp
72a4c81028
feat(src/external): add ExternalAccess model and serializer and view for external token authentication
...
Add token generation, password field, and secure login endpoint to manage external service access.
2026-06-25 23:06:37 +05:45
sankalp
aeedeb6ea0
feat(src/epics): scaffold epic module with models, admin, serializers, urls, views
...
Implement core Epic model and API for managing project epics, enabling CRUD operations and integration with admin and DRF.
2026-06-25 23:04:37 +05:45
sankalp
493cb6774f
feat(auth): add Google OAuth2 login flow and token endpoint
...
Added GoogleLoginView and GoogleAuthUrlView to exchange auth code for tokens, create or link users, and return refresh/access tokens. Updated User model with Google ID and serializers for profile data.
2026-06-25 23:02:25 +05:45
sankalp
996777f937
initialize project
2026-06-25 22:58:45 +05:45
sankalp
33c414d71d
chore(static): remove Tailwind CSS file
...
Deletes unused Tailwind CSS file to simplify build and reduce bundle size.
2026-06-25 14:40:26 +05:45
sankalp
9a6d3a3472
refactor(templates): remove duplicate and unused base template files
...
Remove duplicated base templates that caused conflicts and were no longer referenced.
2026-06-25 14:40:08 +05:45
sankalp
000bd08445
refactor(config): delete config package
...
Remove the entire config package as part of project restructuring and migration to a new configuration system.
2026-06-25 14:39:49 +05:45
sankalp
f2bc450267
refactor(apps): remove django apps accounts and tickets
...
Remove unused apps to simplify the project and reduce maintenance burden.
2026-06-25 14:39:31 +05:45
sankalp
26a679268b
chore(root): remove project planning markdown and outdated configuration files
...
Remove extensive PLAN.md, management scripts, and lock files that are no longer needed.
2026-06-25 14:39:13 +05:45
sankalp
d8557415d9
fix(templates/components): hide sidebar element with display:none
...
- Bug Fixes:
- Added `style="display:none"` to ensure the sidebar is hidden by default, preventing accidental visibility and layout shifts.
2026-05-28 00:53:49 +05:45
sankalp
7f99d55252
feat(templates): add defer to external scripts and improve button cursor styling
...
Add defer to external script tags for better async loading and add CSS rule to set cursor to pointer for enabled buttons.
- New Features:
- None
- Enhancements:
- Added `defer` attribute to htmx, SortableJS, Chart.js, easymde, and Quill scripts.
- Added `button:not(:disabled) { cursor: pointer; }` CSS rule.
- Bug Fixes:
- None
2026-05-28 00:53:46 +05:45
sankalp
36e45d7528
feat(static): expand Tailwind paletteand utilities with new colors, layout helpers, and interactive variants
...
Add extensive color definitions for red, amber, green, sky, and blue; introduce `--container-sm`; add new text sizes, line‑height, and spacing utilities; provide new layout and display utilities (`.relative`, `.contents`, `.inline-block`); expand z‑index utilities; add responsive grid and padding utilities; and introduce hover/focus/active variants with custom properties.
- New Features
- New color shades for multiple palettes
- Additional container size and spacing utilities
- New display and layout utilities (`.relative`, `.contents`, `.inline-block`)
- Expanded z‑index range
- Enhancements
- Responsive grid and padding classes
- Hover, focus, and active interaction variants
- Custom CSS property declarations for backdrop utilities
- Bug Fixes
- (none)
2026-05-28 00:52:03 +05:45
sankalp
1aba29df1d
feat(apps): add get_initials method to CustomUserNew Features:
...
- Added get_initials() method that returns initials from first_name/last_name or falls back to username prefix.
2026-05-28 00:51:56 +05:45
sankalp
bfa21faa28
docs(.agents/skills): Add licenseand validation documentation for interface design
...
Add Apache 2.0 license file and validation reference to guide pattern usage and checks.
New Features
- Introduce LICENSE.txt with full Apache 2.0 terms for frontend‑design assets
- Add validation.md describing when to add patterns and how to perform validation checks
Enhancements
- Document project configuration files (pyproject.toml, requirements.txt, uv.lock) for reproducibility
2026-05-28 00:51:49 +05:45