summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2022-06-30 15:46:37 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2022-07-08 09:59:31 +0200
commit99267eeeb104293842333c086cf23d8ce37a4795 (patch)
tree2c90f94098a01789369c46b7151c9ecb49d6b519
parentc49dd0edb6494ce26ead885b7bf813788dc02cc5 (diff)
downloadIshtar-99267eeeb104293842333c086cf23d8ce37a4795.tar.bz2
Ishtar-99267eeeb104293842333c086cf23d8ce37a4795.zip
Preventive file: add price agreement
-rw-r--r--archaeological_files/admin.py17
-rw-r--r--archaeological_files/fixtures/initial_data-fr.json366
-rw-r--r--archaeological_files/migrations/0107_auto_20220630_1519.py59
-rw-r--r--archaeological_files/models.py22
4 files changed, 462 insertions, 2 deletions
diff --git a/archaeological_files/admin.py b/archaeological_files/admin.py
index 433b521bc..edc6be716 100644
--- a/archaeological_files/admin.py
+++ b/archaeological_files/admin.py
@@ -84,7 +84,7 @@ for model in general_models:
class JobAdmin(GeneralTypeAdmin):
- list_filter = ("available", "permanent_contract")
+ list_filter = ("available", "price_agreement")
LIST_DISPLAY = [
"label",
"permanent_contract",
@@ -113,7 +113,7 @@ class EquipmentServiceCostAdmin(ImportActionAdmin):
"equipment_service_type__label",
"service_provider",
)
- list_filter = ("available",)
+ list_filter = ("available", "price_agreement")
list_display = [
"equipment_service_type",
"specificity",
@@ -128,3 +128,16 @@ class EquipmentServiceCostAdmin(ImportActionAdmin):
admin_site.register(models.EquipmentServiceCost, EquipmentServiceCostAdmin)
+
+
+class PriceAgreementAdmin(GeneralTypeAdmin):
+ list_filter = ("available",)
+ extra_list_display = [
+ "start_date",
+ "end_date",
+ ]
+ actions = []
+ model = models.PriceAgreement
+
+
+admin_site.register(models.PriceAgreement, PriceAgreementAdmin)
diff --git a/archaeological_files/fixtures/initial_data-fr.json b/archaeological_files/fixtures/initial_data-fr.json
index 4573e70ef..8ce9ed565 100644
--- a/archaeological_files/fixtures/initial_data-fr.json
+++ b/archaeological_files/fixtures/initial_data-fr.json
@@ -251,12 +251,27 @@
}
},
{
+ "model": "archaeological_files.priceagreement",
+ "fields": {
+ "label": "Prix par d\u00e9faut",
+ "txt_idx": "prix-par-defaut",
+ "comment": "",
+ "available": true,
+ "order": 10,
+ "start_date": null,
+ "end_date": null
+ }
+},
+{
"model": "archaeological_files.job",
"fields": {
"label": "Frais de repas",
"txt_idx": "frais-de-repas",
"comment": "",
"available": true,
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"ground_daily_cost": 17.5,
"daily_cost": 17.5,
"permanent_contract": true,
@@ -273,6 +288,9 @@
"txt_idx": "responsable-doperation",
"comment": "",
"available": true,
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"ground_daily_cost": 245.0,
"daily_cost": 245.0,
"permanent_contract": true,
@@ -291,6 +309,9 @@
"txt_idx": "topographe",
"comment": "",
"available": true,
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"ground_daily_cost": 172.0,
"daily_cost": 172.0,
"permanent_contract": true,
@@ -309,6 +330,9 @@
"txt_idx": "dao",
"comment": "",
"available": true,
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"ground_daily_cost": 155.0,
"daily_cost": 155.0,
"permanent_contract": true,
@@ -327,6 +351,9 @@
"txt_idx": "frais-de-repas-temp",
"comment": "",
"available": true,
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"ground_daily_cost": 17.5,
"daily_cost": 17.5,
"permanent_contract": false,
@@ -343,6 +370,9 @@
"txt_idx": "dao-temp",
"comment": "",
"available": true,
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"ground_daily_cost": 180.0,
"daily_cost": 180.0,
"permanent_contract": false,
@@ -361,6 +391,9 @@
"txt_idx": "gestionnaire-des-collections",
"comment": "",
"available": true,
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"ground_daily_cost": 180.0,
"daily_cost": 180.0,
"permanent_contract": true,
@@ -379,6 +412,9 @@
"txt_idx": "responsable-de-secteur-temp",
"comment": "",
"available": true,
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"ground_daily_cost": 150.0,
"daily_cost": 150.0,
"permanent_contract": false,
@@ -397,6 +433,9 @@
"txt_idx": "responsable-de-secteur-avec-anciennete-temp",
"comment": "",
"available": true,
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"ground_daily_cost": 180.0,
"daily_cost": 180.0,
"permanent_contract": false,
@@ -415,6 +454,9 @@
"txt_idx": "specialiste-temp",
"comment": "",
"available": true,
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"ground_daily_cost": 140.0,
"daily_cost": 140.0,
"permanent_contract": false,
@@ -433,6 +475,9 @@
"txt_idx": "specialiste-avec-anciennete",
"comment": "",
"available": true,
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"ground_daily_cost": 180.0,
"daily_cost": 180.0,
"permanent_contract": false,
@@ -451,6 +496,9 @@
"txt_idx": "technicien-de-fouille",
"comment": "",
"available": true,
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"ground_daily_cost": 140.0,
"daily_cost": 140.0,
"permanent_contract": false,
@@ -992,6 +1040,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"pelle-mecanique-chenille-18-t-24-t"
],
@@ -1010,6 +1061,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"pelle-mecanique-chenille-18-t-24-t"
],
@@ -1028,6 +1082,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"amenee"
],
@@ -1048,6 +1105,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"repli"
],
@@ -1068,6 +1128,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"transfert"
],
@@ -1088,6 +1151,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"pelle-mecanique-chenille-25-t-29-t"
],
@@ -1106,6 +1172,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"pelle-mecanique-chenille-25-t-29-t"
],
@@ -1124,6 +1193,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"amenee"
],
@@ -1144,6 +1216,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"repli"
],
@@ -1164,6 +1239,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"transfert"
],
@@ -1184,6 +1262,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"pelle-mecanique-chenille-30-t"
],
@@ -1202,6 +1283,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"pelle-mecanique-chenille-30-t"
],
@@ -1220,6 +1304,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"amenee"
],
@@ -1240,6 +1327,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"repli"
],
@@ -1260,6 +1350,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"transfert"
],
@@ -1280,6 +1373,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"pelle-meca-hydrau-pneus-18-t-mini"
],
@@ -1298,6 +1394,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"pelle-meca-hydrau-pneus-18-t-mini"
],
@@ -1316,6 +1415,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"amenee"
],
@@ -1336,6 +1438,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"repli"
],
@@ -1356,6 +1461,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"transfert"
],
@@ -1376,6 +1484,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"mini-pelle-meca-hy-chenilles-800kg"
],
@@ -1394,6 +1505,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"mini-pelle-meca-hy-chenilles-800kg"
],
@@ -1412,6 +1526,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"amenee"
],
@@ -1432,6 +1549,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"repli"
],
@@ -1452,6 +1572,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"transfert"
],
@@ -1472,6 +1595,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"mini-pelle-meca-hydrau-chen-1-15-t"
],
@@ -1490,6 +1616,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"mini-pelle-meca-hydrau-chen-1-15-t"
],
@@ -1508,6 +1637,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"amenee"
],
@@ -1528,6 +1660,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"repli"
],
@@ -1548,6 +1683,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"transfert"
],
@@ -1568,6 +1706,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"mini-pelle-hydrau-chen-caout-25-t"
],
@@ -1586,6 +1727,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"mini-pelle-hydrau-chen-caout-25-t"
],
@@ -1604,6 +1748,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"amenee"
],
@@ -1624,6 +1771,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"repli"
],
@@ -1644,6 +1794,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"transfert"
],
@@ -1664,6 +1817,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"mini-pelle-hydrau-chen-5-6-t"
],
@@ -1682,6 +1838,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"mini-pelle-hydrau-chen-5-6-t"
],
@@ -1700,6 +1859,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"amenee"
],
@@ -1720,6 +1882,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"repli"
],
@@ -1740,6 +1905,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"transfert"
],
@@ -1760,6 +1928,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"mini-pelle-hydrau-chen-10-t"
],
@@ -1778,6 +1949,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"mini-pelle-hydrau-chen-10-t"
],
@@ -1796,6 +1970,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"amenee"
],
@@ -1816,6 +1993,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"repli"
],
@@ -1836,6 +2016,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"transfert"
],
@@ -1856,6 +2039,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"tracteur-sur-chen-lam-15-18-t"
],
@@ -1874,6 +2060,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"tracteur-sur-chen-lam-15-18-t"
],
@@ -1892,6 +2081,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"amenee"
],
@@ -1912,6 +2104,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"repli"
],
@@ -1932,6 +2127,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"transfert"
],
@@ -1952,6 +2150,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"chargeur-sur-chenilles-12-15-t"
],
@@ -1970,6 +2171,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"chargeur-sur-chenilles-12-15-t"
],
@@ -1988,6 +2192,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"amenee"
],
@@ -2008,6 +2215,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"repli"
],
@@ -2028,6 +2238,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"transfert"
],
@@ -2048,6 +2261,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"tombereau-automoteur-6x4-14-m"
],
@@ -2066,6 +2282,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"tombereau-automoteur-6x4-14-m"
],
@@ -2084,6 +2303,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"amenee"
],
@@ -2104,6 +2326,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"repli"
],
@@ -2124,6 +2349,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"transfert"
],
@@ -2144,6 +2372,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"tracteur-agricole-avec-benne-tp"
],
@@ -2162,6 +2393,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"tracteur-agricole-avec-benne-tp"
],
@@ -2180,6 +2414,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"amenee"
],
@@ -2200,6 +2437,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"repli"
],
@@ -2220,6 +2460,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"transfert"
],
@@ -2240,6 +2483,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"camion-benne-6x4"
],
@@ -2258,6 +2504,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"camion-benne-6x4"
],
@@ -2276,6 +2525,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"camion-semi-remorque-benne-20-m"
],
@@ -2294,6 +2546,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"camion-semi-remorque-benne-20-m"
],
@@ -2312,6 +2567,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"sciage-de-chaussee-ou-de-dalle-beton"
],
@@ -2330,6 +2588,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"amenee-repli"
],
@@ -2350,6 +2611,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"pompe-thermique-eaux-chargees-25-mh-mini"
],
@@ -2368,6 +2632,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"pompe-thermique-eaux-chargees-65-mh-mini"
],
@@ -2386,6 +2653,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"vehicule-de-transport-de-materiel-etou-de-personne"
],
@@ -2404,6 +2674,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"bungalow-refectoire-equipe-de-15m2-tables-et-chais"
],
@@ -2422,6 +2695,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"bungalow-refectoire-equipe-de-15m2-tables-et-chais"
],
@@ -2440,6 +2716,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"amenee-et-repli-locaux"
],
@@ -2460,6 +2739,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"bungalow-supplementaire-de-15-m"
],
@@ -2478,6 +2760,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"assemblage-desassemblage-locaux"
],
@@ -2498,6 +2783,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"amenee-et-repli-locaux"
],
@@ -2518,6 +2806,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"bungalow-vestiaire-armoires-de-rangement"
],
@@ -2536,6 +2827,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"bungalow-vestiaire-armoires-de-rangement"
],
@@ -2554,6 +2848,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"amenee-et-repli-locaux"
],
@@ -2574,6 +2871,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"container-de-stockage-metallique-ferme-10-m3"
],
@@ -2592,6 +2892,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"container-de-stockage-metallique-ferme-10-m3"
],
@@ -2610,6 +2913,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"amenee-et-repli-locaux"
],
@@ -2630,6 +2936,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"container-de-stockage-metallique-ferme-15-m"
],
@@ -2648,6 +2957,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"container-de-stockage-metallique-ferme-15-m"
],
@@ -2666,6 +2978,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"amenee-et-repli-locaux"
],
@@ -2686,6 +3001,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"container-de-stockage-metallique-ferme-30-m3"
],
@@ -2704,6 +3022,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"container-de-stockage-metallique-ferme-30-m3"
],
@@ -2722,6 +3043,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"amenee-et-repli-locaux"
],
@@ -2742,6 +3066,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"groupe-electrogene-6-kwa"
],
@@ -2760,6 +3087,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"groupe-electrogene-6-kwa"
],
@@ -2778,6 +3108,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"groupe-electrogene-6-kwa"
],
@@ -2796,6 +3129,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"raccordement-electrique-bungalow-au-depart-compteu"
],
@@ -2816,6 +3152,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"reserve-deau-de-500-1-000-litres-mini"
],
@@ -2834,6 +3173,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"reserve-deau-de-500-1-000-litres-mini"
],
@@ -2852,6 +3194,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"reserve-deau-de-500-1-000-litres-mini"
],
@@ -2870,6 +3215,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"wc-chimique-avec-produits"
],
@@ -2888,6 +3236,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"wc-chimique-avec-produits"
],
@@ -2906,6 +3257,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"amenee-et-repli-locaux"
],
@@ -2926,6 +3280,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"vidange-wc"
],
@@ -2946,6 +3303,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"cloture-mobile-de-chantier-par-panneaux-en-treilli"
],
@@ -2964,6 +3324,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"amenee-et-pose-de-1-50-ml"
],
@@ -2984,6 +3347,9 @@
{
"model": "archaeological_files.equipmentservicecost",
"fields": {
+ "price_agreement": [
+ "prix-par-defaut"
+ ],
"equipment_service_type": [
"depose-et-repli-de-1-50-ml"
],
diff --git a/archaeological_files/migrations/0107_auto_20220630_1519.py b/archaeological_files/migrations/0107_auto_20220630_1519.py
new file mode 100644
index 000000000..4d0331f0c
--- /dev/null
+++ b/archaeological_files/migrations/0107_auto_20220630_1519.py
@@ -0,0 +1,59 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.28 on 2022-06-30 15:19
+from __future__ import unicode_literals
+
+import datetime
+import django.core.validators
+from django.db import migrations, models
+import django.db.models.deletion
+import ishtar_common.models_common
+import re
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('archaeological_files', '0106_auto_20210803_1730'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='PriceAgreement',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('label', models.TextField(verbose_name='Label')),
+ ('txt_idx', models.TextField(help_text='The slug is the standardized version of the name. It contains only lowercase letters, numbers and hyphens. Each slug must be unique.', unique=True, validators=[django.core.validators.RegexValidator(re.compile('^[-a-zA-Z0-9_]+\\Z', 32), "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens.", 'invalid')], verbose_name='Textual ID')),
+ ('comment', models.TextField(blank=True, default='', verbose_name='Comment')),
+ ('available', models.BooleanField(default=True, verbose_name='Available')),
+ ('order', models.IntegerField(default=10, verbose_name='Order')),
+ ('start_date', models.DateField(blank=True, null=True, verbose_name='Start date')),
+ ('end_date', models.DateField(blank=True, null=True, verbose_name='End date')),
+ ],
+ options={
+ 'verbose_name': 'Price agreement',
+ 'verbose_name_plural': 'Price agreement',
+ 'ordering': ('order', 'label'),
+ },
+ bases=(ishtar_common.models_common.Cached, models.Model),
+ ),
+ migrations.AlterField(
+ model_name='file',
+ name='last_modified',
+ field=models.DateTimeField(blank=True, default=datetime.datetime.now),
+ ),
+ migrations.AlterField(
+ model_name='historicalfile',
+ name='last_modified',
+ field=models.DateTimeField(blank=True, default=datetime.datetime.now),
+ ),
+ migrations.AddField(
+ model_name='equipmentservicecost',
+ name='price_agreement',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='archaeological_files.PriceAgreement', verbose_name='Price agreement'),
+ ),
+ migrations.AddField(
+ model_name='job',
+ name='price_agreement',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='archaeological_files.PriceAgreement', verbose_name='Price agreement'),
+ ),
+ ]
diff --git a/archaeological_files/models.py b/archaeological_files/models.py
index 2e0398ddb..8d3f014da 100644
--- a/archaeological_files/models.py
+++ b/archaeological_files/models.py
@@ -70,7 +70,25 @@ from archaeological_operations.models import (
)
+class PriceAgreement(GeneralType):
+ order = models.IntegerField(_("Order"), default=10)
+ start_date = models.DateField(_("Start date"), blank=True, null=True)
+ end_date = models.DateField(_("End date"), blank=True, null=True)
+
+ class Meta:
+ verbose_name = _("Price agreement")
+ verbose_name_plural = _("Price agreement")
+ ordering = (
+ "order",
+ "label",
+ )
+
+
class Job(GeneralType):
+ price_agreement = models.ForeignKey(
+ PriceAgreement, verbose_name=_("Price agreement"), blank=True, null=True,
+ on_delete=models.CASCADE
+ )
ground_daily_cost = models.FloatField(_("Ground daily cost"), blank=True, null=True)
daily_cost = models.FloatField(_("Daily cost"), blank=True, null=True)
permanent_contract = models.NullBooleanField(
@@ -168,6 +186,10 @@ DCT_ES_UNITS = dict(ES_UNITS)
class EquipmentServiceCost(models.Model):
+ price_agreement = models.ForeignKey(
+ PriceAgreement, verbose_name=_("Price agreement"), blank=True, null=True,
+ on_delete=models.CASCADE
+ )
equipment_service_type = models.ForeignKey(
EquipmentServiceType, verbose_name=_("Equipment/Service")
)