diff options
| -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")      )  | 
