feat: Implement email sending utilities and templates for job notifications
Some checks failed
CI/CD Pipeline / test (push) Failing after 4m9s
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:
@@ -16,17 +16,21 @@
|
||||
<header>
|
||||
<h1><a href="/">{{ title or 'Admin' }}</a></h1>
|
||||
<nav>
|
||||
{% if username %}<span>Hi, {{ username }}</span> | {% endif %}
|
||||
<a href="{{ url_for('index') }}">Home</a> |
|
||||
<a href="{{ url_for('user_settings') }}">Preferences</a>
|
||||
{% if current_user and current_user.is_admin %} |
|
||||
<a href="{{ url_for('scrape_page') }}">Scrape Jobs</a> |
|
||||
<a href="{{ url_for('admin_taxonomy') }}">Taxonomy</a> |
|
||||
<a href="{{ url_for('admin_stats') }}">Statistics</a> |
|
||||
<a href="{{ url_for('admin_users') }}">Users</a> {% endif %} {% if
|
||||
session.get('username') %} |
|
||||
<a href="{{ url_for('logout') }}">Logout</a> {% else %} |
|
||||
<a href="{{ url_for('login') }}">Login</a>{% endif %}
|
||||
<div id="navigation">
|
||||
{% if username %}<span>Hi, {{ username }}</span> | {% endif %}
|
||||
<a href="{{ url_for('index') }}">Home</a> |
|
||||
<a href="{{ url_for('user_settings') }}">Preferences</a>
|
||||
{% if current_user and current_user.is_admin %} |
|
||||
<a href="{{ url_for('scrape_page') }}">Scrape Jobs</a> |
|
||||
<a href="{{ url_for('admin_taxonomy') }}">Taxonomy</a> |
|
||||
<a href="{{ url_for('admin_stats') }}">Statistics</a> |
|
||||
<a href="{{ url_for('admin_emails') }}">Email Alerts</a> |
|
||||
<a href="{{ url_for('admin_email_templates') }}">Email Templates</a> |
|
||||
<a href="{{ url_for('admin_users') }}">Users</a> {% endif %} {% if
|
||||
session.get('username') %} |
|
||||
<a href="{{ url_for('logout') }}">Logout</a> {% else %} |
|
||||
<a href="{{ url_for('login') }}">Login</a>{% endif %}
|
||||
</div>
|
||||
</nav>
|
||||
{% with messages = get_flashed_messages() %} {% if messages %}
|
||||
<ul>
|
||||
|
||||
Reference in New Issue
Block a user