27 Commits

Author SHA1 Message Date
sassanix 14cbf75bed Model Number Field, i18n Expansion, Search & UI Enhancements
* Added Model Number field to warranties (backend + frontend integration)
* Expanded localization: added Polish and Hebrew (with RTL), completed warranty claim translations for all locales
* Enhanced search: Model Number now searchable on Home and Status pages
* Improved Status page with Archived warranties filtering and display
* Fixed Global view logic for archived warranties and Model Number visibility
* Corrected missing Model Number translations across all languages
* Improved Add Warranty modal responsiveness on small screens
* Fixed document URL visibility bug and Chrome horizontal scrollbar issue
* Updated major dependencies (Python 3.14, gevent 25.9.1, Flask 3.1.2, etc.)
* Added Reddit community link and localization on About page
* PWA and cache updates for faster rollout and consistent asset refresh
2025-10-25 11:01:35 -03:00
Renovate Bot 0495764a08 Update python Docker tag to v3.14 (from 3.13) 2025-10-18 17:21:18 +00:00
sassanix 9ae8c35b60 Updated Dockerfile with corrected ARG 2025-10-18 14:04:47 -03:00
sassanix 52ded2c995 Merge pull request #164 from sassanix/renovate/major-17-debian-packages
Update dependency postgresql-client to v17 (from 15.10-0+deb13u1)
2025-10-18 13:47:45 -03:00
Renovate Bot ea387bf74a Update dependency postgresql-client to v17 (from 15.10-0+deb13u1) 2025-10-18 16:35:04 +00:00
Renovate Bot ba77a54aed Update python:3.13-slim-trixie Docker digest to 0796012 (from 087a9f3) 2025-10-18 16:34:38 +00:00
Erwan Hervé d5f077f42c Update Dockerfile to use specific versions for dependencies and enhance renovate.json with package rules 2025-10-09 21:11:51 +02:00
Erwan Hervé f086c4f016 Refactor Dockerfile to simplify copying Python dependencies from builder stage 2025-10-09 13:45:04 +02:00
Erwan Hervé 2beb1ac1d9 Add optimized Dockerfile with multi-stage build and best practices 2025-10-09 08:26:50 +02:00
Erwan Hervé 31f9f5af58 Add label source 2025-10-07 08:23:26 +02:00
sassanix 60239bd637 Fix Apprise notification system, scheduler stability, and email configuration
Fixes & Enhancements

* Resolved five critical Apprise notification issues:
  • Ensured configuration reload during scheduled jobs
  • Fixed warranty data fetching for Apprise-only users
  • Refactored notification dispatch logic with dedicated helpers
  • Corrected handler scoping via Flask app context
  • Wrapped scheduler jobs with Flask app context to prevent context errors
  → Verified: Scheduled Apprise notifications now work reliably for "Apprise only" and "Both" channels.

* Added support for SMTP\_FROM\_ADDRESS environment variable, allowing sender address customization independent of SMTP username. (PR #115)

* Fixed duplicate scheduled notifications in multi-worker environments:
  • Strengthened should\_run\_scheduler() logic
  • Now guarantees exactly one scheduler instance across all Gunicorn modes.

* Fixed stale database connection handling in scheduled jobs:
  • Fresh connection acquired each run, properly released via try/finally
  • Eliminates "server closed the connection" errors.

* Definitive scheduler logic fix for all memory modes (ultra-light, optimized, performance):
  • Single-worker runs scheduler if GUNICORN\_WORKER\_ID is unset
  • Multi-worker: only worker 0 runs scheduler.

Impact

* Apprise and Email notifications are now stable, reliable, and production-ready
* No more duplicate or missed notifications across all memory modes
* Improved system efficiency and robustness
2025-08-24 12:34:40 -03:00
Humberto Rocha 20997e9782 Remove hardcoded db_user db_admin_user and db_admin_password 2025-05-17 16:13:56 -04:00
sassanix 2b4bf1ae26 Granular warranty duration input, file uploads, and env-based config
Refer to changelogs for more details.

- Replaced single warranty period field with separate Year/Month/Day inputs
- Added support for uploading ZIP/RAR documents to warranties
- Made JWT secret and upload size limits configurable via environment variables
- Fixed backend indentation error, SQL migration bug, and smtplib re-import
- Cleaned up obsolete frontend settings files
2025-05-11 11:25:12 -03:00
sassanix ebb9218600 Improved compatibility and security
Refer to changelogs for latest changes
2025-05-07 15:12:40 -03:00
sassanix 22d7e6d751 Fixes and changes
Major update to the UI, lots of fixes, about page added, please refer to changelog for more details
2025-04-13 23:12:03 -03:00
sassanix 7cb9950be8 Fixed migrations and docker-compose
Refer to change logs
2025-04-02 23:05:34 -03:00
sassanix 60fa3402c9 Tags for warranties
Refer to changelogs
2025-04-01 21:24:12 -03:00
sassanix 8165b797d8 Notifications and QOL
Refer to changelogs
2025-03-26 09:27:44 -03:00
sassanix 47923fe544 Upload Size Increase
Refer to changelogs for all of the changes.
2025-03-21 17:51:49 -03:00
sassanix 3f6a0cbb3e API Security Improvements
Refer to changelogs
2025-03-21 08:25:52 -03:00
sassanix b800742c3d Security Enhancements
Refer to changelog.md
2025-03-20 23:05:35 -03:00
sassanix ec7cb58c9f Fixed test.html in the dockerfile
test.html was preventing the docker from running
2025-03-16 12:36:44 -03:00
sassanix f6e11a629e Authentication, Settings Page
Refer to Changelog for all the changes
2025-03-13 15:48:42 -03:00
sassanix 8f62a166a6 Status page added
Please refer to Changelogs.md
2025-03-06 22:06:44 -04:00
sassanix c267517de2 Fixed uploads to load the invoices
1. **Simplified nginx configuration:**
   - Changed from `root /data` back to `alias /data/uploads/` which is the correct way to map `/uploads/` to `/data/uploads/`
   - Removed potentially conflicting location blocks
   - Fixed the error handling to not redirect upload 404s to the index page

2. **Improved startup script:**
   - Added checking and reporting of directory permissions
   - Added explicit chmod during startup

3. **Simplified Flask route:**
   - Removed all the complex debugging code
   - Returned to a simple `send_from_directory` call

4. **Added a basic test file:**
   - Created ping.html to test basic nginx functionality
2025-03-03 07:59:44 -04:00
sassanix c07d2079a2 Fixing database
Fixed API Connection Issue

Changed the Nginx proxy configuration from proxy_pass http://localhost:5000; to proxy_pass http://127.0.0.1:5000; in the container's configuration
This resolved the "ERR_CONNECTION_REFUSED" error by ensuring proper communication between Nginx and the Flask backend within the Docker container

Fixed Database Serialization Error

Updated the Python imports in app.py to properly include the date class: from datetime import datetime, timedelta, date
Modified the type checking code to correctly identify date objects: isinstance(value, (datetime, date))
This resolved the "isinstance() arg 2 must be a type or tuple of types" error that was preventing the application from retrieving warranty data

These changes resolved the connection issues between frontend and backend components, allowing the application to successfully add and display warranty information.
2025-03-02 12:08:07 -04:00
sassanix 82f70164d2 My project so far 2025-03-01 22:40:41 -04:00