chellow 1714406616.0.0__py3-none-any.whl → 1714484335.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of chellow might be problematic. Click here for more details.

chellow/e/views.py CHANGED
@@ -1137,6 +1137,14 @@ def dc_contract_edit_get(dc_contract_id):
1137
1137
  )
1138
1138
 
1139
1139
 
1140
+ @e.route("/dc_contracts/<int:contract_id>/edit", methods=["DELETE"])
1141
+ def dc_contract_edit_delete(contract_id):
1142
+ contract = Contract.get_dc_by_id(g.sess, contract_id)
1143
+ contract.delete(g.sess)
1144
+ g.sess.commit()
1145
+ return hx_redirect("/dc_contracts", 303)
1146
+
1147
+
1140
1148
  @e.route("/dc_contracts/<int:contract_id>/edit", methods=["POST"])
1141
1149
  def dc_contract_edit_post(contract_id):
1142
1150
  contract = None
@@ -1161,10 +1169,6 @@ def dc_contract_edit_post(contract_id):
1161
1169
  )
1162
1170
  g.sess.commit()
1163
1171
  return chellow_redirect(f"/dc_contracts/{contract.id}", 303)
1164
- elif "delete" in request.form:
1165
- contract.delete(g.sess)
1166
- g.sess.commit()
1167
- return chellow_redirect("/dc_contracts", 303)
1168
1172
  else:
1169
1173
  party_id = req_int("party_id")
1170
1174
  name = req_str("name")
@@ -3059,6 +3063,14 @@ def mop_contract_edit_get(contract_id):
3059
3063
  )
3060
3064
 
3061
3065
 
3066
+ @e.route("/mop_contracts/<int:contract_id>/edit", methods=["DELETE"])
3067
+ def mop_contract_edit_delete(contract_id):
3068
+ contract = Contract.get_mop_by_id(g.sess, contract_id)
3069
+ contract.delete(g.sess)
3070
+ g.sess.commit()
3071
+ return hx_redirect("/mop_contracts", 303)
3072
+
3073
+
3062
3074
  @e.route("/mop_contracts/<int:contract_id>/edit", methods=["POST"])
3063
3075
  def mop_contract_edit_post(contract_id):
3064
3076
  try:
@@ -3082,10 +3094,6 @@ def mop_contract_edit_post(contract_id):
3082
3094
  )
3083
3095
  g.sess.commit()
3084
3096
  return chellow_redirect(f"/mop_contracts/{contract.id}", 303)
3085
- elif "delete" in request.form:
3086
- contract.delete(g.sess)
3087
- g.sess.commit()
3088
- return chellow_redirect("/mop_contracts", 303)
3089
3097
  else:
3090
3098
  party_id = req_int("party_id")
3091
3099
  name = req_str("name")
chellow/general_import.py CHANGED
@@ -374,10 +374,14 @@ def general_import_era(sess, action, vals, args):
374
374
  ssc_code = add_arg(args, "Standard Settlement Configuration", vals, 12)
375
375
  if ssc_code == NO_CHANGE:
376
376
  ssc = existing_era.ssc
377
+ if ssc is None:
378
+ ssc_code = None
379
+ else:
380
+ ssc_code = ssc.code
377
381
  elif len(ssc_code) > 0:
378
- ssc = Ssc.get_by_code(sess, ssc_code)
382
+ Ssc.get_by_code(sess, ssc_code)
379
383
  else:
380
- ssc = None
384
+ ssc_code = None
381
385
 
382
386
  es_code = add_arg(args, "Energisation Status", vals, 13)
383
387
  if es_code == NO_CHANGE:
@@ -513,7 +517,7 @@ def general_import_era(sess, action, vals, args):
513
517
  mtc_code,
514
518
  cop,
515
519
  comm,
516
- ssc,
520
+ ssc_code,
517
521
  energisation_status,
518
522
  properties,
519
523
  imp_mpan_core,
@@ -25,7 +25,7 @@ from chellow.models import (
25
25
  Supply,
26
26
  User,
27
27
  )
28
- from chellow.utils import req_bool
28
+ from chellow.utils import csv_make_val, req_bool
29
29
  from chellow.views import chellow_redirect
30
30
 
31
31
 
