846 Commits
Author SHA1 Message Date
jbpenrath 2ab5b20461 (frontend) load and display thread messages
Now that we are able to display thread list, we want to allow
user to select one then load related messages.
Furthermore if the selectedThread is updated, the message
list should be refreshed!
2025-04-17 12:30:16 +02:00
jbpenrath e4e9c0b083 👽️(frontend) update api client
- npm run generate-api
2025-04-17 12:30:16 +02:00
Sabrina Demagny 211f7ffb6f 👽️(backend) update open api schema
run: bin/update_openapi_schema
2025-04-17 11:54:31 +02:00
Sabrina Demagny 19a7fd04f1 🏷️(backend) improve MessageSerializer typing
Improve typing of serializer method fields by using extend_schema_field
2025-04-17 11:53:29 +02:00
jbpenrath 27278abb66 (frontend) enhance ThreadPanel with loading and empty states
- Added loading spinner when threads are being fetched.
- Display a message when no threads are available
2025-04-17 11:37:01 +02:00
jbpenrath 7bfb81a878 👽️(global) update open api schema and api client
- bin/update_openapi_schema
 - npm run generate_api
2025-04-17 11:37:01 +02:00
jbpenrath b22cfb084a 🏷️(backend) improve ThreadSerializer typing
Improve typing of serializer method fields by using extend_schema_field
2025-04-17 11:37:01 +02:00
jbpenrath f98a505d64 (frontend) display threads
Now that we are able to fetch threads, we replace our fake date by real ones!
2025-04-17 10:50:18 +02:00
jbpenrath 263c7ba67d (frontend) display selected mailbox in mailbox-panel
Now that we are able to retriver user mailboxes, we want to display
the selected mailbox in the mailbox-panel. First we assume that the
user will always have a single mailbox so we always select the first
mailbox on fetch.
2025-04-17 10:50:18 +02:00
jbpenrath f079f4844b (frontend) add MailboxProvider
MailboxProvider aims to manage globally data fetching.
It is able to dispatch to the whole application, the selected mailbox,
then fetch related threads and it will also able to fetch thread messages.
2025-04-17 10:50:18 +02:00
jbpenrath e9be9071ac 👽️(global) update open api schema and api client
- bin/update_openapi_schema
- npm run generate_api
2025-04-17 10:50:18 +02:00
Sylvain Zimmer be99ab354b (mta) create DB objects when receiving an email 2025-04-17 01:20:57 +02:00
Sabrina Demagny efb9176663 🐛(messages) fix permissions for user to access of mailbox content
check if authenticated user has access to mailbox
2025-04-17 01:12:32 +02:00
Sabrina Demagny 1130a37757 (message) remove RuntimeWarning
Do not use faker for datetime field in factories
2025-04-17 00:40:42 +02:00
Sabrina Demagny dd1669bd0c (api) add missing ordering of paginated results
Order Thread and Message
2025-04-17 00:40:14 +02:00
Sylvain Zimmer e522acdef0 👷(front) update frontend tooling, nginx config and app name
Simplified Docker setup for frontend, use frontend-dev for running
the app itself, and frontend-tools for all npm usage. The local
node_modules directory should be used, without any copy in the container
2025-04-17 00:25:53 +02:00
Sabrina Demagny aebc457f77 (api) add endpoint to get messages of a thread
For a thread_id return all messages contained
2025-04-17 00:09:12 +02:00
Sabrina Demagny 2c85d14d75 🧑‍💻(Makefile) add showmigrations
Allow to display all migrations status
2025-04-16 23:24:08 +02:00
Sabrina Demagny 9c28a1b21d (api) enhance threads endpoint payload
Adapt the payload content to meet specifications
2025-04-16 23:12:52 +02:00
Sabrina Demagny c844d64da4 (messages) enhance Message model
sent_at and read_at fields can be null
2025-04-16 22:11:17 +02:00
jbpenrath e9abfcac9a 💚(ci) fix lint-back job
Since we added a setup.py module, the lint-back was failing
as setuptools was not install in the ci job
2025-04-16 22:09:07 +02:00
jbpenrath 18304a50f9 (frontend) add AuthenticatedView
If an unauthenticated user tries to go to a view requiring
authentication, it should be redirect to the homepage
2025-04-16 21:53:38 +02:00
jbpenrath 35f4174b19 🔧(frontend) disable TypeScript build error
Temporarily ignore TypeScript build errors in the Next.js
configuration to facilitate development until all model types are defined.
2025-04-16 21:23:59 +02:00
jbpenrath 8f3cf626d3 💩(frontend) bootstrap a first version of the application layout
Bootstrap a first version of the application layout. It is internationalized
but it is fully static right now!
The application is mainly divided into 3 panels :
- Mailbox/folder panel
- Thread panel which relies on the selected folder
- Thread view which display all messages related to a thread
2025-04-16 18:52:29 +02:00
jbpenrath cc88f453ea 🔥(frontend) remove dead code
Remove lot of stuff that is useless for our application
2025-04-16 18:52:29 +02:00
jbpenrath 62406dbe19 (frontend) clean app homepage
Clean unlogged homepage and also views to start to work the application views
2025-04-16 18:52:29 +02:00
jbpenrath daf2864687 ⬆️(frontend) upgrade @gouvfr-lasuite/ui-kit to 0.2.0
https://github.com/suitenumerique/design-system/releases/tag/v0.2.0
2025-04-16 18:52:29 +02:00
Sabrina Demagny a9081a9808 (admin) add missing admin register for MessageRecipientAdmin
Decorator is missing to display MessageRecipient table in django
admin.
2025-04-16 18:37:21 +02:00
Sylvain ZimmerandGitHub 1070c1ab19 🚀(scalingo) add Scalingo deployment scripts (#12)
* 🚀(scalingo) add scalingo nginx config

* 👷(frontend) fix frontend build, no lint for now

* 👷(scalingo) fix frontend build location and backend buildpack compat

* 🐛(nginx) try another build location

* 🐛(scalingo) fix nginx startup

* 🐛(scalingo) fix scripts and buildpack run location

* 🐛(scalingo) fix buildpack cleanup

* 🐛(nginx) pass host headers to the backend

* 🚀(scalingo) support DATABASE_URL env var
2025-04-16 18:17:09 +02:00
Sabrina Demagny 57db469eec (api) add get threads endpoint
Allow to list all threads for a logged user.
2025-04-16 18:12:37 +02:00
Sabrina Demagny 7c4381fc5a (messages) create messages related models
Create Contact, Thread and Message models
with factories and admin register.
2025-04-16 18:12:37 +02:00
jbpenrath cf04e6865e ♻️(frontend) update authentication logic to work with new api client
Since we generate our api client through Orval, we need to refactor our existing
authentication logic
2025-04-16 17:10:56 +02:00
jbpenrath 59d30f2f3e 🔧(frontend) install and setup orval
Orval is able to generate api client and models types from an openapi schema.
We setup it on your frontend application to work with fetch http client and
react-query client.

https://orval.dev/quick-start
2025-04-16 17:10:56 +02:00
jbpenrath b51a70f979 🔧(backend) generate openapi json file in core app root
Currently we generate openapi json file only for test purpose so it was relevant
to create it within test folders but now we want frontend be able to consume
this file so we decide to move it into core root folder.
2025-04-16 17:10:56 +02:00
jbpenrath d3b7dea853 🔧(bin) fix update_openapi_schema script
Update the script `update_openapi_schema` to be able
to find api urls which are declared in `core.urls` module.
2025-04-16 13:41:47 +02:00
Sabrina Demagny ec393fcc0b (mailboxaccess) enhance related name
It's better to call mailbox.accesses ;)
2025-04-16 11:34:21 +02:00
Sabrina Demagny 79ea2e0358 (api) add get user mailboxes endpoint
Allow to list all mailboxes for a logged user with information
about role.
2025-04-16 11:16:00 +02:00
Sabrina Demagny 003ae3d5a9 (mailbox) create mailbox related models
Create Mailbox, MailDomain and MailboxAccess models
with factories and admin register.
2025-04-16 10:46:05 +02:00
Sabrina Demagny f6c4974444 (api) restore endpoint to get user authenticated
Restore endpoint GET /me only
2025-04-16 09:54:57 +02:00
Sylvain Zimmer 287169118b (mta) harmonize MTA and Django routes and tests
First emails can now be sent from port 25 of mta-in through Django.
2025-04-16 01:20:08 +02:00
Sabrina Demagny 4877b533b9 🚨(lint) fix lint
Move get_user_model and remove unused argument
2025-04-15 23:16:57 +02:00
Sylvain Zimmer e36e10966c 🚨(lint) fix lint, mostly removing unused imports 2025-04-15 19:37:12 +02:00
Sylvain ZimmerandGitHub 7769a8c7a6 (mda) add incoming mail route and clean backend tests (#2)
* (mda) add incoming mail route and clean backend tests

* ♻️(api) add a JWT auth middleware for the MTA routes and move to viewset_mta.py
2025-04-15 19:17:06 +02:00
Sylvain ZimmerandGitHub 10ae97db42 Merge pull request #3 from suitenumerique/sdem/ci
👷(ci) run tests and linters
2025-04-15 19:16:52 +02:00
Sabrina Demagny 74332e4642 👷(ci) run tests and linters 2025-04-15 17:50:12 +02:00
Sylvain Zimmer 53db5a748d 🎉(all) bootstrap the Messages project
We used the Drive repository as starting point. There are still
some leftovers that will be cleaned up over time.
2025-04-13 18:48:04 +02:00