Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,19 @@ reactions {
inputs {
key: "5"
value {
components {
identifiers {
type: SMILES
details: "6"
value: "5"
}
amount {
unmeasured {
type: SATURATED
details: "saturated"
}
}
}
addition_order: 93
addition_time {
value: 96.0
Expand Down Expand Up @@ -392,6 +405,14 @@ reactions {
target_ph: 89.0
is_automated: true
}
workups {
amount {
unmeasured {
type: CATALYTIC
details: "catalytic"
}
}
}
outcomes {
reaction_time {
value: 113.0
Expand Down
34 changes: 30 additions & 4 deletions ord_interface/editor/html/reaction.html
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,8 @@
<table class="component_role_limiting">
<tr><td>reaction role</td><td><div class="component_reaction_role selector" data-proto="ReactionRole_ReactionRoleType"></div></td></tr>
<tr class="limiting_reactant"><td>limiting reactant</td><td><div class="component_limiting optional_bool"></div></td></tr>
<tr class="amount">
<tbody class="amount">
<tr>
<td>amount</td>
<td>
<div class="amount_value edittext shorttext floattext"></div>
Expand All @@ -230,6 +231,12 @@
<td class="amount_includes_solutes_label">includes solutes</td>
<td><div class="amount_includes_solutes optional_bool"></div></td>
</tr>
<tr class="unmeasured_amount">
<td>unmeasured?</td>
<td><div class="unmeasured_amount_type selector" data-proto="UnmeasuredAmount_UnmeasuredAmountType"></div></td>
<td>details</td><td><div class="unmeasured_amount_details edittext"></div></td>
</tr>
</tbody>
</table>
<fieldset class="s5">
<legend>
Expand Down Expand Up @@ -340,14 +347,21 @@
<tr><td>reaction ID</td><td><div class="crude_reaction edittext"></div></td></tr>
<tr><td>includes workup</td><td><div class="crude_includes_workup optional_bool"></div></td></tr>
<tr><td>has derived amount</td><td><div class="crude_has_derived optional_bool"></div></td></tr>
<tr class="amount">
<tbody class="amount">
<tr>
<td>amount</td>
<td>
<div class="amount_value edittext shorttext floattext"></div>
± <div class="amount_precision edittext shorttext floattext"></div>
<select class="amount_units mass volume"></select>
</td>
</tr>
<tr class="unmeasured_amount">
<td>unmeasured?</td>
<td><div class="unmeasured_amount_type selector" data-proto="UnmeasuredAmount_UnmeasuredAmountType"></div></td>
<td>details</td><td><div class="unmeasured_amount_details edittext"></div></td>
</tr>
</tbody>
</table>
</fieldset>
</div>
Expand Down Expand Up @@ -723,14 +737,21 @@
</td></tr>
<tr><td>automated</td><td><div class="workup_automated optional_bool"></div></td></tr>
<tr><td>details</td><td><div class="workup_details edittext paratext"></div></td></tr>
<tr class="workup_amount">
<tbody class="workup_amount amount">
<tr>
<td>aliquot amount</td>
<td class="amount">
<td>
<div class="amount_value edittext shorttext floattext"></div>
± <div class="amount_precision edittext shorttext floattext"></div>
<select class="amount_units mass volume"></select>
</td>
</tr>
<tr class="unmeasured_amount">
<td>unmeasured?</td>
<td><div class="unmeasured_amount_type selector" data-proto="UnmeasuredAmount_UnmeasuredAmountType"></div></td>
<td>details</td><td><div class="unmeasured_amount_details edittext"></div></td>
</tr>
</tbody>
</table>
<div class="workup_input">
<!-- Shares ".input_template" with "#inputs" above. -->
Expand Down Expand Up @@ -886,6 +907,11 @@
<select class="amount_units mass" style="display: none;"></select>
</td>
</tr>
<tr class="unmeasured_amount">
<td>unmeasured?</td>
<td><div class="unmeasured_amount_type selector" data-proto="UnmeasuredAmount_UnmeasuredAmountType"></div></td>
<td>details</td><td><div class="unmeasured_amount_details edittext"></div></td>
</tr>
<tr>
<td></td>
<td>
Expand Down
22 changes: 21 additions & 1 deletion ord_interface/editor/js/amounts.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ exports = {
unload,
};

const asserts = goog.require('goog.asserts');
const utils = goog.require('ord.utils');

const Amount = goog.require('proto.ord.Amount');
Expand All @@ -31,6 +32,9 @@ const Moles = goog.require('proto.ord.Moles');
const MolesUnit = goog.require('proto.ord.Moles.MolesUnit');
const Volume = goog.require('proto.ord.Volume');
const VolumeUnit = goog.require('proto.ord.Volume.VolumeUnit');
const UnmeasuredAmount = goog.require('proto.ord.UnmeasuredAmount');
const UnmeasuredAmountType =
goog.require('proto.ord.UnmeasuredAmount.UnmeasuredAmountType');

/**
* Initializes the selector for an Amount section.
Expand Down Expand Up @@ -149,6 +153,10 @@ function load(node, amount) {
: null;
utils.setOptionalBool($('.amount_includes_solutes.optional_bool', node),
solutes);
} else if (amount.hasUnmeasured()) {
const unmeasured = amount.getUnmeasured();
utils.setSelector($('.unmeasured_amount_type', node), unmeasured.getType());
$('.unmeasured_amount_details', node).text(unmeasured.getDetails());
}
}

Expand All @@ -161,10 +169,13 @@ function unload(node) {
const amount = new Amount();
// NOTE(kearnes): Take the closest amount section; there may be others
// nested deeper (e.g. in ProductMeasurement fields under a ReactionProduct).
node = $('.amount', node).first();
if (!$(node).hasClass("amount")) {
node = $('.amount', node).first();
}
const value = parseFloat($('.amount_value', node).text());
const precision = parseFloat($('.amount_precision', node).text());
const units = $('.amount_units', node).val();
const unmeasuredDetails = $('.unmeasured_amount_details', node).text();
if (MassUnit[units]) {
const message = new Mass();
if (!isNaN(value)) {
Expand Down Expand Up @@ -206,6 +217,15 @@ function unload(node) {
if (solutes !== null) {
amount.setVolumeIncludesSolutes(solutes);
}
} else if (unmeasuredDetails) {
const unmeasured = new UnmeasuredAmount();
const unmeasuredType =
utils.getSelectorText($('.unmeasured_amount_type', node)[0]);
unmeasured.setType(UnmeasuredAmountType[unmeasuredType]);
unmeasured.setDetails(asserts.assertString(unmeasuredDetails));
if (!utils.isEmptyMessage(unmeasured)) {
amount.setUnmeasured(unmeasured);
}
}
return amount;
}
1 change: 1 addition & 0 deletions ord_interface/editor/js/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -561,6 +561,7 @@ async function compareDataset(fileName, dataset) {
if (xhr.status === 200) {
resolve();
} else {
console.log(xhr.response);
reject();
}
};
Expand Down
4 changes: 2 additions & 2 deletions ord_interface/editor/py/serve.py
Original file line number Diff line number Diff line change
Expand Up @@ -533,8 +533,8 @@ def compare(name):
local_ascii = text_format.MessageToString(local)
if remote_ascii != local_ascii:
diff = difflib.context_diff(local_ascii.splitlines(), remote_ascii.splitlines(), n=10)
print(f"Datasets differ:\n{pprint.pformat(list(diff))}")
return "differs", 409 # "Conflict"
diff_text = pprint.pformat(list(diff))
return diff_text, 409 # "Conflict"
return "equals"


Expand Down