chellow 1733390302.0.0__py3-none-any.whl → 1734005435.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/__init__.py +0 -1
- chellow/e/bill_parsers/mm.py +27 -5
- chellow/e/computer.py +1 -7
- chellow/e/views.py +126 -10
- chellow/gas/engine.py +1 -3
- chellow/gas/views.py +3 -2
- chellow/reports/report_109.py +2 -3
- chellow/reports/report_111.py +2 -3
- chellow/reports/report_169.py +2 -3
- chellow/reports/report_181.py +2 -3
- chellow/reports/report_183.py +3 -4
- chellow/reports/report_187.py +2 -3
- chellow/reports/report_219.py +2 -3
- chellow/reports/report_231.py +2 -3
- chellow/reports/report_233.py +2 -3
- chellow/reports/report_241.py +2 -3
- chellow/reports/report_247.py +2 -3
- chellow/reports/report_29.py +2 -3
- chellow/reports/report_291.py +2 -3
- chellow/reports/report_33.py +2 -3
- chellow/reports/report_387.py +2 -3
- chellow/reports/report_41.py +2 -3
- chellow/reports/report_429.py +2 -3
- chellow/reports/report_59.py +2 -3
- chellow/reports/report_81.py +2 -3
- chellow/reports/report_87.py +3 -7
- chellow/reports/report_asset_comparison.py +2 -3
- chellow/reports/report_batches.py +2 -3
- chellow/reports/report_bills.py +4 -3
- chellow/reports/report_csv_llfcs.py +2 -3
- chellow/reports/report_csv_site_hh_data.py +2 -3
- chellow/reports/report_csv_site_snags.py +2 -3
- chellow/reports/report_ecoes_comparison.py +2 -3
- chellow/reports/report_g_monthly_duration.py +2 -3
- chellow/reports/report_g_supplies_snapshot.py +2 -3
- chellow/reports/report_g_supply_virtual_bill.py +2 -3
- chellow/reports/report_g_virtual_bills.py +2 -3
- chellow/reports/report_g_virtual_bills_hh.py +2 -3
- chellow/reports/report_sscs.py +2 -3
- chellow/reports/report_supply_contacts.py +2 -3
- chellow/templates/e/dc_contract_properties_edit.html +10 -10
- chellow/templates/e/site_hh_data.html +73 -49
- chellow/templates/site.html +1 -1
- chellow/utils.py +0 -2
- chellow/views.py +33 -167
- {chellow-1733390302.0.0.dist-info → chellow-1734005435.0.0.dist-info}/METADATA +1 -1
- {chellow-1733390302.0.0.dist-info → chellow-1734005435.0.0.dist-info}/RECORD +48 -49
- chellow/templates/site_hh_data.html +0 -75
- {chellow-1733390302.0.0.dist-info → chellow-1734005435.0.0.dist-info}/WHEEL +0 -0
chellow/views.py
CHANGED
|
@@ -10,7 +10,6 @@ import traceback
|
|
|
10
10
|
import types
|
|
11
11
|
from collections import OrderedDict
|
|
12
12
|
from datetime import datetime as Datetime
|
|
13
|
-
from decimal import Decimal
|
|
14
13
|
from functools import wraps
|
|
15
14
|
from importlib import import_module
|
|
16
15
|
from io import DEFAULT_BUFFER_SIZE, StringIO
|
|
@@ -50,7 +49,6 @@ from sqlalchemy import (
|
|
|
50
49
|
true,
|
|
51
50
|
)
|
|
52
51
|
from sqlalchemy.exc import IntegrityError
|
|
53
|
-
from sqlalchemy.orm import joinedload
|
|
54
52
|
from sqlalchemy.orm.attributes import flag_modified
|
|
55
53
|
|
|
56
54
|
from werkzeug.exceptions import BadRequest, Forbidden
|
|
@@ -135,19 +133,9 @@ from chellow.utils import (
|
|
|
135
133
|
home = Blueprint("home", __name__, url_prefix="", template_folder="templates")
|
|
136
134
|
|
|
137
135
|
|
|
138
|
-
def chellow_redirect(path, code=None):
|
|
139
|
-
location = chellow.utils.url_root + path
|
|
140
|
-
if code is None:
|
|
141
|
-
res = redirect(location)
|
|
142
|
-
else:
|
|
143
|
-
res = redirect(location, code)
|
|
144
|
-
|
|
145
|
-
return res
|
|
146
|
-
|
|
147
|
-
|
|
148
136
|
def hx_redirect(path, status=None):
|
|
149
137
|
res = Response(status=status)
|
|
150
|
-
res.headers["HX-Redirect"] =
|
|
138
|
+
res.headers["HX-Redirect"] = path
|
|
151
139
|
return res
|
|
152
140
|
|
|
153
141
|
|
|
@@ -165,7 +153,7 @@ def requires_editor(f):
|
|
|
165
153
|
@home.route("/configuration", methods=["GET"])
|
|
166
154
|
def configuration():
|
|
167
155
|
config = Contract.get_non_core_by_name(g.sess, "configuration")
|
|
168
|
-
return
|
|
156
|
+
return redirect(f"/non_core_contracts/{config.id}")
|
|
169
157
|
|
|
170
158
|
|
|
171
159
|
@home.route("/health")
|
|
@@ -215,7 +203,7 @@ def local_reports_post():
|
|
|
215
203
|
return Response("There's already a report with that name.", status=400)
|
|
216
204
|
else:
|
|
217
205
|
raise
|
|
218
|
-
return
|
|
206
|
+
return redirect(f"/local_reports/{report.id}", 303)
|
|
219
207
|
|
|
220
208
|
|
|
221
209
|
@home.route("/local_reports/<int:report_id>")
|
|
@@ -229,7 +217,7 @@ def local_report_post(report_id):
|
|
|
229
217
|
report = Report.get_by_id(g.sess, report_id)
|
|
230
218
|
if "delete" in request.values:
|
|
231
219
|
g.sess.delete(report)
|
|
232
|
-
return
|
|
220
|
+
return redirect("/local_reports", 303)
|
|
233
221
|
|
|
234
222
|
else:
|
|
235
223
|
name = req_str("name")
|
|
@@ -243,7 +231,7 @@ def local_report_post(report_id):
|
|
|
243
231
|
return Response("There's already a report with that name.", status=400)
|
|
244
232
|
else:
|
|
245
233
|
raise
|
|
246
|
-
return
|
|
234
|
+
return redirect(f"/local_reports/{report.id}", 303)
|
|
247
235
|
|
|
248
236
|
|
|
249
237
|
@home.route("/scenarios")
|
|
@@ -259,7 +247,7 @@ def scenario_add_post():
|
|
|
259
247
|
properties = req_zish("properties")
|
|
260
248
|
scenario = Scenario.insert(g.sess, name, properties)
|
|
261
249
|
g.sess.commit()
|
|
262
|
-
return
|
|
250
|
+
return redirect(f"/scenarios/{scenario.id}", 303)
|
|
263
251
|
except BadRequest as e:
|
|
264
252
|
g.sess.rollback()
|
|
265
253
|
flash(e.description)
|
|
@@ -352,16 +340,13 @@ def scenario_edit_post(scenario_id):
|
|
|
352
340
|
properties = req_zish("properties")
|
|
353
341
|
scenario.update(name, properties)
|
|
354
342
|
g.sess.commit()
|
|
355
|
-
return
|
|
343
|
+
return redirect(f"/scenarios/{scenario.id}", 303)
|
|
356
344
|
except BadRequest as e:
|
|
357
345
|
g.sess.rollback()
|
|
358
346
|
description = e.description
|
|
359
347
|
flash(description)
|
|
360
348
|
return make_response(
|
|
361
|
-
render_template(
|
|
362
|
-
"scenario_edit.html",
|
|
363
|
-
scenario=scenario,
|
|
364
|
-
),
|
|
349
|
+
render_template("scenario_edit.html", scenario=scenario),
|
|
365
350
|
400,
|
|
366
351
|
)
|
|
367
352
|
|
|
@@ -372,9 +357,7 @@ def scenario_edit_delete(scenario_id):
|
|
|
372
357
|
scenario = Scenario.get_by_id(g.sess, scenario_id)
|
|
373
358
|
scenario.delete(g.sess)
|
|
374
359
|
g.sess.commit()
|
|
375
|
-
|
|
376
|
-
res.headers["HX-Redirect"] = f"{chellow.utils.url_root}/e/scenarios"
|
|
377
|
-
return res
|
|
360
|
+
return hx_redirect("/scenarios")
|
|
378
361
|
except BadRequest as e:
|
|
379
362
|
g.sess.rollback()
|
|
380
363
|
flash(e.description)
|
|
@@ -633,7 +616,7 @@ def users_post():
|
|
|
633
616
|
party = g.sess.query(Party).get(party_id)
|
|
634
617
|
user = User.insert(g.sess, email_address, password, role, party)
|
|
635
618
|
g.sess.commit()
|
|
636
|
-
return
|
|
619
|
+
return redirect("/users/" + str(user.id), 303)
|
|
637
620
|
except BadRequest as e:
|
|
638
621
|
g.sess.rollback()
|
|
639
622
|
flash(e.description)
|
|
@@ -669,11 +652,11 @@ def user_post(user_id):
|
|
|
669
652
|
raise BadRequest("The password must be at least 6 characters long.")
|
|
670
653
|
user.set_password(new_password)
|
|
671
654
|
g.sess.commit()
|
|
672
|
-
return
|
|
655
|
+
return redirect("/users/" + str(user.id), 303)
|
|
673
656
|
elif "delete" in request.values:
|
|
674
657
|
g.sess.delete(user)
|
|
675
658
|
g.sess.commit()
|
|
676
|
-
return
|
|
659
|
+
return redirect("/users", 303)
|
|
677
660
|
else:
|
|
678
661
|
email_address = req_str("email_address")
|
|
679
662
|
user_role_code = req_str("user_role_code")
|
|
@@ -684,7 +667,7 @@ def user_post(user_id):
|
|
|
684
667
|
party = Party.get_by_id(g.sess, party_id)
|
|
685
668
|
user.update(email_address, user_role, party)
|
|
686
669
|
g.sess.commit()
|
|
687
|
-
return
|
|
670
|
+
return redirect("/users/" + str(user.id), 303)
|
|
688
671
|
except BadRequest as e:
|
|
689
672
|
flash(e.description)
|
|
690
673
|
parties = (
|
|
@@ -743,7 +726,7 @@ def general_imports_post():
|
|
|
743
726
|
)
|
|
744
727
|
f.seek(0)
|
|
745
728
|
proc_id = chellow.general_import.start_process(f)
|
|
746
|
-
return
|
|
729
|
+
return redirect(f"/general_imports/{proc_id}", 303)
|
|
747
730
|
except BadRequest as e:
|
|
748
731
|
flash(e.description)
|
|
749
732
|
return render_template(
|
|
@@ -921,7 +904,7 @@ def site_edit_post(site_id):
|
|
|
921
904
|
site.delete(g.sess)
|
|
922
905
|
g.sess.commit()
|
|
923
906
|
flash("Site deleted successfully.")
|
|
924
|
-
return
|
|
907
|
+
return redirect("/sites", 303)
|
|
925
908
|
|
|
926
909
|
elif "update" in request.form:
|
|
927
910
|
code = req_str("code")
|
|
@@ -929,7 +912,7 @@ def site_edit_post(site_id):
|
|
|
929
912
|
site.update(code, name)
|
|
930
913
|
g.sess.commit()
|
|
931
914
|
flash("Site updated successfully.")
|
|
932
|
-
return
|
|
915
|
+
return redirect(f"/sites/{site.id}", 303)
|
|
933
916
|
|
|
934
917
|
elif "insert_gas" in request.form:
|
|
935
918
|
name = req_str("name")
|
|
@@ -967,7 +950,7 @@ def site_edit_post(site_id):
|
|
|
967
950
|
soq,
|
|
968
951
|
)
|
|
969
952
|
g.sess.commit()
|
|
970
|
-
return
|
|
953
|
+
return redirect(f"/g/supplies/{g_supply.id}", 303)
|
|
971
954
|
else:
|
|
972
955
|
raise BadRequest(
|
|
973
956
|
"The request must contain one of the following parameter names: "
|
|
@@ -1049,7 +1032,7 @@ def site_add_post():
|
|
|
1049
1032
|
name = req_str("name")
|
|
1050
1033
|
site = Site.insert(g.sess, code, name)
|
|
1051
1034
|
g.sess.commit()
|
|
1052
|
-
return
|
|
1035
|
+
return redirect(f"/sites/{site.id}", 303)
|
|
1053
1036
|
except BadRequest as e:
|
|
1054
1037
|
flash(e.description)
|
|
1055
1038
|
return render_template("site_add.html")
|
|
@@ -1079,7 +1062,7 @@ def sites_get():
|
|
|
1079
1062
|
)
|
|
1080
1063
|
|
|
1081
1064
|
if len(sites) == 1:
|
|
1082
|
-
return
|
|
1065
|
+
return redirect(f"/sites/{sites[0].id}")
|
|
1083
1066
|
else:
|
|
1084
1067
|
return render_template("sites.html", sites=sites, limit=LIMIT)
|
|
1085
1068
|
else:
|
|
@@ -1147,9 +1130,9 @@ limit :max_results"""
|
|
|
1147
1130
|
)
|
|
1148
1131
|
|
|
1149
1132
|
if len(e_eras) == 1 and len(g_eras) == 0:
|
|
1150
|
-
return
|
|
1133
|
+
return redirect(f"/e/supplies/{e_eras[0].supply.id}", 307)
|
|
1151
1134
|
elif len(e_eras) == 0 and len(g_eras) == 1:
|
|
1152
|
-
return
|
|
1135
|
+
return redirect(f"/g/supplies/{g_eras[0].g_supply.id}", 307)
|
|
1153
1136
|
else:
|
|
1154
1137
|
return render_template(
|
|
1155
1138
|
"supplies.html", e_eras=e_eras, g_eras=g_eras, max_results=max_results
|
|
@@ -1170,123 +1153,6 @@ def report_post(report_id):
|
|
|
1170
1153
|
return report_module.do_post(g.sess)
|
|
1171
1154
|
|
|
1172
1155
|
|
|
1173
|
-
@home.route("/sites/<int:site_id>/hh_data")
|
|
1174
|
-
def site_hh_data_get(site_id):
|
|
1175
|
-
caches = {}
|
|
1176
|
-
site = Site.get_by_id(g.sess, site_id)
|
|
1177
|
-
|
|
1178
|
-
year = req_int("year")
|
|
1179
|
-
month = req_int("month")
|
|
1180
|
-
start_date, finish_date = next(
|
|
1181
|
-
c_months_u(start_year=year, start_month=month, months=1)
|
|
1182
|
-
)
|
|
1183
|
-
|
|
1184
|
-
supplies = (
|
|
1185
|
-
g.sess.query(Supply)
|
|
1186
|
-
.join(Era)
|
|
1187
|
-
.join(SiteEra)
|
|
1188
|
-
.join(Source)
|
|
1189
|
-
.filter(
|
|
1190
|
-
SiteEra.site == site,
|
|
1191
|
-
SiteEra.is_physical == true(),
|
|
1192
|
-
Era.start_date <= finish_date,
|
|
1193
|
-
or_(Era.finish_date == null(), Era.finish_date >= start_date),
|
|
1194
|
-
Source.code != "sub",
|
|
1195
|
-
)
|
|
1196
|
-
.order_by(Supply.id)
|
|
1197
|
-
.distinct()
|
|
1198
|
-
.options(joinedload(Supply.source), joinedload(Supply.generator_type))
|
|
1199
|
-
.all()
|
|
1200
|
-
)
|
|
1201
|
-
|
|
1202
|
-
data = iter(
|
|
1203
|
-
g.sess.query(HhDatum)
|
|
1204
|
-
.join(Channel)
|
|
1205
|
-
.join(Era)
|
|
1206
|
-
.filter(
|
|
1207
|
-
Channel.channel_type == "ACTIVE",
|
|
1208
|
-
Era.supply_id.in_([s.id for s in supplies]),
|
|
1209
|
-
HhDatum.start_date >= start_date,
|
|
1210
|
-
HhDatum.start_date <= finish_date,
|
|
1211
|
-
)
|
|
1212
|
-
.order_by(HhDatum.start_date, Era.supply_id)
|
|
1213
|
-
.options(
|
|
1214
|
-
joinedload(HhDatum.channel)
|
|
1215
|
-
.joinedload(Channel.era)
|
|
1216
|
-
.joinedload(Era.supply)
|
|
1217
|
-
.joinedload(Supply.source)
|
|
1218
|
-
)
|
|
1219
|
-
)
|
|
1220
|
-
datum = next(data, None)
|
|
1221
|
-
|
|
1222
|
-
hh_data = []
|
|
1223
|
-
for hh_date in hh_range(caches, start_date, finish_date):
|
|
1224
|
-
sups = []
|
|
1225
|
-
hh_dict = {
|
|
1226
|
-
"start_date": hh_date,
|
|
1227
|
-
"supplies": sups,
|
|
1228
|
-
"export_kwh": Decimal(0),
|
|
1229
|
-
"import_kwh": Decimal(0),
|
|
1230
|
-
"parasitic_kwh": Decimal(0),
|
|
1231
|
-
"generated_kwh": Decimal(0),
|
|
1232
|
-
"third_party_import_kwh": Decimal(0),
|
|
1233
|
-
"third_party_export_kwh": Decimal(0),
|
|
1234
|
-
}
|
|
1235
|
-
hh_data.append(hh_dict)
|
|
1236
|
-
for supply in supplies:
|
|
1237
|
-
sup_hh = {}
|
|
1238
|
-
sups.append(sup_hh)
|
|
1239
|
-
while (
|
|
1240
|
-
datum is not None
|
|
1241
|
-
and datum.start_date == hh_date
|
|
1242
|
-
and datum.channel.era.supply_id == supply.id
|
|
1243
|
-
):
|
|
1244
|
-
channel = datum.channel
|
|
1245
|
-
imp_related = channel.imp_related
|
|
1246
|
-
source_code = channel.era.supply.source.code
|
|
1247
|
-
|
|
1248
|
-
prefix = "import_" if imp_related else "export_"
|
|
1249
|
-
sup_hh[f"{prefix}kwh"] = datum.value
|
|
1250
|
-
sup_hh[f"{prefix}status"] = datum.status
|
|
1251
|
-
|
|
1252
|
-
if not imp_related and source_code in ("grid", "gen-grid"):
|
|
1253
|
-
hh_dict["export_kwh"] += datum.value
|
|
1254
|
-
if imp_related and source_code in ("grid", "gen-grid"):
|
|
1255
|
-
hh_dict["import_kwh"] += datum.value
|
|
1256
|
-
if (imp_related and source_code == "gen") or (
|
|
1257
|
-
not imp_related and source_code == "gen-grid"
|
|
1258
|
-
):
|
|
1259
|
-
hh_dict["generated_kwh"] += datum.value
|
|
1260
|
-
if (not imp_related and source_code == "gen") or (
|
|
1261
|
-
imp_related and source_code == "gen-grid"
|
|
1262
|
-
):
|
|
1263
|
-
hh_dict["parasitic_kwh"] += datum.value
|
|
1264
|
-
if (imp_related and source_code == "3rd-party") or (
|
|
1265
|
-
not imp_related and source_code == "3rd-party-reverse"
|
|
1266
|
-
):
|
|
1267
|
-
hh_dict["third_party_import_kwh"] += datum.value
|
|
1268
|
-
if (not imp_related and source_code == "3rd-party") or (
|
|
1269
|
-
imp_related and source_code == "3rd-party-reverse"
|
|
1270
|
-
):
|
|
1271
|
-
hh_dict["third_party_export_kwh"] += datum.value
|
|
1272
|
-
datum = next(data, None)
|
|
1273
|
-
|
|
1274
|
-
hh_dict["displaced_kwh"] = (
|
|
1275
|
-
hh_dict["generated_kwh"] - hh_dict["export_kwh"] - hh_dict["parasitic_kwh"]
|
|
1276
|
-
)
|
|
1277
|
-
hh_dict["used_kwh"] = sum(
|
|
1278
|
-
(
|
|
1279
|
-
hh_dict["import_kwh"],
|
|
1280
|
-
hh_dict["displaced_kwh"],
|
|
1281
|
-
hh_dict["third_party_import_kwh"] - hh_dict["third_party_export_kwh"],
|
|
1282
|
-
)
|
|
1283
|
-
)
|
|
1284
|
-
|
|
1285
|
-
return render_template(
|
|
1286
|
-
"site_hh_data.html", site=site, supplies=supplies, hh_data=hh_data
|
|
1287
|
-
)
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
1156
|
@home.route("/sites/<int:site_id>")
|
|
1291
1157
|
def site_get(site_id):
|
|
1292
1158
|
configuration_contract = Contract.get_non_core_by_name(g.sess, "configuration")
|
|
@@ -1595,7 +1461,7 @@ def report_run_post(run_id):
|
|
|
1595
1461
|
run = g.sess.query(ReportRun).filter(ReportRun.id == run_id).one()
|
|
1596
1462
|
run.delete(g.sess)
|
|
1597
1463
|
g.sess.commit()
|
|
1598
|
-
return
|
|
1464
|
+
return redirect("/report_runs", 303)
|
|
1599
1465
|
|
|
1600
1466
|
|
|
1601
1467
|
@home.route("/report_runs/<int:run_id>/spreadsheet")
|
|
@@ -1705,7 +1571,7 @@ def report_run_row_post(row_id):
|
|
|
1705
1571
|
g.sess.commit()
|
|
1706
1572
|
flash("Update successful")
|
|
1707
1573
|
|
|
1708
|
-
return
|
|
1574
|
+
return redirect(f"/report_run_rows/{row_id}", 303)
|
|
1709
1575
|
|
|
1710
1576
|
|
|
1711
1577
|
@home.route("/non_core_contracts")
|
|
@@ -1905,17 +1771,17 @@ def non_core_contract_edit_post(contract_id):
|
|
|
1905
1771
|
if "delete" in request.values:
|
|
1906
1772
|
contract.delete(g.sess)
|
|
1907
1773
|
g.sess.commit()
|
|
1908
|
-
return
|
|
1774
|
+
return redirect("/non_core_contracts", 303)
|
|
1909
1775
|
if "update_state" in request.values:
|
|
1910
1776
|
state = req_zish("state")
|
|
1911
1777
|
contract.update_state(state)
|
|
1912
1778
|
g.sess.commit()
|
|
1913
|
-
return
|
|
1779
|
+
return redirect(f"/non_core_contracts/{contract.id}", 303)
|
|
1914
1780
|
else:
|
|
1915
1781
|
properties = req_zish("properties")
|
|
1916
1782
|
contract.update_properties(properties)
|
|
1917
1783
|
g.sess.commit()
|
|
1918
|
-
return
|
|
1784
|
+
return redirect(f"/non_core_contracts/{contract.id}", 303)
|
|
1919
1785
|
except BadRequest as e:
|
|
1920
1786
|
flash(e.description)
|
|
1921
1787
|
return make_response(
|
|
@@ -2014,7 +1880,7 @@ def national_grid_get():
|
|
|
2014
1880
|
def national_grid_post():
|
|
2015
1881
|
importer = chellow.national_grid.importer
|
|
2016
1882
|
importer.go()
|
|
2017
|
-
return
|
|
1883
|
+
return redirect("/national_grid", 303)
|
|
2018
1884
|
|
|
2019
1885
|
|
|
2020
1886
|
@home.route("/non_core_contracts/<int:contract_id>/add_rate_script")
|
|
@@ -2037,7 +1903,7 @@ def non_core_rate_script_add_post(contract_id):
|
|
|
2037
1903
|
start_date = req_date("start")
|
|
2038
1904
|
rate_script = contract.insert_rate_script(g.sess, start_date, {})
|
|
2039
1905
|
g.sess.commit()
|
|
2040
|
-
return
|
|
1906
|
+
return redirect(f"/non_core_rate_scripts/{rate_script.id}", 303)
|
|
2041
1907
|
except BadRequest as e:
|
|
2042
1908
|
flash(e.description)
|
|
2043
1909
|
now = utc_datetime_now()
|
|
@@ -2109,7 +1975,7 @@ def non_core_rate_script_edit_post(rs_id):
|
|
|
2109
1975
|
if "delete" in request.values:
|
|
2110
1976
|
contract.delete_rate_script(g.sess, rate_script)
|
|
2111
1977
|
g.sess.commit()
|
|
2112
|
-
return
|
|
1978
|
+
return redirect(f"/non_core_contracts/{contract.id}", 303)
|
|
2113
1979
|
else:
|
|
2114
1980
|
script = req_zish("script")
|
|
2115
1981
|
start_date = req_hh_date("start")
|
|
@@ -2121,7 +1987,7 @@ def non_core_rate_script_edit_post(rs_id):
|
|
|
2121
1987
|
g.sess, rate_script, start_date, finish_date, script
|
|
2122
1988
|
)
|
|
2123
1989
|
g.sess.commit()
|
|
2124
|
-
return
|
|
1990
|
+
return redirect(f"/non_core_rate_scripts/{rate_script.id}", 303)
|
|
2125
1991
|
except BadRequest as e:
|
|
2126
1992
|
g.sess.rollback()
|
|
2127
1993
|
flash(e.description)
|
|
@@ -2152,7 +2018,7 @@ def non_core_auto_importer_post(contract_id):
|
|
|
2152
2018
|
except ModuleNotFoundError:
|
|
2153
2019
|
importer = import_module(f"chellow.e.{contract.name}").get_importer()
|
|
2154
2020
|
importer.go()
|
|
2155
|
-
return
|
|
2021
|
+
return redirect(f"/non_core_contracts/{contract.id}/auto_importer", 303)
|
|
2156
2022
|
except BadRequest as e:
|
|
2157
2023
|
g.sess.rollback()
|
|
2158
2024
|
flash(e.description)
|
|
@@ -2262,7 +2128,7 @@ def rate_server_get():
|
|
|
2262
2128
|
def rate_server_post():
|
|
2263
2129
|
importer = chellow.rate_server.importer
|
|
2264
2130
|
importer.go()
|
|
2265
|
-
return
|
|
2131
|
+
return redirect("/rate_server", 303)
|
|
2266
2132
|
|
|
2267
2133
|
|
|
2268
2134
|
@home.route("/tester")
|
|
@@ -2275,7 +2141,7 @@ def tester_get():
|
|
|
2275
2141
|
def tester_post():
|
|
2276
2142
|
tester = chellow.testing.tester
|
|
2277
2143
|
tester.go()
|
|
2278
|
-
return
|
|
2144
|
+
return redirect("/tester", 303)
|
|
2279
2145
|
|
|
2280
2146
|
|
|
2281
2147
|
@home.route("/user_roles")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: chellow
|
|
3
|
-
Version:
|
|
3
|
+
Version: 1734005435.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)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
chellow/__init__.py,sha256=
|
|
1
|
+
chellow/__init__.py,sha256=S1IjQChkEMA_MfzE5F1pPP-54bz_CRH4KE9X6SgX8bI,9722
|
|
2
2
|
chellow/api.py,sha256=mk17TfweR76DPFC8lX2SArTjai6y6YshASxqO1w-_-s,11036
|
|
3
3
|
chellow/bank_holidays.py,sha256=T_utYMwe_g1dz5X-aOTdIPryg49SvB7QsWM1yphlqG8,4423
|
|
4
4
|
chellow/commands.py,sha256=ESBe9ZWj1c3vdZgqMZ9gFvYAB3hRag2R1PzOwuw9yFo,1302
|
|
@@ -11,8 +11,8 @@ chellow/proxy.py,sha256=cVXIktPlX3tQ1BYcwxq0nJXKE6r3DtFTtfFHPq55HaM,1351
|
|
|
11
11
|
chellow/rate_server.py,sha256=fg-Pf_9Hk3bXmC9riPQNGQxBvLvBa_WtNYdwDCjnCSg,5678
|
|
12
12
|
chellow/rrun.py,sha256=1Kt2q_K9UoDG_nsZz-Q6XJiMNKroWqlqFdxn2M6Q8CA,2088
|
|
13
13
|
chellow/testing.py,sha256=Od4HHH6pZrhJ_De118_F55RJEKmAvhUH2S24QE9qFQk,3635
|
|
14
|
-
chellow/utils.py,sha256=
|
|
15
|
-
chellow/views.py,sha256=
|
|
14
|
+
chellow/utils.py,sha256=Ej7dsbQ6Ee8X2aZ7B2Vs-hUFCsMABioAdOV1DJjwY-0,19293
|
|
15
|
+
chellow/views.py,sha256=OlNGtFB9OatQPMzHiXTjBoGOSnFT7cC38GA2x7rtcFg,79490
|
|
16
16
|
chellow/e/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
17
17
|
chellow/e/aahedc.py,sha256=d2usudp7KYWpU6Pk3fal5EQ47EbvkvKeaFGylnb3NWw,606
|
|
18
18
|
chellow/e/bill_importer.py,sha256=7UcnqNlKbJc2GhW9gy8sDp9GuqambJVpZLvbafOZztA,7411
|
|
@@ -20,7 +20,7 @@ chellow/e/bmarketidx.py,sha256=C0BaHn2RxIuWH2QzA-OmSP0fbUGvW9tqEUhLnzOEdmA,7968
|
|
|
20
20
|
chellow/e/bsuos.py,sha256=hdP9vnOJSuZl46OAkJeUg1XJYvYIBj4J6Sqce1Hy9Vs,15542
|
|
21
21
|
chellow/e/ccl.py,sha256=30dh_SvlgzsTQPPAJNZWILaMvbeDsv9-P-S1JxS5_SQ,3184
|
|
22
22
|
chellow/e/cfd.py,sha256=Gm435c42LFwZx1n-1UY1Tdx6mL1is7E0vRLWQe8RPOo,14184
|
|
23
|
-
chellow/e/computer.py,sha256=
|
|
23
|
+
chellow/e/computer.py,sha256=Fq4SpEvCLArZHOGgSGqvm7mdAVLiswnNWspuuft4h70,67460
|
|
24
24
|
chellow/e/dno_rate_parser.py,sha256=A5TP6KjyfT5lVWh7dX4SiXRi6wnf2lGv-H_T4Sod8CI,21731
|
|
25
25
|
chellow/e/duos.py,sha256=nwviRjz-qIt3GxIMHk0hItIT4dtKsxOWq9TUC1z-hO8,30864
|
|
26
26
|
chellow/e/elexon.py,sha256=ALhXS9Es7PV0z9ukPbIramn3cf3iLyFi-PMWPSm5iOs,5487
|
|
@@ -43,7 +43,7 @@ chellow/e/system_price.py,sha256=6w5J7bzwFAZubE2zdOFRiS8IIrVP8hkoIOaG2yCt-Ic,623
|
|
|
43
43
|
chellow/e/tlms.py,sha256=M33D6YpMixu2KkwSCzDRM3kThLgShg8exp63Obo75l8,8905
|
|
44
44
|
chellow/e/tnuos.py,sha256=NBmc-f3oezrl4gviAKobljHfICTpBKxxxEGBGJi_lRk,4927
|
|
45
45
|
chellow/e/triad.py,sha256=lIQj7EdUrcFwEqleuHZXYU_bfzIwNOqUVVxB3NPQt4A,13710
|
|
46
|
-
chellow/e/views.py,sha256=
|
|
46
|
+
chellow/e/views.py,sha256=VkoB3-jgydp-2RMdlYVvSL4UVUmt7wMnCJpHSBdf1jM,220753
|
|
47
47
|
chellow/e/bill_parsers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
48
48
|
chellow/e/bill_parsers/activity_mop_stark_xlsx.py,sha256=UgWXDPzQkQghyj_lfgBqoSJpHB-t-qOdSaB8qY6GLog,4071
|
|
49
49
|
chellow/e/bill_parsers/annual_mop_stark_xlsx.py,sha256=-HMoIfa_utXYKA44RuC0Xqv3vd2HLeQU_4P0iBUd3WA,4219
|
|
@@ -58,7 +58,7 @@ chellow/e/bill_parsers/gdf_csv.py,sha256=ZfK3Oc6oP28p_P9DIevLNB_zW2WLcEJ3Lvb1gL3
|
|
|
58
58
|
chellow/e/bill_parsers/haven_csv.py,sha256=0uENq8IgVNqdxfBQMBxLTSZWCOuDHXZC0xzk52SbfyE,13652
|
|
59
59
|
chellow/e/bill_parsers/haven_edi.py,sha256=YGPHRxPOhje9s32jqPHHELni2tooOYj3cMC_qaZVPq4,16107
|
|
60
60
|
chellow/e/bill_parsers/haven_edi_tprs.py,sha256=ZVX9CCqUybsot_Z0BEOJPvl9x5kSr7fEWyuJXvZDcz4,11841
|
|
61
|
-
chellow/e/bill_parsers/mm.py,sha256=
|
|
61
|
+
chellow/e/bill_parsers/mm.py,sha256=CdYVV3OI-BCtpd9PohOPkY3127dhz0wOCtXOLCDRVsw,10724
|
|
62
62
|
chellow/e/bill_parsers/nonsettlement_dc_stark_xlsx.py,sha256=yogXTuQHGRL7IiqvRWr2C9V24ez1j9Yx0128UygPE_k,4723
|
|
63
63
|
chellow/e/bill_parsers/settlement_dc_stark_xlsx.py,sha256=PlEqCZuJ9DfQXeeYQ64jtf3ML7sUt_tt61QOOTnkE5c,6380
|
|
64
64
|
chellow/e/bill_parsers/sse_edi.py,sha256=L85DOfNkqexeEIEr8pCBn_2sHJI-zEaw6cogpE3YyYM,15204
|
|
@@ -70,44 +70,44 @@ chellow/gas/bill_parser_total_edi.py,sha256=bMAeIkzHwNhv0qdKYXtRl-tzUUYtjNkbM3PM
|
|
|
70
70
|
chellow/gas/ccl.py,sha256=DMlcPUELZi00CaDekVJINYk3GgH5apFrImVdmkbyba0,2913
|
|
71
71
|
chellow/gas/cv.py,sha256=4cdYYQ8Qak6NeYdBCB4YaQ0jX8-UkaydIIdibCQuXxM,7344
|
|
72
72
|
chellow/gas/dn_rate_parser.py,sha256=Mq8rAcUEUxIQOks59bsCKl8GrefvoHbrTCHqon9N0z0,11340
|
|
73
|
-
chellow/gas/engine.py,sha256=
|
|
73
|
+
chellow/gas/engine.py,sha256=d2rR1y8b3u2QhmfqyFwwLu_loeZxY_3WwwtDyGJfam0,25282
|
|
74
74
|
chellow/gas/transportation.py,sha256=Bkg8TWOs-v0ES-4qqwbleiOhqbE_t2KauUx9JYMZELM,5300
|
|
75
|
-
chellow/gas/views.py,sha256=
|
|
75
|
+
chellow/gas/views.py,sha256=1_bPHA6i0BlQmQ6YhQaGSMnIm-81dO3ksHW5uL2n2NE,59003
|
|
76
76
|
chellow/reports/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
77
|
-
chellow/reports/report_109.py,sha256=
|
|
78
|
-
chellow/reports/report_111.py,sha256=
|
|
79
|
-
chellow/reports/report_169.py,sha256=
|
|
80
|
-
chellow/reports/report_181.py,sha256=
|
|
81
|
-
chellow/reports/report_183.py,sha256=
|
|
82
|
-
chellow/reports/report_187.py,sha256=
|
|
83
|
-
chellow/reports/report_219.py,sha256=
|
|
84
|
-
chellow/reports/report_231.py,sha256=
|
|
85
|
-
chellow/reports/report_233.py,sha256=
|
|
86
|
-
chellow/reports/report_241.py,sha256=
|
|
87
|
-
chellow/reports/report_247.py,sha256=
|
|
88
|
-
chellow/reports/report_29.py,sha256=
|
|
89
|
-
chellow/reports/report_291.py,sha256=
|
|
90
|
-
chellow/reports/report_33.py,sha256=
|
|
91
|
-
chellow/reports/report_387.py,sha256=
|
|
92
|
-
chellow/reports/report_41.py,sha256=
|
|
93
|
-
chellow/reports/report_429.py,sha256=
|
|
94
|
-
chellow/reports/report_59.py,sha256=
|
|
95
|
-
chellow/reports/report_81.py,sha256=
|
|
96
|
-
chellow/reports/report_87.py,sha256=
|
|
97
|
-
chellow/reports/report_asset_comparison.py,sha256=
|
|
98
|
-
chellow/reports/report_batches.py,sha256=
|
|
99
|
-
chellow/reports/report_bills.py,sha256=
|
|
100
|
-
chellow/reports/report_csv_llfcs.py,sha256=
|
|
101
|
-
chellow/reports/report_csv_site_hh_data.py,sha256=
|
|
102
|
-
chellow/reports/report_csv_site_snags.py,sha256=
|
|
103
|
-
chellow/reports/report_ecoes_comparison.py,sha256=
|
|
104
|
-
chellow/reports/report_g_monthly_duration.py,sha256=
|
|
105
|
-
chellow/reports/report_g_supplies_snapshot.py,sha256=
|
|
106
|
-
chellow/reports/report_g_supply_virtual_bill.py,sha256=
|
|
107
|
-
chellow/reports/report_g_virtual_bills.py,sha256=
|
|
108
|
-
chellow/reports/report_g_virtual_bills_hh.py,sha256=
|
|
109
|
-
chellow/reports/report_sscs.py,sha256=
|
|
110
|
-
chellow/reports/report_supply_contacts.py,sha256=
|
|
77
|
+
chellow/reports/report_109.py,sha256=Exb-FQ5f70-ier_h15CgHGysQ7vJ7k3gFZ1001zM3iM,11171
|
|
78
|
+
chellow/reports/report_111.py,sha256=o_wWyrtmxpTnmT9DVlsG5h5wdm3JqojirRlx_7W5_kQ,28787
|
|
79
|
+
chellow/reports/report_169.py,sha256=wortJyvgXTrnjjXhLzqwaksKKu63K5IgdzU5f4SkHMI,9246
|
|
80
|
+
chellow/reports/report_181.py,sha256=ypfYWYVNC1X2fMlJyDzwNiNTTRrpPW49DirXE_xDKa0,4958
|
|
81
|
+
chellow/reports/report_183.py,sha256=fGONpKEIXTqIT_3dE5jZKBIesWPgLq-chHO6X22dIv0,8768
|
|
82
|
+
chellow/reports/report_187.py,sha256=RCvxDnkfRu7ocKUPEX0qtVphGOBEl9RULy790uteXcQ,9915
|
|
83
|
+
chellow/reports/report_219.py,sha256=3Zs16ka6dWWY_lCDoA-ZFrlPb4vHk1LQoa2yrlTMntA,7117
|
|
84
|
+
chellow/reports/report_231.py,sha256=WARLztV2HzBFSi5_xvY_DTXVyuBBbBYiU0RazfjKw-Y,5270
|
|
85
|
+
chellow/reports/report_233.py,sha256=qJdPFuBgQAWD24BsljgGJ44L_RGdHOA1RqsxGjTWhFc,4975
|
|
86
|
+
chellow/reports/report_241.py,sha256=lfivElRkV_CZAhck0rxAuhqzgponj3aWwmwGMNQvUxg,5343
|
|
87
|
+
chellow/reports/report_247.py,sha256=Hhhk0XcDdS3SaA-BJxw6BtN7mOhdKjBdtBNV7zqqaAI,44509
|
|
88
|
+
chellow/reports/report_29.py,sha256=ZXnq6Kg5on-IPquUsH4bn46mBVESY_WhwqDWZPXOJwo,2695
|
|
89
|
+
chellow/reports/report_291.py,sha256=BnWtxe0eWN2QKKWpwjs5-RI5LbReBKL119QbkrkNhV8,7478
|
|
90
|
+
chellow/reports/report_33.py,sha256=lt1EN_LNx6u-AgdaS3YRkPMZA33JgMcELolHF4oJUMw,16689
|
|
91
|
+
chellow/reports/report_387.py,sha256=bBqtnGGDWIXzXe2zVm9yeDRZKNgkUaOS3XTX6k09f18,5631
|
|
92
|
+
chellow/reports/report_41.py,sha256=8xUIN9D5dtT0Dn1RmbnWsLRmM-QbGA5xGhWCK3ljAzA,7406
|
|
93
|
+
chellow/reports/report_429.py,sha256=bpnz_SAiWFoHN7UF3rS0-LupbDyE_AnGI-XOphGXyPc,12627
|
|
94
|
+
chellow/reports/report_59.py,sha256=PkdRA6ctvDGWTQd5vb9cQH6MG920TxcD6aHh268zrj8,42221
|
|
95
|
+
chellow/reports/report_81.py,sha256=bBpV6MtvKGtoLiqzZoK2h21KDs4vfDwy-etpfL9oiEI,5570
|
|
96
|
+
chellow/reports/report_87.py,sha256=udzbCuXcckWD-OHmfJCT6bwg_paYhm4vfDWlL8WM-jA,6933
|
|
97
|
+
chellow/reports/report_asset_comparison.py,sha256=Cl2NgvbclqhOVvKuUu3sajTVO2JupMfzK3bV0_K8eNs,6077
|
|
98
|
+
chellow/reports/report_batches.py,sha256=MoCv2dE-JgaJzaMjMA-kZrPkYR13uDoXer5UuF12OYc,4757
|
|
99
|
+
chellow/reports/report_bills.py,sha256=cxhrheJggBcP0BHmbNKCPG25KxgBSFr5NOZ_XCIek1M,3344
|
|
100
|
+
chellow/reports/report_csv_llfcs.py,sha256=mMB06b6Jems5kcQU4H4Le_fyKgVr8THP8BCx3pkvg5E,1903
|
|
101
|
+
chellow/reports/report_csv_site_hh_data.py,sha256=ik0OkGVo1bfTXLdcT3gPUHnxSkSdorzZheP3qgnOR5c,4331
|
|
102
|
+
chellow/reports/report_csv_site_snags.py,sha256=AuAy6vjL0g7vwPPAZhBqxOyITL9_jnyFj012MnUcxxk,2627
|
|
103
|
+
chellow/reports/report_ecoes_comparison.py,sha256=wEwJrFMOz74CidONkTmgWD1Ghhgo9DT0V7Vddkspkqg,21403
|
|
104
|
+
chellow/reports/report_g_monthly_duration.py,sha256=VQq5xTLvdu9Z_vqrgWNP2S4xm2uCSSZA9HVNiQv9Dus,18264
|
|
105
|
+
chellow/reports/report_g_supplies_snapshot.py,sha256=f6yuds1_X3j3domC1lCyA788RdxCgFZSee-4L7BhwU8,4677
|
|
106
|
+
chellow/reports/report_g_supply_virtual_bill.py,sha256=EaYrB8PHJIXrUuhiZ7dwUlbNBkuyJebQHrdc308_z1o,3653
|
|
107
|
+
chellow/reports/report_g_virtual_bills.py,sha256=20vHa5LGQwOAlJlaGJaGszZrrbT0PMOZJf6hSxU2hIQ,4528
|
|
108
|
+
chellow/reports/report_g_virtual_bills_hh.py,sha256=gaiLEmKTpq6JsfZ1p0SdCDuPvzvigXp6z88gHRCA63w,3416
|
|
109
|
+
chellow/reports/report_sscs.py,sha256=fQWyVG-gdg37DyNHgpNARpSxIwTl7mCn20fDLwx9oHg,3214
|
|
110
|
+
chellow/reports/report_supply_contacts.py,sha256=pvwlInaPYV_pa9MMK6vh854plHFwv3m5zo5xulR1g5I,3599
|
|
111
111
|
chellow/static/css/chellow.css,sha256=mcLjqKMo0qtdQWY7AnXEL8Bvx2B-Pu8kcGO58bUXOpY,5372
|
|
112
112
|
chellow/static/images/favicon.svg,sha256=ySFHoVJYmr-xU93QrE-jLYn-ZNythh2vsemnR8dkvg0,2339
|
|
113
113
|
chellow/static/images/favicon_test.svg,sha256=HnLS_BjNt8M0Ikko5Z-f_E2aed7y6RRU6j3K6XADciE,2346
|
|
@@ -152,11 +152,10 @@ chellow/templates/scenario_add.html,sha256=xFTb9CaA-qV2iwnVqcS44vD8JlYatBQet8Rat
|
|
|
152
152
|
chellow/templates/scenario_docs.html,sha256=0YP_h8GYkqCFLBoCj2w4PE4Js15DT_WoxYlK9nRSMlA,6949
|
|
153
153
|
chellow/templates/scenario_edit.html,sha256=x2Eicq_eFs7ax2EtL4GrD73qKF-LhN41OQdPFbDivrc,1060
|
|
154
154
|
chellow/templates/scenarios.html,sha256=FIDOSWs9VO_3bJkQoNHh-DdRzVfUyJGK9WbdEHRxxdM,841
|
|
155
|
-
chellow/templates/site.html,sha256=
|
|
155
|
+
chellow/templates/site.html,sha256=rvK4VnSsiSswyYTPJrKn4iKpT_-t1nfH-4yCPF7OKQc,10038
|
|
156
156
|
chellow/templates/site_add.html,sha256=NxYmOIZQH6X8EBOuJUbhUJ8IYB3t0BukjR1yVRhnJhM,422
|
|
157
157
|
chellow/templates/site_edit.html,sha256=TJ_ZDDkodj-uDB3GPP9Cel3FGZY2oP42KCzHOydPWVc,2909
|
|
158
158
|
chellow/templates/site_gen_graph.html,sha256=LXkD4n_aC_sFm9JJTCmBRrczpyTn2UUEgBToFiM5RPo,3468
|
|
159
|
-
chellow/templates/site_hh_data.html,sha256=xmSJ5h_DvI1-bnV7FdBodDUvDCU0-q-UHYj2MuyLOTg,1907
|
|
160
159
|
chellow/templates/site_months.html,sha256=ToqH42dym82Q4ihFIT3St-EwPlhDAfwskNMh4cZ2EsM,6572
|
|
161
160
|
chellow/templates/site_used_graph.html,sha256=NXuQYcPXnk2mHb2O4mxVPZ1R-X-MWPwneUV-J6z285w,3094
|
|
162
161
|
chellow/templates/sites.html,sha256=4ouJ5xYqYHjXCv3cDucTjgbOd_whReFPPHopLBdW6Go,621
|
|
@@ -202,7 +201,7 @@ chellow/templates/e/dc_contract_edit.html,sha256=IObmbHQmeZ_LSpnYgabmhoSNUR3aPmm
|
|
|
202
201
|
chellow/templates/e/dc_contract_hh_import.html,sha256=JncR3L6cOK4jghsGyr-itEqlIemXBXt3kL09wpqnQSE,856
|
|
203
202
|
chellow/templates/e/dc_contract_hh_imports.html,sha256=eXFDGyzSgag4JRism81_p5yTzQOjCIXaVkQ8tl3dDcM,8172
|
|
204
203
|
chellow/templates/e/dc_contract_properties.html,sha256=2EmA91gYWZcTOHQ3PxXQrpTOb8dm0OGjwRWsW6qNI9s,455
|
|
205
|
-
chellow/templates/e/dc_contract_properties_edit.html,sha256=
|
|
204
|
+
chellow/templates/e/dc_contract_properties_edit.html,sha256=t7X7Exht6ZMqmiEnuhv9kAFNfjchyJdD_2pZEORqUD8,1925
|
|
206
205
|
chellow/templates/e/dc_contracts.html,sha256=FPZUM7fkw-R6sRELHZCQTUkKSRqad8HOLHnyyYhQEEw,1819
|
|
207
206
|
chellow/templates/e/dc_contracts_add.html,sha256=2lrGrNqAoKp16OiMoNDNlJxBMW3QdSPfgEFheSg826s,710
|
|
208
207
|
chellow/templates/e/dc_rate_script.html,sha256=gfKUHV2IMsTQT-cYfjl4aiEBqGEWSj3uW22UZpoyGq4,1219
|
|
@@ -291,7 +290,7 @@ chellow/templates/e/scenario_edit.html,sha256=Uf64v_qsBP0BxaFEIz214CC_dZXlvro4zv
|
|
|
291
290
|
chellow/templates/e/scenarios.html,sha256=zlNhZvQEcuwLgHObVHS-4THur5Lz9Jf1G6xD98-jamI,847
|
|
292
291
|
chellow/templates/e/site_add_e_supply.html,sha256=_gi1ejI4TMTMX9vCW7z2kToR2XKR6qoVh67qp_VrDsM,2731
|
|
293
292
|
chellow/templates/e/site_add_e_supply_form.html,sha256=q5LfSmp_eamph4FLKslMrxKGOtGCkSFRe9I5AVn-hgM,5553
|
|
294
|
-
chellow/templates/e/site_hh_data.html,sha256=
|
|
293
|
+
chellow/templates/e/site_hh_data.html,sha256=qCmqQcPKWhNiZ7eSVs8NhMIiBXJHVHF5OAzjEdppyjM,1982
|
|
295
294
|
chellow/templates/e/site_site_snags.html,sha256=vWpsFyxZj7GOrMXQz2rKq9zOQdVsqeUVtdBzehp9J5w,847
|
|
296
295
|
chellow/templates/e/site_snag.html,sha256=eZt1H-t-hsoKZBteU9ILpKqKLD0Pf0Uybp8pPQYuTAc,924
|
|
297
296
|
chellow/templates/e/site_snag_edit.html,sha256=O-m95S-ig9sXmFFkQmjfNnF9zJkgSIuPizuF7ieNi7s,1436
|
|
@@ -377,6 +376,6 @@ chellow/templates/g/supply_note_edit.html,sha256=b8mB6_ucBwoljp03iy6AgVaZUhGw3-1
|
|
|
377
376
|
chellow/templates/g/supply_notes.html,sha256=6epNmZ3NKdXZz27fvmRUGeffg_oc1kmwuBeyRzQe3Rg,854
|
|
378
377
|
chellow/templates/g/unit.html,sha256=KouNVU0-i84afANkLQ_heJ0uDfJ9H5A05PuLqb8iCN8,438
|
|
379
378
|
chellow/templates/g/units.html,sha256=p5Nd-lAIboKPEOO6N451hx1bcKxMg4BDODnZ-43MmJc,441
|
|
380
|
-
chellow-
|
|
381
|
-
chellow-
|
|
382
|
-
chellow-
|
|
379
|
+
chellow-1734005435.0.0.dist-info/METADATA,sha256=rikcxSjkW6hkiNWM_zQJBT9tqQUz1C0JhNytTqShEdk,12204
|
|
380
|
+
chellow-1734005435.0.0.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
|
|
381
|
+
chellow-1734005435.0.0.dist-info/RECORD,,
|