Skip to content
Merged
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
13 changes: 12 additions & 1 deletion scout_anki/deck.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ def create_merit_badge_model(model_name: str) -> genanki.Model:
{"name": "Name"},
{"name": "Description"},
{"name": "EagleRequired"},
{"name": "LabNote"},
]

# Front template (Image → Name + Description)
Expand All @@ -44,6 +45,7 @@ def create_merit_badge_model(model_name: str) -> genanki.Model:
<div style="text-align: center;">
<h2>{{Name}} {{#EagleRequired}}<span class="eagle-badge">🦅</span>{{/EagleRequired}}</h2>
<p>{{Description}}</p>
{{#LabNote}}<p class="lab-note">{{LabNote}}</p>{{/LabNote}}
</div>
"""

Expand Down Expand Up @@ -91,6 +93,12 @@ def create_merit_badge_model(model_name: str) -> genanki.Model:
font-size: 0.9em;
margin-left: 5px;
}

.lab-note {
color: #6b7280;
font-size: 0.95em;
margin-top: 8px;
}
"""

return genanki.Model(
Expand All @@ -117,14 +125,17 @@ def create_merit_badge_note(
guid = genanki.guid_for(f"{badge_slug}|{image_basename}")

# Prepare fields - put complete img tag with styling in the field
lab_note = "Test Lab Merit Badge" if badge.is_lab else ""
fields = [
f'<img src="{image_name}" style="max-width: 85%; height: auto;">', # Image with styling
badge.name, # Name
badge.description or "", # Description
"1" if badge.eagle_required else "", # EagleRequired (non-empty for true)
lab_note,
]

return genanki.Note(model=model, fields=fields, guid=guid)
tags = ["test-lab"] if badge.is_lab else []
return genanki.Note(model=model, fields=fields, guid=guid, tags=tags)


def create_merit_badge_deck(
Expand Down
3 changes: 3 additions & 0 deletions scout_anki/merit_badges/schema.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ class MeritBadge:
image_filename: str | None = None
source: str | None = None
eagle_required: bool = False
is_lab: bool = False


def normalize_badge_data(data: Any) -> list[MeritBadge]:
Expand Down Expand Up @@ -84,6 +85,7 @@ def normalize_badge_data(data: Any) -> list[MeritBadge]:

# Extract eagle required status
eagle_required = bool(item.get("is_eagle_required", False))
is_lab = bool(item.get("is_lab", False))

badge = MeritBadge(
name=name,
Expand All @@ -92,6 +94,7 @@ def normalize_badge_data(data: Any) -> list[MeritBadge]:
image_filename=image_filename,
source="JSON",
eagle_required=eagle_required,
is_lab=is_lab,
)
badges.append(badge)

Expand Down