Skip to content

Commit c00b310

Browse files
authored
Merge pull request #206 from WikiMovimentoBrasil/2025-02-small-fixes-3
fix: combining some fixes
2 parents cacf074 + 1c94e43 commit c00b310

File tree

4 files changed

+61
-5
lines changed

4 files changed

+61
-5
lines changed

src/core/models.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -960,11 +960,15 @@ def _remove_qualifier_or_reference(self, entity: dict):
960960
if self.is_in_qualifiers(qual):
961961
statement["qualifiers"].pop(i)
962962
found_qualifier = True
963+
break
963964
for i, ref in enumerate(statement.get("references", [])):
964965
for j, part in enumerate(ref["parts"]):
965966
if self.is_part_in_references(part):
966967
statement["references"][i]["parts"].pop(j)
967968
found_ref_part = True
969+
break
970+
if found_ref_part:
971+
break
968972
if not found_qualifier and len(self.qualifiers_for_api()) > 0:
969973
raise NoQualifiers()
970974
if not found_ref_part and len(self.references_for_api()) > 0:

src/core/tests/test_entity_patching.py

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,16 @@ class RemoveQualRefTests(TestCase):
103103
},
104104
},
105105
},
106+
{
107+
"property": {
108+
"id": "P84267",
109+
"data_type": "quantity",
110+
},
111+
"value": {
112+
"type": "value",
113+
"content": {"amount": "+42", "unit": "1"},
114+
},
115+
},
106116
],
107117
},
108118
],
@@ -194,11 +204,17 @@ def test_remove_qualifier(self):
194204
self.assertEqual(
195205
entity["statements"]["P65"][0]["qualifiers"][0]["property"]["id"], "P65"
196206
)
207+
with self.assertRaises(NoQualifiers):
208+
# try to remove it again
209+
remove_p65_qual.update_entity_json(entity)
197210
# -----
198211
remove_p31_qual = batch.commands()[1]
199212
self.assertQualCount(entity, "P31", 1)
200213
remove_p31_qual.update_entity_json(entity)
201214
self.assertQualCount(entity, "P31", 0)
215+
with self.assertRaises(NoQualifiers):
216+
# try to remove it again
217+
remove_p31_qual.update_entity_json(entity)
202218
# -----
203219
remove_nothing = batch.commands()[2]
204220
self.assertQualCount(entity, "P65", 1)
@@ -210,6 +226,8 @@ def test_remove_reference(self):
210226
text = """
211227
REMOVE_REF|Q12345678|P65|42|S31|somevalue
212228
REMOVE_REF|Q12345678|P31|somevalue|S93|"https://www.mediawiki.org/"
229+
REMOVE_REF|Q12345678|P31|somevalue|S84267|42
230+
REMOVE_REF|Q12345678|P31|somevalue|S84267|42
213231
"""
214232
batch = self.parse(text)
215233
entity = copy.deepcopy(self.INITIAL)
@@ -219,14 +237,46 @@ def test_remove_reference(self):
219237
with self.assertRaises(NoReferenceParts):
220238
remove_nothing.update_entity_json(entity)
221239
self.assertRefCount(entity, "P65", 0)
240+
# ---
241+
prop = entity["statements"]["P31"][0]["references"][0]["parts"][0]["property"]
242+
self.assertEqual(prop["id"], "P93")
243+
prop = entity["statements"]["P31"][0]["references"][1]["parts"][0]["property"]
244+
self.assertEqual(prop["id"], "P93")
222245
# -----
223246
remove_part_mediawiki = batch.commands()[1]
224247
self.assertRefCount(entity, "P31", 2)
225248
self.assertRefPartsCount(entity, "P31", 2, ipart=0)
226-
self.assertRefPartsCount(entity, "P31", 2, ipart=1)
249+
self.assertRefPartsCount(entity, "P31", 3, ipart=1)
227250
remove_part_mediawiki.update_entity_json(entity)
228251
self.assertRefCount(entity, "P31", 2)
229252
self.assertRefPartsCount(entity, "P31", 2, ipart=0)
253+
self.assertRefPartsCount(entity, "P31", 2, ipart=1)
254+
with self.assertRaises(NoReferenceParts):
255+
# try to remove it again
256+
remove_part_mediawiki.update_entity_json(entity)
257+
# -----
258+
remove_42 = batch.commands()[2]
259+
self.assertRefCount(entity, "P31", 2)
260+
self.assertRefPartsCount(entity, "P31", 2, ipart=0)
261+
self.assertRefPartsCount(entity, "P31", 2, ipart=1)
262+
remove_42.update_entity_json(entity)
263+
self.assertRefCount(entity, "P31", 2)
264+
self.assertRefPartsCount(entity, "P31", 1, ipart=0)
265+
self.assertRefPartsCount(entity, "P31", 2, ipart=1)
266+
# -----
267+
remove_42_again = batch.commands()[3]
268+
self.assertRefCount(entity, "P31", 2)
269+
self.assertRefPartsCount(entity, "P31", 1, ipart=0)
270+
self.assertRefPartsCount(entity, "P31", 2, ipart=1)
271+
remove_42_again.update_entity_json(entity)
272+
self.assertRefCount(entity, "P31", 2)
273+
self.assertRefPartsCount(entity, "P31", 1, ipart=0)
230274
self.assertRefPartsCount(entity, "P31", 1, ipart=1)
275+
with self.assertRaises(NoReferenceParts):
276+
# try to remove it again
277+
remove_42_again.update_entity_json(entity)
278+
# ----
279+
prop = entity["statements"]["P31"][0]["references"][0]["parts"][0]["property"]
280+
self.assertEqual(prop["id"], "P93")
231281
prop = entity["statements"]["P31"][0]["references"][1]["parts"][0]["property"]
232282
self.assertEqual(prop["id"], "P74")

src/web/static/pico.colors.min.css

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/web/templates/layout.html

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,7 @@
1010
<meta name="color-scheme" content="light dark">
1111
<link rel="icon" type="image/svg+xml" href="{% static 'icon.svg' %}"/>
1212
<link rel="stylesheet" href="{% static 'pico.jade.min.css' %}">
13-
<link
14-
rel="stylesheet"
15-
href="https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.colors.min.css">
13+
<link rel="stylesheet" href="{% static 'pico.colors.min.css' %}">
1614
<script src="{% static 'htmx.v2.0.0.min.js' %}"></script>
1715
<title>{% block pagetitle %}{% endblock%}</title>
1816
<style>
@@ -72,7 +70,7 @@
7270
<li><a href="{% url 'new_batch' %}">{% translate "New batch" %}</a></li>
7371
<li><a href="{% url 'last_batches' %}">{% translate "Last batches" %}</a></li>
7472
<li><a href="https://github.com/WikiMovimentoBrasil/quickstatements3">Git</a></li>
75-
<li><a href="https://meta.wikimedia.org/wiki/QuickStatements_3.0">Docs</a></li>
73+
<li><a href="https://meta.wikimedia.org/wiki/QuickStatements_3.0/Documentation">Docs</a></li>
7674
</ul>
7775
<ul>
7876
{% if user.is_anonymous %}

0 commit comments

Comments
 (0)