@@ -236,25 +236,30 @@ def _process(
236
236
  "ecoes_pc",
237
237
  "chellow_pc",
238
238
  "ecoes_mtc",
239
+ "ecoes_mtc_date",
239
240
  "chellow_mtc",
240
241
  "ecoes_llfc",
242
+ "ecoes_llfc_from",
241
243
  "chellow_llfc",
242
244
  "ecoes_ssc",
243
245
  "chellow_ssc",
244
246
  "ecoes_es",
245
247
  "chellow_es",
246
248
  "ecoes_supplier",
249
+ "ecoes_supplier_registration_from",
247
250
  "chellow_supplier",
248
251
  "chellow_supplier_contract_name",
249
252
  "ecoes_dc",
250
253
  "chellow_dc",
251
254
  "ecoes_mop",
255
+ "ecoes_mop_appoint_date",
252
256
  "chellow_mop",
253
257
  "ecoes_gsp_group",
258
+ "ecoes_gsp_effective_from",
254
259
  "chellow_gsp_group",
255
260
  "ecoes_msn",
256
- "chellow_msn",
257
261
  "ecoes_msn_install_date",
262
+ "chellow_msn",
258
263
  "ecoes_meter_type",
259
264
  "chellow_meter_type",
260
265
  "ignored",
@@ -493,8 +498,8 @@ def _process(
493
498
  "ecoes_pc": ecoes["pc"],
494
499
  "chellow_pc": chellow_pc,
495
500
  "ecoes_mtc": ecoes["mtc"],
501
+ "ecoes_mtc_date": _parse_date(ecoes["mtc-date"]),
496
502
  "chellow_mtc": chellow_mtc,
497
- "chellow_mtc_date": _parse_date(ecoes["mtc-date"]),
498
503
  "ecoes_llfc": ecoes["llfc"],
499
504
  "ecoes_llfc_from": _parse_date(ecoes["llfc-from"]),
500
505
  "chellow_llfc": chellow_llfc,
@@ -524,7 +529,7 @@ def _process(
524
529
  "ignored": ignore,
525
530
  "problem": problem,
526
531
  }
527
- writer.writerow(values[t] for t in titles)
532
+ writer.writerow(csv_make_val(values[t]) for t in titles)
528
533
  values["chellow_supplier_contract_id"] = chellow_supplier_contract_id
529
534
  values["chellow_supply_id"] = chellow_supply_id
530
535
  values["diffs"] = diffs
@@ -563,21 +568,26 @@ def _process(
563
568
  "ecoes_pc": "",
564
569
  "chellow_pc": era.pc.code,
565
570
  "ecoes_mtc": "",
571
+ "ecoes_mtc_date": "",
566
572
  "chellow_mtc": era.mtc_participant.mtc.code,
567
573
  "ecoes_llfc": "",
574
+ "ecoes_llfc_from": "",
568
575
  "chellow_llfc": llfc.code,
569
576
  "ecoes_ssc": "",
570
577
  "chellow_ssc": ssc,
571
578
  "ecoes_es": "",
572
579
  "chellow_es": es,
573
580
  "ecoes_supplier": "",
581
+ "ecoes_supplier_registration_from": "",
574
582
  "chellow_supplier": supplier_contract.party.participant.code,
575
583
  "chellow_supplier_contract_name": supplier_contract.name,
576
584
  "ecoes_dc": "",
577
585
  "chellow_dc": dc,
578
586
  "ecoes_mop": "",
587
+ "ecoes_mop_appoint_date": "",
579
588
  "chellow_mop": mop,
580
589
  "ecoes_gsp_group": "",
590
+ "ecoes_gsp_effective_from": "",
581
591
  "chellow_gsp_group": supply.gsp_group.code,
582
592
  "ecoes_msn": "",
583
593
  "chellow_msn": msn,
@@ -587,7 +597,7 @@ def _process(
587
597
  "ignored": False,
588
598
  "problem": "In Chellow, but not in ECOES.",
589
599
  }
590
- writer.writerow(values[t] for t in titles)
600
+ writer.writerow(csv_make_val(values[t]) for t in titles)
591
601
  values["chellow_supplier_contract_id"] = supplier_contract.id
592
602
  values["chellow_supply_id"] = era.supply.id
593
603
  values["diffs"] = []
@@ -11,64 +11,52 @@
11
11
  {% endblock %}
12
12
 
13
13
  {% block content %}
14
- {% if request.method == 'GET' and request.values.view == 'confirm_delete' %}
15
- <form method="post" action="/e/dc_contracts/{{dc_contract.id}}/edit">
16
- <fieldset>
17
- <legend>Are you sure you want to delete this contract?</legend>
18
- <input type="submit" name="delete" value="delete">
19
- <a href="/e/dc_contracts/{{dc_contract.id}}/edit">Cancel</a>
20
- </fieldset>
21
- </form>
22
-
23
- {% else %}
24
-
25
- <form action="/e/dc_contracts/{{dc_contract.id}}/edit" method="post">
26
- <fieldset>
27
- <legend>Update Contract</legend>
28
-
29
- <label>Party</label>
30
- <select name="party_id">
31
- {% for party in parties %}
32
- {{ input_option(
33
- 'party_id', party.id,
34
- party.participant.code + ' : ' + party.name,
35
- dc_contract.party.id) }}
36
- {% endfor %}
37
- </select>
38
-
39
- <label>Name</label> {{input_text('name', dc_contract.name)}}
40
-
41
- <label>Charge script</label>
42
- {{input_textarea(
43
- 'charge_script', dc_contract.charge_script, 40, 80)}}
44
-
45
- <input type="submit" value="Update">
46
- </fieldset>
47
- </form>
48
-
49
- <form action="/e/dc_contracts/{{dc_contract.id}}/edit" method="post">
50
- <fieldset>
51
- <legend>Update State</legend>
52
- <label>State</label>
53
- {{input_textarea('state', dc_contract.state, 40, 80)}}
54
- <input type="submit" name="update_state" value="Update">
55
- </fieldset>
56
- </form>
57
-
58
- <form action="/e/dc_contracts/{{dc_contract.id}}/edit">
59
- <fieldset>
60
- <legend>Delete This Contract</legend>
61
- <input type="hidden" name="view" value="confirm_delete">
62
- <input type="submit" value="Delete">
63
- </fieldset>
64
- </form>
65
-
66
- <form method="post" action="/e/dc_contracts/{{dc_contract.id}}/edit">
67
- <fieldset>
68
- <legend>Ignore all snags before</legend>
69
- {{ input_date('ignore', initial_date) }}
70
- <input type="submit" name="ignore_snags" value="Ignore">
71
- </fieldset>
72
- </form>
73
- {% endif %}
14
+ <form action="/e/dc_contracts/{{dc_contract.id}}/edit" method="post">
15
+ <fieldset>
16
+ <legend>Update Contract</legend>
17
+
18
+ <label>Party</label>
19
+ <select name="party_id">
20
+ {% for party in parties %}
21
+ {{ input_option(
22
+ 'party_id', party.id,
23
+ party.participant.code + ' : ' + party.name,
24
+ dc_contract.party.id) }}
25
+ {% endfor %}
26
+ </select>
27
+
28
+ <label>Name</label> {{input_text('name', dc_contract.name)}}
29
+
30
+ <label>Charge script</label>
31
+ {{input_textarea(
32
+ 'charge_script', dc_contract.charge_script, 40, 80)}}
33
+
34
+ <input type="submit" value="Update">
35
+ </fieldset>
36
+ </form>
37
+
38
+ <form action="/e/dc_contracts/{{dc_contract.id}}/edit" method="post">
39
+ <fieldset>
40
+ <legend>Update State</legend>
41
+ <label>State</label>
42
+ {{input_textarea('state', dc_contract.state, 40, 80)}}
43
+ <input type="submit" name="update_state" value="Update">
44
+ </fieldset>
45
+ </form>
46
+
47
+ <form hx-delete="/e/dc_contracts/{{dc_contract.id}}/edit"
48
+ hx-confirm="Are you sure you want to delete this contract?">
49
+ <fieldset>
50
+ <legend>Delete This Contract</legend>
51
+ <input type="submit" value="Delete">
52
+ </fieldset>
53
+ </form>
54
+
55
+ <form method="post" action="/e/dc_contracts/{{dc_contract.id}}/edit">
56
+ <fieldset>
57
+ <legend>Ignore all snags before</legend>
58
+ {{ input_date('ignore', initial_date) }}
59
+ <input type="submit" name="ignore_snags" value="Ignore">
60
+ </fieldset>
61
+ </form>
74
62
  {% endblock %}
@@ -10,38 +10,24 @@
10
10
  {% endblock %}
11
11
 
12
12
  {% block content %}
13
- {% if request.method == 'GET' and request.values.view == 'confirm_delete' %}
14
-
15
- <form method="post">
16
- <fieldset>
17
- <legend>Are you sure you want to delete this contract?</legend>
18
- <input type="hidden" name="mop_contract_id"
19
- value="{{contract.id}}">
20
- <input type="submit" name="delete" value="Delete">
21
- <a href="/e/mop_contracts/{{contract.id}}/edit">Cancel</a>
22
- </fieldset>
23
- </form>
24
-
25
- {% else %}
26
-
27
- <form method="post">
28
- <fieldset>
29
- <legend>Update Contract</legend>
30
- <input type="hidden" name="mop_contract_id" value="{{contract.id}}">
31
- <label>Party</label>
32
- <select name="party_id">
33
- {% for party in parties %}
34
- {{input_option('party_id', party.id,
35
- party.participant.code + ' : ' + party.name, contract.party.id) }}
36
- {% endfor %}
37
- </select>
38
- <label>Name </label> {{input_text('name', contract.name)}}
39
- <label>Charge script</label>
40
- {{input_textarea('charge_script', contract.charge_script, 40, 80)}}
41
- <label>Properties</label>
42
- {{input_textarea('properties', contract.properties, 40, 80)}}
43
- <label>Example</label>
44
- <code><pre>
13
+ <form method="post">
14
+ <fieldset>
15
+ <legend>Update Contract</legend>
16
+ <input type="hidden" name="mop_contract_id" value="{{contract.id}}">
17
+ <label>Party</label>
18
+ <select name="party_id">
19
+ {% for party in parties %}
20
+ {{input_option('party_id', party.id,
21
+ party.participant.code + ' : ' + party.name, contract.party.id) }}
22
+ {% endfor %}
23
+ </select>
24
+ <label>Name </label> {{input_text('name', contract.name)}}
25
+ <label>Charge script</label>
26
+ {{input_textarea('charge_script', contract.charge_script, 40, 80)}}
27
+ <label>Properties</label>
28
+ {{input_textarea('properties', contract.properties, 40, 80)}}
29
+ <label>Example</label>
30
+ <code><pre>
45
31
  has.importer=yes
46
32
  file.type=.df2
47
33
  hostname=example.com
@@ -49,26 +35,25 @@ username=username
49
35
  password=password
50
36
  directory0=downloads1
51
37
  directory1=downloads2
52
- </pre></code>
53
- <input type="submit" value="Update">
54
- </fieldset>
55
- </form>
38
+ </pre></code>
39
+ <input type="submit" value="Update">
40
+ </fieldset>
41
+ </form>
56
42
 
57
- <form action="/e/mop_contracts/{{contract.id}}/edit" method="post">
58
- <fieldset>
59
- <legend>Update State</legend>
60
- <label>State</label>
61
- {{input_textarea('state', contract.state, 40, 80)}}
62
- <input type="submit" name="update_state" value="Update">
63
- </fieldset>
64
- </form>
43
+ <form action="/e/mop_contracts/{{contract.id}}/edit" method="post">
44
+ <fieldset>
45
+ <legend>Update State</legend>
46
+ <label>State</label>
47
+ {{input_textarea('state', contract.state, 40, 80)}}
48
+ <input type="submit" name="update_state" value="Update">
49
+ </fieldset>
50
+ </form>
65
51
 
66
- <form action="/e/mop_contracts/{{contract.id}}/edit" method="post">
67
- <fieldset>
68
- <legend>Delete this contract</legend>
69
- <input type="hidden" name="view" value="confirm_delete">
70
- <input type="submit" value="Delete">
71
- </fieldset>
72
- </form>
73
- {% endif %}
52
+ <form hx-delete="/e/mop_contracts/{{contract.id}}/edit"
53
+ hx-confirm="Are you sure you want to delete this contract?">
54
+ <fieldset>
55
+ <legend>Delete this contract</legend>
56
+ <input type="submit" value="Delete">
57
+ </fieldset>
58
+ </form>
74
59
  {% endblock %}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: chellow
3
- Version: 1714406616.0.0
3
+ Version: 1714484335.0.0
4
4
  Summary: Web Application for checking UK energy bills.
5
5
  Project-URL: Homepage, https://github.com/WessexWater/chellow
6
6
  Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
@@ -4,7 +4,7 @@ chellow/bank_holidays.py,sha256=T_utYMwe_g1dz5X-aOTdIPryg49SvB7QsWM1yphlqG8,4423
4
4
  chellow/commands.py,sha256=ESBe9ZWj1c3vdZgqMZ9gFvYAB3hRag2R1PzOwuw9yFo,1302
5
5
  chellow/dloads.py,sha256=5SmP-0QPK6xCkd_wjIWh_8FAzN5OxNHCzyEQ1Xb-Y-M,5256
6
6
  chellow/edi_lib.py,sha256=het3R0DBGtXEo-Sy1zvXQuX9EWQ1X6Y33G4l1hYYuds,51859
7
- chellow/general_import.py,sha256=xx4R0kQ6WKIty1UdXoF0igGJQZGm9lDNGynMi7LP0k8,65700
7
+ chellow/general_import.py,sha256=FuDinyFxWJ22plUojTaH6wchU-5AQuHuaI_RjVEeJi8,65818
8
8
  chellow/models.py,sha256=POIL0dfwZFuqht7xHZaE6KJ7fk4kxMZC2aXzgg5kEFY,236921
9
9
  chellow/national_grid.py,sha256=uxcv0qisHPyzw9AVIYPzsRqwt2XPAcZL-SBR12qcrS0,4364
10
10
  chellow/proxy.py,sha256=cVXIktPlX3tQ1BYcwxq0nJXKE6r3DtFTtfFHPq55HaM,1351
@@ -38,7 +38,7 @@ chellow/e/system_price.py,sha256=6w5J7bzwFAZubE2zdOFRiS8IIrVP8hkoIOaG2yCt-Ic,623
38
38
  chellow/e/tlms.py,sha256=M33D6YpMixu2KkwSCzDRM3kThLgShg8exp63Obo75l8,8905
39
39
  chellow/e/tnuos.py,sha256=XseYztPUsQXNKuBmystO2kzzwAG9ehCZgpGBTdgSk-A,4313
40
40
  chellow/e/triad.py,sha256=lIQj7EdUrcFwEqleuHZXYU_bfzIwNOqUVVxB3NPQt4A,13710
41
- chellow/e/views.py,sha256=ccA5ebQA8Oefwi9L71rbStvHenDMB4rhAu0iRMandLc,213977
41
+ chellow/e/views.py,sha256=ZezsZhpsf1kH0BywUWdMMjxdYAYTIclksUOWTh_AOrE,214186
42
42
  chellow/e/bill_parsers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
43
  chellow/e/bill_parsers/activity_mop_stark_xlsx.py,sha256=UgWXDPzQkQghyj_lfgBqoSJpHB-t-qOdSaB8qY6GLog,4071
44
44
  chellow/e/bill_parsers/annual_mop_stark_xlsx.py,sha256=-HMoIfa_utXYKA44RuC0Xqv3vd2HLeQU_4P0iBUd3WA,4219
@@ -92,7 +92,7 @@ chellow/reports/report_bills.py,sha256=AHW6tiZAOE0gXDfencPvemE4zqK6eTqfN8_bWQ4RT
92
92
  chellow/reports/report_csv_llfcs.py,sha256=OHSbP64lQ6dlAMcQYgvdANlA4lQyF0iBlwk7V9c9nuo,1944
93
93
  chellow/reports/report_csv_site_hh_data.py,sha256=T-clGDmYdn0ej7zZfL3kDp4Vyd82WzptxEzxx9KqAZg,4270
94
94
  chellow/reports/report_csv_site_snags.py,sha256=gG2sYQrLoIBwCoMUC8rhmAL7Kffh_rvNb9UOX7cYDko,2668
95
- chellow/reports/report_ecoes_comparison.py,sha256=C7LhYMdOeIH9-jEY6OF_gypQ0WVD2Y9HQiRnhJTt0lo,21408
95
+ chellow/reports/report_ecoes_comparison.py,sha256=xjTvyfYAZhJeAzRJQmKk3xo5rPB1-QbSF-ARuyeKuTs,21822
96
96
  chellow/reports/report_g_monthly_duration.py,sha256=vI5FKAU8_oThjR5oflPZont7Z7sVAunr0qlMfJsaPJI,12004
97
97
  chellow/reports/report_g_supplies_snapshot.py,sha256=0M0x_0o0985Hu45gUJJJwzfx0DDOAuXBJ1UVUDbQ36g,4718
98
98
  chellow/reports/report_g_supply_virtual_bill.py,sha256=x_KtQ02dwgmXvAEUXJ1poK0BRwqxa-GcbJ5pddEina0,3694
@@ -184,7 +184,7 @@ chellow/templates/e/dc_bill_edit.html,sha256=0GsN-ZIc4q-z_xs8igC2ZS6t4soo2SvB3qR
184
184
  chellow/templates/e/dc_bill_import.html,sha256=NHjMSoFizvFQIaPWuVE3nTCtMDTzJB0XmH8jXfV1tiA,2188
185
185
  chellow/templates/e/dc_bill_imports.html,sha256=lCaUR47r9KPr0VrQhEvVEaKexM5R_nmkxtzgpWZ0e9s,2135
186
186
  chellow/templates/e/dc_contract.html,sha256=b6DLDrGdzN9Rri56pFvfpE7QZKYXGHib2veYAztuHlg,2352
187
- chellow/templates/e/dc_contract_edit.html,sha256=YraU0_MTBjmzBCMdsuvtIYm7K58hnDly5wUZ-6n8XzY,2148
187
+ chellow/templates/e/dc_contract_edit.html,sha256=IObmbHQmeZ_LSpnYgabmhoSNUR3aPmm-Jk5nJLM_u74,1706
188
188
  chellow/templates/e/dc_contract_hh_import.html,sha256=UODiBFNohb60MjH1w-9JW1JE0O9GR2uKPGw-lD7Da5g,848
189
189
  chellow/templates/e/dc_contract_hh_imports.html,sha256=eXFDGyzSgag4JRism81_p5yTzQOjCIXaVkQ8tl3dDcM,8172
190
190
  chellow/templates/e/dc_contract_properties.html,sha256=2EmA91gYWZcTOHQ3PxXQrpTOb8dm0OGjwRWsW6qNI9s,455
@@ -242,7 +242,7 @@ chellow/templates/e/mop_bill_import.html,sha256=sSVCZnarru0GKYFW1uuP0f1Ix9iNFDtE
242
242
  chellow/templates/e/mop_bill_imports.html,sha256=jIhWaOuk4hYj9jhXBUxQ7C8v9HJljWfOGGeu1rZa1PI,1610
243
243
  chellow/templates/e/mop_contract.html,sha256=CyuBhj6da1-TiaomXSDD8JD449Ksu8QvIZODHmsE804,1748
244
244
  chellow/templates/e/mop_contract_add.html,sha256=qyjDNz_pOVgfrsKaju0KwxBKJnWF9RxUa-8gUtaOc60,738
245
- chellow/templates/e/mop_contract_edit.html,sha256=zTAqLgMk334WhOoEr-1a20Jjw_fSvSKdxmKoXU0PXW4,2204
245
+ chellow/templates/e/mop_contract_edit.html,sha256=4DbyiKbWRdliQGPh0wlh4dEuhD-R4-3XRzXoNMLfFD4,1719
246
246
  chellow/templates/e/mop_contracts.html,sha256=2TPVkeUefsYOVZIiiLMPJgwcrxhvjk8Io4UKvgdQ2AY,768
247
247
  chellow/templates/e/mop_rate_script.html,sha256=dEP4S4A3H_ld41ub8xbrTuBozSbgTdePBzzkroyNh5k,1170
248
248
  chellow/templates/e/mop_rate_script_add.html,sha256=H_VO8rc9E2jl-xU4ffOwhaZ28UM1PLC5G0aVbtH8P-M,643
@@ -363,6 +363,6 @@ chellow/templates/g/supply_note_edit.html,sha256=6UQf_qbhFDys3cVsTp-c7ABWZpggW9R
363
363
  chellow/templates/g/supply_notes.html,sha256=WR3YwGh_qqTklSJ7JqWX6BKBc9rk_jMff4RiWZiF2CM,936
364
364
  chellow/templates/g/unit.html,sha256=KouNVU0-i84afANkLQ_heJ0uDfJ9H5A05PuLqb8iCN8,438
365
365
  chellow/templates/g/units.html,sha256=p5Nd-lAIboKPEOO6N451hx1bcKxMg4BDODnZ-43MmJc,441
366
- chellow-1714406616.0.0.dist-info/METADATA,sha256=0t5Xd-Xx28Z2Q07kyZH4C_kjD4Pc2gwTJXo3VB9HdbU,12205
367
- chellow-1714406616.0.0.dist-info/WHEEL,sha256=zEMcRr9Kr03x1ozGwg5v9NQBKn3kndp6LSoSlVg-jhU,87
368
- chellow-1714406616.0.0.dist-info/RECORD,,
366
+ chellow-1714484335.0.0.dist-info/METADATA,sha256=rv1vLsnUMaxKwBmYgJWpNOmlQzBggEhB_-nRSxb6x8I,12205
367
+ chellow-1714484335.0.0.dist-info/WHEEL,sha256=zEMcRr9Kr03x1ozGwg5v9NQBKn3kndp6LSoSlVg-jhU,87
368
+ chellow-1714484335.0.0.dist-info/RECORD,,