forked from enviPath/enviPy
Compare commits
3 Commits
297c87f4d9
...
c367d24d9e
| Author | SHA1 | Date | |
|---|---|---|---|
| c367d24d9e | |||
| 597213286a | |||
| 6680668c89 |
@ -37,7 +37,7 @@ RUN mkdir -p -m 0700 /root/.ssh \
|
|||||||
# We'll need access to private repos, let docker make use of host ssh agent and use it like:
|
# We'll need access to private repos, let docker make use of host ssh agent and use it like:
|
||||||
# docker build --ssh default -t envipath/envipy-bayer:1.0 .
|
# docker build --ssh default -t envipath/envipy-bayer:1.0 .
|
||||||
RUN --mount=type=ssh \
|
RUN --mount=type=ssh \
|
||||||
uv sync --locked --extra pepper-plugin
|
uv sync --locked --extra ms-login --extra pepper-plugin
|
||||||
|
|
||||||
# Now copy source and do a final sync to install the project itself
|
# Now copy source and do a final sync to install the project itself
|
||||||
# Ensure .dockerignore is reasonable
|
# Ensure .dockerignore is reasonable
|
||||||
|
|||||||
@ -261,6 +261,7 @@ class Classifier(Plugin):
|
|||||||
for k, v in data.items():
|
for k, v in data.items():
|
||||||
if v != "":
|
if v != "":
|
||||||
cpy[k] = v
|
cpy[k] = v
|
||||||
|
|
||||||
return cls.Config(**cpy)
|
return cls.Config(**cpy)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|||||||
@ -2359,8 +2359,8 @@ class Node(EnviPathModel, AliasMixin, ScenarioMixin, AdditionalInformationMixin)
|
|||||||
|
|
||||||
def get_timeseries_data(self):
|
def get_timeseries_data(self):
|
||||||
for ai in self.additional_information.all():
|
for ai in self.additional_information.all():
|
||||||
if ai.type == "OECD301FTimeSeries":
|
if ai.__class__.__name__ == "OECD301FTimeSeries":
|
||||||
return ai.get().model_dump(mode="json")
|
return ai.model_dump(mode="json")
|
||||||
|
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -65,24 +65,6 @@ def run_both_engines(SMILES, SMIRKS):
|
|||||||
|
|
||||||
|
|
||||||
def migration(request):
|
def migration(request):
|
||||||
accepted_diffs = [
|
|
||||||
"bt0055-3469.1",
|
|
||||||
"bt0056-2685",
|
|
||||||
"bt0193-4263",
|
|
||||||
"bt0231-1871.1",
|
|
||||||
"bt0242-3803",
|
|
||||||
"bt0254-4224.1",
|
|
||||||
"bt0254-4224.2",
|
|
||||||
"bt0291-1129",
|
|
||||||
"bt0337-3543",
|
|
||||||
"bt0391-4285",
|
|
||||||
"bt0402-3576",
|
|
||||||
"bt0404-3928",
|
|
||||||
"bt0416-4269",
|
|
||||||
"bt0432-4254",
|
|
||||||
"bt0337-4117",
|
|
||||||
]
|
|
||||||
|
|
||||||
if request.method == "GET":
|
if request.method == "GET":
|
||||||
context = get_base_context(request)
|
context = get_base_context(request)
|
||||||
|
|
||||||
@ -127,11 +109,11 @@ def migration(request):
|
|||||||
),
|
),
|
||||||
"id": str(r.uuid),
|
"id": str(r.uuid),
|
||||||
"url": r.url,
|
"url": r.url,
|
||||||
"status": res or r.name in accepted_diffs,
|
"status": res,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
if res or r.name in accepted_diffs:
|
if res:
|
||||||
success += 1
|
success += 1
|
||||||
else:
|
else:
|
||||||
error += 1
|
error += 1
|
||||||
@ -153,16 +135,7 @@ def migration(request):
|
|||||||
|
|
||||||
for r in migration_status["results"]:
|
for r in migration_status["results"]:
|
||||||
r["detail_url"] = r["detail_url"].replace("http://localhost:8000", s.SERVER_URL)
|
r["detail_url"] = r["detail_url"].replace("http://localhost:8000", s.SERVER_URL)
|
||||||
if r["name"] in accepted_diffs:
|
|
||||||
r["status"] = True
|
|
||||||
|
|
||||||
migration_status["results"] = sorted(
|
|
||||||
migration_status["results"], key=lambda x: (x["status"], x["name"])
|
|
||||||
)
|
|
||||||
|
|
||||||
num_success = sum([int(x["status"]) for x in migration_status["results"]])
|
|
||||||
migration_status["success"] = num_success
|
|
||||||
migration_status["error"] = migration_status["total"] - num_success
|
|
||||||
context.update(**migration_status)
|
context.update(**migration_status)
|
||||||
|
|
||||||
return render(request, "migration.html", context)
|
return render(request, "migration.html", context)
|
||||||
|
|||||||
@ -22,7 +22,6 @@ function predictFromNode(url) {
|
|||||||
// data = {{ pathway.d3_json | safe }};
|
// data = {{ pathway.d3_json | safe }};
|
||||||
// elem = 'vizdiv'
|
// elem = 'vizdiv'
|
||||||
function draw(pathway, elem) {
|
function draw(pathway, elem) {
|
||||||
|
|
||||||
const initialzoom = 2.5
|
const initialzoom = 2.5
|
||||||
const nodeRadius = 20;
|
const nodeRadius = 20;
|
||||||
const linkDistance = 100;
|
const linkDistance = 100;
|
||||||
@ -573,13 +572,12 @@ function draw(pathway, elem) {
|
|||||||
.scaleExtent([0.5, 5])
|
.scaleExtent([0.5, 5])
|
||||||
.on("zoom", (event) => {
|
.on("zoom", (event) => {
|
||||||
zoomable.attr("transform", event.transform);
|
zoomable.attr("transform", event.transform);
|
||||||
});
|
})
|
||||||
|
|
||||||
|
|
||||||
// Apply zoom to the SVG element - this enables wheel zoom
|
// Apply zoom to the SVG element - this enables wheel zoom
|
||||||
svg.call(zoom);
|
svg.call(zoom);
|
||||||
|
|
||||||
svg.call(zoom.scaleBy, initialzoom);
|
svg.call(zoom.scaleBy, initialzoom);
|
||||||
|
|
||||||
// Also apply zoom to container to catch events that might not reach SVG
|
// Also apply zoom to container to catch events that might not reach SVG
|
||||||
// This ensures drag-to-pan works even when clicking on empty space
|
// This ensures drag-to-pan works even when clicking on empty space
|
||||||
container.call(zoom);
|
container.call(zoom);
|
||||||
|
|||||||
@ -158,6 +158,7 @@
|
|||||||
document.getElementById("predict-submit-button").innerText = "Predict";
|
document.getElementById("predict-submit-button").innerText = "Predict";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const radioButtons = document.querySelectorAll('input[name="predict"]');
|
const radioButtons = document.querySelectorAll('input[name="predict"]');
|
||||||
radioButtons.forEach(radio => {
|
radioButtons.forEach(radio => {
|
||||||
radio.addEventListener('change', radioChange);
|
radio.addEventListener('change', radioChange);
|
||||||
|
|||||||
Reference in New Issue
Block a user