diff --git a/README.md b/README.md index 9b2b40a..86046c6 100644 --- a/README.md +++ b/README.md @@ -1,29 +1,160 @@ -# TODO +# Todo list +## Contracts +- [x] Recap. +- [x] Download one contract. +- [x] Download all contract. +- [ ] Update contract after first generation (for unregistered users). +- [ ] View and edit contract application (dashboard/contracts/id/edit/) -## backend\src\contracts\contracts.py - -- Extract recap - -## Link products to a form +## Forms +- [ ] Link products to a form. +- [ ] Preview form ## Wording -- all translations +- [ ] All translations. +- [ ] All French descriptions. +- [ ] Reorganize keys in JSON objects. ## Footer +- [ ] Legal. +- [ ] About. +- [ ] Contact. -### Legal +## Dashboard +- [ ] Pagination. +- [ ] Soft Deletion -### About - -### Contact - -## Pagination - -## Confirmation modal on suppression -### Show on cascade deletion - -## Update contract after (without registration) - -## Preview form (if not visible can be accessed by referer nothing is stored) -## View and edit contract application (dashboard/contracts/id/edit/) +## Tests +### Contracts +##### Create +- [ ] 200 Working case +- [ ] 401 Unauthorized +- [ ] 403 Forbidden +- [ ] 422 Unprocessable Entity +##### Update +- [ ] 200 Working case +- [ ] 404 Not found +- [ ] 401 Unauthorized +- [ ] 403 Forbidden +- [ ] 422 Unprocessable Entity +##### Read +###### Get one +- [ ] 200 Working case +- [ ] 404 Not found +- [ ] 401 Unauthorized +- [ ] 403 Forbidden +###### Get all +##### Delete +- [ ] 200 Working case +- [ ] 404 Not found +- [ ] 401 Unauthorized +- [ ] 403 Forbidden +- [ ] 422 Unprocessable Entity +### Forms +##### Create +- [x] 200 Working case +- [x] 401 Unauthorized +- [x] 403 Forbidden +- [x] 422 Unprocessable Entity +##### Update +- [x] 200 Working case +- [x] 404 Not found +- [x] 401 Unauthorized +- [x] 403 Forbidden +- [x] 422 Unprocessable Entity +##### Read +###### Get one +###### Get all +##### Delete +- [x] 200 Working case +- [x] 404 Not found +- [x] 401 Unauthorized +- [x] 403 Forbidden +- [x] 422 Unprocessable Entity +### Shipments +##### Create +- [x] 200 Working case +- [x] 401 Unauthorized +- [x] 403 Forbidden +- [x] 422 Unprocessable Entity +##### Update +- [x] 200 Working case +- [x] 404 Not found +- [x] 401 Unauthorized +- [x] 403 Forbidden +- [x] 422 Unprocessable Entity +##### Read +###### Get one +###### Get all +##### Delete +- [x] 200 Working case +- [x] 404 Not found +- [x] 401 Unauthorized +- [x] 403 Forbidden +- [x] 422 Unprocessable Entity +### Productors +##### Create +- [x] 200 Working case +- [x] 401 Unauthorized +- [x] 403 Forbidden +- [x] 422 Unprocessable Entity +##### Update +- [x] 200 Working case +- [x] 404 Not found +- [x] 401 Unauthorized +- [x] 403 Forbidden +- [x] 422 Unprocessable Entity +##### Read +###### Get one +###### Get all +##### Delete +- [x] 200 Working case +- [x] 404 Not found +- [x] 401 Unauthorized +- [x] 403 Forbidden +- [x] 422 Unprocessable Entity +### Products +##### Create +- [x] 200 Working case +- [x] 401 Unauthorized +- [x] 403 Forbidden +- [x] 422 Unprocessable Entity +##### Update +- [x] 200 Working case +- [x] 404 Not found +- [x] 401 Unauthorized +- [x] 403 Forbidden +- [x] 422 Unprocessable Entity +##### Read +###### Get one +###### Get all +##### Delete +- [x] 200 Working case +- [x] 404 Not found +- [x] 401 Unauthorized +- [x] 403 Forbidden +- [x] 422 Unprocessable Entity +### Users +##### Create +- [x] 200 Working case +- [x] 401 Unauthorized +- [x] 403 Forbidden +- [x] 422 Unprocessable Entity +##### Update +- [x] 200 Working case +- [x] 404 Not found +- [x] 401 Unauthorized +- [x] 403 Forbidden +- [x] 422 Unprocessable Entity +##### Read +###### Get one +###### Get all +##### Delete +- [x] 200 Working case +- [x] 404 Not found +- [x] 401 Unauthorized +- [x] 403 Forbidden +- [x] 422 Unprocessable Entity +### Auth +### Generate contracts / recap \ No newline at end of file diff --git a/backend/src/contracts/contracts.py b/backend/src/contracts/contracts.py index ed633d7..c88e813 100644 --- a/backend/src/contracts/contracts.py +++ b/backend/src/contracts/contracts.py @@ -108,6 +108,11 @@ async def get_base_contract_template( 'price': None, 'products': [{'product': pr, 'quantity': None} for pr in sh.products] } for sh in form.shipments] + cheque_payment_method = list(filter( + lambda x: x.name == "cheque", form.productor.payment_methods)) + cheque_number = cheque_payment_method[0].max if len( + cheque_payment_method) > 0 else 3 + print(cheque_number, cheque_payment_method) empty_contract = models.ContractPublic( firstname='', form=form, @@ -116,15 +121,13 @@ async def get_base_contract_template( phone='', products=[], payment_method='cheque', - cheque_quantity=3, + cheque_quantity=cheque_number, total_price=0, id=1 ) cheques = [ {'name': None, 'value': None}, - {'name': None, 'value': None}, - {'name': None, 'value': None} - ] + ] * cheque_number try: pdf_bytes = generate_html_contract( empty_contract, diff --git a/backend/src/contracts/generate_contract.py b/backend/src/contracts/generate_contract.py index 9e132ff..dfde79d 100644 --- a/backend/src/contracts/generate_contract.py +++ b/backend/src/contracts/generate_contract.py @@ -413,7 +413,6 @@ def generate_recap( '3': 'Piece' } if len(contracts) <= 0: - # TODO: raise correct exception return None first_contract = contracts[0] reccurents_sorted = sorted( diff --git a/backend/tests/services/test_contracts_service.py b/backend/tests/services/test_contracts_service.py new file mode 100644 index 0000000..5ab241a --- /dev/null +++ b/backend/tests/services/test_contracts_service.py @@ -0,0 +1,10 @@ +class TestContractsService: + def test_get_all_contracts( + self, + ): + pass + + def test_get_all_filtered_contracts( + self, + ): + pass