Skip to content

Commit 5c4397a

Browse files
authored
Merge pull request #143 from eduNEXT/MJG/triggering-field
feat: [FC-0074] add support for optional trigger information
2 parents b9e768b + 3958852 commit 5c4397a

File tree

5 files changed

+47
-9
lines changed

5 files changed

+47
-9
lines changed

CHANGELOG.rst

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,15 @@ Change Log
1414
Unreleased
1515
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1616

17+
[2.2.0] - 2025-01-15
18+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
19+
20+
* Add support for optional Open edX Event trigger in-line annotation.
21+
1722
[2.1.0] - 2024-12-12
1823
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1924

20-
* Add support for optional event warning for in-line annotation.
25+
* Add support for optional Open edX Event warning for in-line annotation.
2126

2227
[2.0.0] - 2024-10-18
2328
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

code_annotations/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
Extensible tools for parsing annotations in codebases.
33
"""
44

5-
__version__ = '2.1.0'
5+
__version__ = '2.2.0'
Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
"""
22
Expose contrib configuration file paths as Python variables, for use in 3rd-party utilities.
33
"""
4+
import importlib.resources
45
import os
56

6-
import importlib_resources
7-
8-
FEATURE_TOGGLE_ANNOTATIONS_CONFIG_PATH = importlib_resources.files(
7+
FEATURE_TOGGLE_ANNOTATIONS_CONFIG_PATH = importlib.resources.files(
98
"code_annotations") / os.path.join("contrib", "config", "feature_toggle_annotations.yaml")
109

11-
SETTING_ANNOTATIONS_CONFIG_PATH = importlib_resources.files(
10+
SETTING_ANNOTATIONS_CONFIG_PATH = importlib.resources.files(
1211
"code_annotations") / os.path.join("contrib", "config", "setting_annotations.yaml")
1312

14-
OPENEDX_EVENTS_ANNOTATIONS_CONFIG_PATH = importlib_resources.files(
13+
OPENEDX_EVENTS_ANNOTATIONS_CONFIG_PATH = importlib.resources.files(
1514
"code_annotations") / os.path.join("contrib", "config", "openedx_events_annotations.yaml")

code_annotations/contrib/config/openedx_events_annotations.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ annotations:
1212
- ".. event_description:":
1313
- ".. event_data:":
1414
- ".. event_key_field:":
15+
- ".. event_trigger_repository:":
1516
- ".. event_warning:":
1617
extensions:
1718
python:

code_annotations/contrib/sphinx/extensions/openedx_events.py

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ def iter_nodes(self):
100100
event_key_field = event.get(".. event_key_field:", "")
101101
event_key_literal = nodes.literal(text=event_key_field)
102102
event_description = event[".. event_description:"]
103+
event_trigger_repository = event.get(".. event_trigger_repository:")
103104

104105
event_section = nodes.section("", ids=[f"openedxevent-{event_type}"])
105106
event_section += nodes.title(text=event_type, ids=[f"title-{event_type}"])
@@ -114,10 +115,42 @@ def iter_nodes(self):
114115
)
115116
event_section += nodes.paragraph("", "Event data: ", event_data_literal)
116117
event_section += nodes.paragraph(
117-
text=f"Defined at: {event['filename']} (line"
118-
f" {event['line_number']})"
118+
"",
119+
"Defined at: ",
120+
nodes.reference(
121+
text="{} (line {})".format(
122+
event["filename"], event["line_number"]
123+
),
124+
refuri="{}/blob/{}/{}#L{}".format(
125+
self.env.config.openedxevents_repo_url,
126+
self.env.config.openedxevents_repo_version,
127+
event["filename"],
128+
event["line_number"],
129+
),
130+
),
131+
ids=[f"definition-{event_name}"],
119132
)
120133

134+
if event_trigger_repository:
135+
event_trigger_repository = event_trigger_repository.split(" ")
136+
event_section += nodes.paragraph(text="Triggered by:", ids=[f"triggers-{event_name}"])
137+
triggers_bullet_list = nodes.bullet_list()
138+
for repository in event_trigger_repository:
139+
search_url = f"https://github.com/search?q=repo:{repository}+{event_name}.send_event&type=code"
140+
triggers_bullet_list += nodes.list_item(
141+
"",
142+
nodes.paragraph(
143+
"",
144+
"",
145+
nodes.reference(
146+
text=repository,
147+
refuri=search_url,
148+
),
149+
),
150+
)
151+
152+
event_section += triggers_bullet_list
153+
121154
if event.get(".. event_warning:") not in (None, "None", "n/a", "N/A"):
122155
event_section += nodes.warning(
123156
"", nodes.paragraph("", event[".. event_warning:"]), ids=[f"warning-{event_name}"]

0 commit comments

Comments
 (0)