Skip to content

Commit

Permalink
feat: Add retrieve object_tags REST API (#577)
Browse files Browse the repository at this point in the history
  • Loading branch information
yusuf-musleh authored and rpenido committed Aug 23, 2023
1 parent 2819efc commit a19b2ea
Show file tree
Hide file tree
Showing 7 changed files with 18 additions and 15 deletions.
8 changes: 2 additions & 6 deletions openedx/features/content_tagging/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,20 +101,16 @@ def get_taxonomies_for_org(


def get_content_tags(
object_id: str, taxonomy: Taxonomy = None, valid_only=True
object_id: str, taxonomy_id: str = None
) -> Iterator[ContentObjectTag]:
"""
Generates a list of content tags for a given object.
Pass taxonomy to limit the returned object_tags to a specific taxonomy.
Pass valid_only=False when displaying tags to content authors, so they can see invalid tags too.
Invalid tags will (probably) be hidden from learners.
"""
for object_tag in oel_tagging.get_object_tags(
object_id=object_id,
taxonomy=taxonomy,
valid_only=valid_only,
taxonomy_id=taxonomy_id,
):
yield ContentObjectTag.cast(object_tag)

Expand Down
3 changes: 3 additions & 0 deletions openedx/features/content_tagging/rest_api/v1/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,13 @@

from django.urls.conf import path, include

from openedx_tagging.core.tagging.rest_api.v1 import views as oel_tagging_views

from . import views

router = DefaultRouter()
router.register("taxonomies", views.TaxonomyOrgView, basename="taxonomy")
router.register("object_tags", oel_tagging_views.ObjectTagView, basename="object_tag")

urlpatterns = [
path('', include(router.urls))
Expand Down
12 changes: 4 additions & 8 deletions openedx/features/content_tagging/tests/test_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -189,14 +189,12 @@ def test_get_content_tags_valid_for_org(
object_tag_attr,
):
taxonomy_id = getattr(self, taxonomy_attr).id
taxonomy = api.get_taxonomy(taxonomy_id)
object_tag = getattr(self, object_tag_attr)
with self.assertNumQueries(1):
with self.assertNumQueries(2):
valid_tags = list(
api.get_content_tags(
taxonomy=taxonomy,
taxonomy_id=taxonomy_id,
object_id=object_tag.object_id,
valid_only=True,
)
)
assert len(valid_tags) == 1
Expand All @@ -219,14 +217,12 @@ def test_get_content_tags_include_invalid(
object_tag_attr,
):
taxonomy_id = getattr(self, taxonomy_attr).id
taxonomy = api.get_taxonomy(taxonomy_id)
object_tag = getattr(self, object_tag_attr)
with self.assertNumQueries(1):
with self.assertNumQueries(2):
valid_tags = list(
api.get_content_tags(
taxonomy=taxonomy,
taxonomy_id=taxonomy_id,
object_id=object_tag.object_id,
valid_only=False,
)
)
assert len(valid_tags) == 1
Expand Down
2 changes: 2 additions & 0 deletions requirements/edx/base.txt
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ attrs==23.1.0
# lti-consumer-xblock
# openedx-blockstore
# openedx-events
# openedx-learning
# referencing
babel==2.11.0
# via
Expand Down Expand Up @@ -98,6 +99,7 @@ celery==5.3.1
# edx-celeryutils
# edx-enterprise
# event-tracking
# openedx-learning
certifi==2023.7.22
# via
# -r requirements/edx/paver.txt
Expand Down
4 changes: 3 additions & 1 deletion requirements/edx/development.txt
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ attrs==23.1.0
# lti-consumer-xblock
# openedx-blockstore
# openedx-events
# openedx-learning
# referencing
babel==2.11.0
# via
Expand Down Expand Up @@ -175,6 +176,7 @@ celery==5.3.1
# edx-celeryutils
# edx-enterprise
# event-tracking
# openedx-learning
certifi==2023.7.22
# via
# -r requirements/edx/doc.txt
Expand Down Expand Up @@ -1299,7 +1301,7 @@ openedx-filters==1.5.0
# -r requirements/edx/doc.txt
# -r requirements/edx/testing.txt
# lti-consumer-xblock
openedx-learning==0.1.2
openedx-learning==0.1.5
# via
# -c requirements/edx/../constraints.txt
# -r requirements/edx/doc.txt
Expand Down
2 changes: 2 additions & 0 deletions requirements/edx/doc.txt
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ attrs==23.1.0
# lti-consumer-xblock
# openedx-blockstore
# openedx-events
# openedx-learning
# referencing
babel==2.11.0
# via
Expand Down Expand Up @@ -125,6 +126,7 @@ celery==5.3.1
# edx-celeryutils
# edx-enterprise
# event-tracking
# openedx-learning
certifi==2023.7.22
# via
# -r requirements/edx/base.txt
Expand Down
2 changes: 2 additions & 0 deletions requirements/edx/testing.txt
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ attrs==23.1.0
# lti-consumer-xblock
# openedx-blockstore
# openedx-events
# openedx-learning
# referencing
babel==2.11.0
# via
Expand Down Expand Up @@ -131,6 +132,7 @@ celery==5.3.1
# edx-celeryutils
# edx-enterprise
# event-tracking
# openedx-learning
certifi==2023.7.22
# via
# -r requirements/edx/base.txt
Expand Down

0 comments on commit a19b2ea

Please sign in to comment.