Skip to content

Commit 275445e

Browse files
authored
Merge pull request #608 from xchem/m2ms-1460-tag-improvements-be
Set ConformerSites and CrystalformSites tags to hidden by default (issue 1460)
2 parents e05f056 + 87597eb commit 275445e

File tree

2 files changed

+45
-17
lines changed

2 files changed

+45
-17
lines changed

viewer/fixtures/tagcategories.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
"pk": 3,
2323
"fields": {
2424
"category": "CrystalformSites",
25-
"colour": "0099ff",
25+
"colour": "ff9900",
2626
"description": null
2727
}
2828
},

viewer/target_loader.py

+44-16
Original file line numberDiff line numberDiff line change
@@ -1841,17 +1841,21 @@ def process_bundle(self):
18411841
}
18421842

18431843
# tag site observations
1844+
cat_canon = TagCategory.objects.get(category="CanonSites")
18441845
for val in canon_site_objects.values(): # pylint: disable=no-member
18451846
prefix = val.instance.canon_site_num
18461847
tag = canon_name_tag_map.get(val.versioned_key, "UNDEFINED")
18471848
so_list = SiteObservation.objects.filter(
18481849
canon_site_conf__canon_site=val.instance
18491850
)
1850-
self._tag_observations(tag, prefix, "CanonSites", so_list)
1851+
self._tag_observations(
1852+
tag, prefix, category=cat_canon, site_observations=so_list
1853+
)
18511854

18521855
logger.debug("canon_site objects tagged")
18531856

18541857
numerators = {}
1858+
cat_conf = TagCategory.objects.get(category="ConformerSites")
18551859
for val in canon_site_conf_objects.values(): # pylint: disable=no-member
18561860
if val.instance.canon_site.canon_site_num not in numerators.keys():
18571861
numerators[val.instance.canon_site.canon_site_num] = alphanumerator()
@@ -1866,10 +1870,13 @@ def process_bundle(self):
18661870
# site_observations_versioned[k]
18671871
# for k in val.index_data["members"]
18681872
]
1869-
self._tag_observations(tag, prefix, "ConformerSites", so_list)
1873+
self._tag_observations(
1874+
tag, prefix, category=cat_conf, site_observations=so_list, hidden=True
1875+
)
18701876

18711877
logger.debug("conf_site objects tagged")
18721878

1879+
cat_quat = TagCategory.objects.get(category="Quatassemblies")
18731880
for val in quat_assembly_objects.values(): # pylint: disable=no-member
18741881
prefix = f"A{val.instance.assembly_num}"
18751882
tag = val.instance.name
@@ -1878,20 +1885,26 @@ def process_bundle(self):
18781885
quat_assembly=val.instance
18791886
).values("xtalform")
18801887
)
1881-
self._tag_observations(tag, prefix, "Quatassemblies", so_list)
1888+
self._tag_observations(
1889+
tag, prefix, category=cat_quat, site_observations=so_list
1890+
)
18821891

18831892
logger.debug("quat_assembly objects tagged")
18841893

1894+
cat_xtal = TagCategory.objects.get(category="Crystalforms")
18851895
for val in xtalform_objects.values(): # pylint: disable=no-member
18861896
prefix = f"F{val.instance.xtalform_num}"
18871897
tag = val.instance.name
18881898
so_list = SiteObservation.objects.filter(
18891899
xtalform_site__xtalform=val.instance
18901900
)
1891-
self._tag_observations(tag, prefix, "Crystalforms", so_list)
1901+
self._tag_observations(
1902+
tag, prefix, category=cat_xtal, site_observations=so_list
1903+
)
18921904

18931905
logger.debug("xtalform objects tagged")
18941906

1907+
cat_xtalsite = TagCategory.objects.get(category="CrystalformSites")
18951908
for val in xtalform_sites_objects.values(): # pylint: disable=no-member
18961909
prefix = (
18971910
f"F{val.instance.xtalform.xtalform_num}"
@@ -1901,7 +1914,13 @@ def process_bundle(self):
19011914
so_list = [
19021915
site_observation_objects[k].instance for k in val.index_data["residues"]
19031916
]
1904-
self._tag_observations(tag, prefix, "CrystalformSites", so_list)
1917+
self._tag_observations(
1918+
tag,
1919+
prefix,
1920+
category=cat_xtalsite,
1921+
site_observations=so_list,
1922+
hidden=True,
1923+
)
19051924

19061925
logger.debug("xtalform_sites objects tagged")
19071926

@@ -1912,7 +1931,7 @@ def process_bundle(self):
19121931
self._tag_observations(
19131932
"New",
19141933
"",
1915-
"Other",
1934+
TagCategory.objects.get(category="Other"),
19161935
[
19171936
k.instance
19181937
for k in site_observation_objects.values() # pylint: disable=no-member
@@ -2020,7 +2039,14 @@ def _generate_poses(self):
20202039
obvs.pose = pose
20212040
obvs.save()
20222041

2023-
def _tag_observations(self, tag, prefix, category, so_list):
2042+
def _tag_observations(
2043+
self,
2044+
tag: str,
2045+
prefix: str,
2046+
category: TagCategory,
2047+
site_observations: list,
2048+
hidden: bool = False,
2049+
) -> None:
20242050
try:
20252051
# memo to self: description is set to tag, but there's
20262052
# no fk to tag, instead, tag has a fk to
@@ -2056,18 +2082,20 @@ def _tag_observations(self, tag, prefix, category, so_list):
20562082
# changing anything.
20572083
so_tag.mol_group = so_group
20582084
except SiteObservationTag.DoesNotExist:
2059-
so_tag = SiteObservationTag()
2060-
so_tag.tag = tag
2061-
so_tag.tag_prefix = prefix
2062-
so_tag.upload_name = name
2063-
so_tag.category = TagCategory.objects.get(category=category)
2064-
so_tag.target = self.target
2065-
so_tag.mol_group = so_group
2085+
so_tag = SiteObservationTag(
2086+
tag=tag,
2087+
tag_prefix=prefix,
2088+
upload_name=name,
2089+
category=category,
2090+
target=self.target,
2091+
mol_group=so_group,
2092+
hidden=hidden,
2093+
)
20662094

20672095
so_tag.save()
20682096

2069-
so_group.site_observation.add(*so_list)
2070-
so_tag.site_observations.add(*so_list)
2097+
so_group.site_observation.add(*site_observations)
2098+
so_tag.site_observations.add(*site_observations)
20712099

20722100
def _is_already_uploaded(self, target_created, project_created):
20732101
if target_created or project_created:

0 commit comments

Comments
 (0)