diff options
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 |
commit | 99267eeeb104293842333c086cf23d8ce37a4795 (patch) | |
tree | 2c90f94098a01789369c46b7151c9ecb49d6b519 | |
parent | c49dd0edb6494ce26ead885b7bf813788dc02cc5 (diff) | |
download | Ishtar-99267eeeb104293842333c086cf23d8ce37a4795.tar.bz2 Ishtar-99267eeeb104293842333c086cf23d8ce37a4795.zip |
Preventive file: add price agreement
-rw-r--r-- | archaeological_files/admin.py | 17 | ||||
-rw-r--r-- | archaeological_files/fixtures/initial_data-fr.json | 366 | ||||
-rw-r--r-- | archaeological_files/migrations/0107_auto_20220630_1519.py | 59 | ||||
-rw-r--r-- | archaeological_files/models.py | 22 |
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") ) |