* [x] Adds a ServiceRequest model for all service types
* [x] Pre-define simple service requests to begin with
* [x] Django admin for admins to handle requests
* [x] Notifications for Matrix
* [x] Moved Service Access to `services` app
* [x] Auto-create default service requests for new memberships
* [x] Most simple kinds of tests added
* [x] Fix issue in generating service requests (check for service access firstly)
* [ ] Channel and bot account
## Deployment
1. Create a bot account. Get an access token with:
```
curl -XPOST \
-d '{"type":"m.login.password", "user":"<userid>", "password":"<password>"}' \
"https://data.coop/_matrix/client/r0/login"
```
2. Create an admin room for admins. Add admins + bot. Copy the room ID.
3. Add new environment variables for the setup `MATRIX_ACCESS_TOKEN` and `MATRIX_SERVICE_REQUEST_ADMIN_ROOM`
Reviewed-on: https://git.data.coop/data.coop/membersystem/pulls/59
Co-authored-by: bbb <benjamin@overtag.dk>
Co-committed-by: bbb <benjamin@overtag.dk>
27 lines
649 B
Python
27 lines
649 B
Python
"""Project views."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from typing import TYPE_CHECKING
|
|
|
|
from accounting.models import Order
|
|
from django_view_decorator import view
|
|
from utils.view_utils import render
|
|
|
|
if TYPE_CHECKING:
|
|
from django.http import HttpRequest
|
|
from django.http import HttpResponse
|
|
|
|
|
|
@view(
|
|
paths="",
|
|
name="index",
|
|
login_required=True,
|
|
)
|
|
def index(request: HttpRequest) -> HttpResponse:
|
|
"""View to show the index page."""
|
|
unpaid_orders = Order.objects.filter(member=request.user, is_paid=False)
|
|
|
|
context = {"unpaid_orders": list(unpaid_orders)}
|
|
|
|
return render(request, "index.html", context=context)
|