Django raises VariableDoesNotExist when a failed dict lookup is used as a
filter argument (|default:mineral.properties_ru.X). Rewrite color description
to use an {% if %} block so the dict lookup is always the main variable.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add properties_ru JSON field to store translated category, crystal_system,
luster, streak, specific_gravity, color_description
- Add translate_minerals management command using deep-translator (Google
Translate), with a hard-coded dictionary for crystal systems
- Template: show translated values in RU mode, fall back to English if missing
- Add deep-translator to requirements.txt
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- EN mode no longer shows Russian subtitle under mineral name
- RU mode now correctly reveals all lang-ru elements via CSS body.mode-ru rules
- Subtitle in RU mode shows English name as reference below Russian heading
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Russian fields on Mineral model (name_ru, description_ru, history_ru, etc.)
- scrape_minerals_ru management command fetches from Russian Wikipedia via langlinks
- EN/RU toggle in header, saved to localStorage
- Speaker button next to mineral name uses Web Speech API
- Section headers and labels translated
- Russian Wikipedia link in footer when in RU mode
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Search bar toggle in header (magnifying glass icon)
- /daily-stone/search/?q= endpoint with results list
- /daily-stone/mineral/<id>/ permalink for each mineral
- Mineral count shown in footer
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Removed readonly on image_urls so URLs can be changed in admin.
Added list_editable for day_of_year and color_hex for quick edits.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
SVG gem shape as inline data URI, automatically tinted with the
mineral's color_hex. No static assets needed.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds a template filter that cleans up spaced-out formulas from scraping
and wraps subscript numbers in <sub> tags for proper display.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
New dailystone app with 207 minerals scraped from Wikipedia.
Each day displays a different mineral with photos, formula,
properties, description, and history. Page theme color matches
the mineral's typical appearance.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Django app with Item model (games/books/films/other categories), CRUD
views, and login-required access. Login page at /accounts/login/ uses
custom dark-themed template consistent with the site design.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>