feat: Implement email sending utilities and templates for job notifications
Some checks failed
CI/CD Pipeline / test (push) Failing after 4m9s

- Added email_service.py for sending emails with SMTP configuration.
- Introduced email_templates.py to render job alert email subjects and bodies.
- Enhanced scraper.py to extract contact information from job listings.
- Updated settings.js to handle negative keyword input validation.
- Created email.html and email_templates.html for managing email subscriptions and templates in the admin interface.
- Modified base.html to include links for email alerts and templates.
- Expanded user settings.html to allow management of negative keywords.
- Updated utils.py to include functions for retrieving negative keywords and email settings.
- Enhanced job filtering logic to exclude jobs containing negative keywords.
This commit is contained in:
2025-11-28 18:15:08 +01:00
parent 8afb208985
commit 2185a07ff0
23 changed files with 2660 additions and 63 deletions

View File

@@ -77,6 +77,29 @@ block content %}
<p>No keywords available. Ask an admin to add some.</p>
{% endif %}
</fieldset>
<fieldset>
<legend>Negative Keywords</legend>
<p>
<small>Add new Negative Keyword:</small>
<input
type="text"
name="new-negative-keyword"
id="new-negative-keyword"
value=""
placeholder="Type a keyword and save to add"
size="30"
/>
</p>
{% if user_negative_keywords %} {% for nk in user_negative_keywords %}
<label style="display: block">
<input type="checkbox" name="negative_keyword" value="{{ nk }}" checked />
{{ nk }}
</label>
{% endfor %} {% else %}
<p>No negative keywords set.</p>
{% endif %}
<p><small>Uncheck to remove.</small></p>
</fieldset>
<button type="submit">Save</button>
</form>
{% endblock %} {% block footer_scripts %}