django-email-learning 2.2.0__tar.gz → 2.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/PKG-INFO +1 -1
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/jobs/send_newsletters_job.py +1 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/emails/base.html +29 -0
- django_email_learning-2.2.1/django_email_learning/templates/emails/newsletter_sendout.html +95 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/pyproject.toml +1 -1
- django_email_learning-2.2.0/django_email_learning/templates/emails/newsletter_sendout.html +0 -13
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/LICENSE +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/README.md +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/__init__.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/admin.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/ai/__init__.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/ai/ai_service_protocol.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/ai/apps.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/ai/language_models.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/ai/open_ai_adapter.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/ai/serializers.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/ai/urls.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/ai/views.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/analytics/__init__.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/analytics/downloads.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/analytics/serializers.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/analytics/urls.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/analytics/views.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/apps.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/decorators.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/jobs/__init__.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/jobs/api/__init__.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/jobs/api/urls.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/jobs/api/views.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/jobs/check_imap_job.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/jobs/deactivate_inactive_enrollments_job.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/jobs/deliver_contents_job.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/jobs/executor_utils.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/jobs/job_metrics.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/jobs/queue_utils.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/jobs/registry.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/jobs/send_reminders_job.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/management/__init__.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/management/commands/__init__.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/management/commands/check_imap_connections.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/management/commands/cleanup_job_executions.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/management/commands/deactivate_inactive_enrollments.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/management/commands/deliver_contents.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/management/commands/rotate_encryption_key.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/management/commands/send_newsletters.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/management/commands/send_reminders.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/migrations/0001_initial.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/migrations/0002_newsletter_feature.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/migrations/0003_learner_photo_private_storage.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/migrations/0004_sendout_blocked_reason.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/migrations/0005_jobexecution_failed_status_and_error.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/migrations/0006_sociallink.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/migrations/0007_backfill_social_links.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/migrations/0008_remove_organization_legacy_social_fields.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/migrations/0009_add_more_social_link_platforms.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/migrations/__init__.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/models/__init__.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/models/api_keys.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/models/course_contents.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/models/courses.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/models/deliveries.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/models/enrollments.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/models/enums/__init__.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/models/enums/course_content_type.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/models/enums/deactivation_reason.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/models/enums/delivery_status.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/models/enums/enrollment_status.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/models/imap_connections.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/models/jobs.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/models/mixin_models.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/models/newsletters.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/models/organizations.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/models/submissions.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/oauth_integrations/__init__.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/oauth_integrations/apps.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/oauth_integrations/base_handler.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/oauth_integrations/group_enrollment/__init__.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/oauth_integrations/group_enrollment/base_group_enrollment_handler.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/oauth_integrations/group_enrollment/google_group_enrollment_handler.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/oauth_integrations/migrations/0001_initial.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/oauth_integrations/migrations/0002_session_access_token.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/oauth_integrations/migrations/__init__.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/oauth_integrations/mixins.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/oauth_integrations/models.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/oauth_integrations/serializers.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/oauth_integrations/urls.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/oauth_integrations/views.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/personalised/api/__init__.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/personalised/api/serializers.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/personalised/api/urls.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/personalised/api/views.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/personalised/serializers.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/personalised/urls.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/personalised/views.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/platform/__init__.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/platform/api/__init__.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/platform/api/newsletter_access_mixin.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/platform/api/pagniated_api_mixin.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/platform/api/serializers/__init__.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/platform/api/serializers/assignments.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/platform/api/serializers/common.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/platform/api/serializers/courses.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/platform/api/serializers/learners.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/platform/api/serializers/lessons.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/platform/api/serializers/misc.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/platform/api/serializers/newsletters.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/platform/api/serializers/oauth.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/platform/api/serializers/organisations.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/platform/api/serializers/quizzes.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/platform/api/urls.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/platform/api/views/__init__.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/platform/api/views/assignments.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/platform/api/views/courses.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/platform/api/views/learners.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/platform/api/views/misc.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/platform/api/views/newsletters.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/platform/api/views/oauth.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/platform/api/views/organisations.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/platform/features.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/platform/serializers.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/platform/urls.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/platform/views/__init__.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/platform/views/base.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/platform/views/courses.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/platform/views/learners.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/platform/views/misc.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/platform/views/newsletters.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/platform/views/organisations.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/ports/__init__.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/ports/email_sender_protocol.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/ports/imap_interface_protocol.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/ports/job_executor_protocol.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/ports/metric_recorder_protocol.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/ports/task_queue_protocol.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/public/__init__.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/public/api/__init__.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/public/api/serializers.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/public/api/urls.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/public/api/views.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/public/newsletter_views.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/public/serializers.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/public/urls.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/public/views.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/scripts/__init__.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/scripts/setup_dev.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/services/__init__.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/services/command_handler_service.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/services/command_models/__init__.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/services/command_models/abstract_command.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/services/command_models/command_request.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/services/command_models/enroll_command.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/services/command_models/exceptions/__init__.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/services/command_models/exceptions/blocked_email_error.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/services/command_models/exceptions/enrollment_already_exists_error.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/services/command_models/exceptions/invalid_course_slug_error.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/services/command_models/exceptions/invalid_enrollment_error.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/services/command_models/exceptions/invalid_verification_code_error.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/services/command_models/exceptions/learner_cap_exceeded_error.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/services/command_models/send_assignment_command.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/services/command_models/send_assignment_reminder_command.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/services/command_models/send_assignment_review_command.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/services/command_models/send_lesson_command.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/services/command_models/send_quiz_command.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/services/command_models/send_quiz_reminder_command.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/services/command_models/unsubscribe_command.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/services/command_models/verify_enrollment_command.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/services/defaults/__init__.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/services/defaults/database_delivery_queue.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/services/defaults/database_reminder_queue.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/services/defaults/database_sendout_queue.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/services/defaults/email_sender.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/services/defaults/imap_interface.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/services/defaults/log_based_metric_recorder.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/services/defaults/thread_pool_job_executor.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/services/email_sender_service.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/services/jwt_service.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/services/metrics_service.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/services/sanitize.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/services/storage_tools.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/services/utils.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/signals.py +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/README +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/Add-DNm1SyP7.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/Alert-C9BZ_0yq.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/Assignment-9NgEvbck.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/AssignmentForm-BSU6HzBh.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/Avatar-BgcwkYp5.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/BarChart-iFhHVNa-.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/Base-Ca7y26tx.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/Button-BeAdSA4d.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/Cancel-DPlxL2nh.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/CheckCircle-BfciItNb.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/Checkbox-BRX35f1Y.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/Chip-CH8y6_z8.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/CloudUpload-Cy4xbdRS.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/Container-D3PEmuWO.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/ContentCopy-D-rQgHyG.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/ContentEditor-CKKjA5Xn.css +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/ContentEditor-aar9LvuR.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/CourseForm-DElF8k1y.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/Delete-Cqi_Q3OO.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/DeleteContentForm-WjUJzuUH.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/DeleteCoursePopup-Bm2AHccd.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/DeleteNewsletterDialog-F2mHZ45A.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/DeleteUserDialog--aSnkNdL.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/Dialog-Dnjk4ZKo.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/DialogActions-Dyb2R8kn.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/DialogContentText-CQdksgVi.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/DialogTitle-BwJi5rjs.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/Edit-Cw_wtcbs.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/EmptyTableState-zZuBcjpl.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/EnableCourseSwitchPopup-CKnhMhCg.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/EnrollmentForm-qftqSHOy.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/EnrollmentList-DcMBT_0Z.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/FormControlLabel-DkPpSsM8.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/FormGroup-DYYcJ0Nr.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/Grid-CaQNlbNT.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/ImageUpload-ux8OZta3.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/InfoOutlined-B9OPv4zc.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/Layout-BBuJT7Vg.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/LessonForm-CMtSL_02.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/LinearProgress-DvO9MIvu.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/ListItemText-DG4NRDGR.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/Lock-CFTd9FlH.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/MenuItem-De4h4Y61.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/Modal-BGens4S0.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/NewsletterForm-BkbCz64Q.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/OrganizationForm-bzLD8D3r.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/Pagination-IGhmyRq6.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/Public-CnlfcIAL.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/QuizForm-DwxE1IkB.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/RequiredTextField-RdX7wAKK.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/School-CRQRfzHf.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/Select-BvElZvjt.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/Stack-BT3rdKGE.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/Switch-CEUO9dp9.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/SwitchBase-jqwq1b8w.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/TableCell-mnvybjBi.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/Tabs-BLPrkQE3.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/TextField-DqJmnpXC.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/Tooltip-BN0hUIVb.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/UserForm-YCJs9pma.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/WorkspacePremium-B0slSXpO.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/analytics-vFt3TwJ1.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/apiClient-DLC4iHBU.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/assignment_public-CrzrzkyL.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/certificate-DIuc9lng.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/certtificate_form-Cq5Sea-V.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/command_result-DgztzBA1.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/course-C1fZg5V8.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/courses-c_0sDl1c.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/isMuiElement-DFZDks--.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/isMuiElement-bWJER0DN.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/learners-CN2si8cF.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/logo-h-dark-BW-XhXGy.png +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/logo-h-light-CDWnatM_.png +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/logo-v-dark-Bs2lkb0t.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/logo-v-dark-IaqEVA7I.png +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/logo-v-light-CQaPHwc9.png +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/organization-BN0w5-_P.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/organizations-D9xrsOp4.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/platform_newsletter-DUfCvY75.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/platform_newsletter_subscribers-Dq5h5FbR.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/platform_organization-B78-xS3O.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/preload-helper-CUg6q9T1.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/public_course-DEM3REtf.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/quiz_public-w8fT6Juo.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/render-CSlijdTr.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/settings_api_keys-FpBodIWw.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/useThemeProps-ByT4Z9AK.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/assets/with-selector-kU74hpO7.js +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/logo-h.png +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/static/logo.png +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/emails/assignment.html +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/emails/assignment.txt +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/emails/assignment_reminder.html +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/emails/assignment_reminder.txt +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/emails/assignment_review.html +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/emails/assignment_review.txt +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/emails/base_amp.html +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/emails/certificate_form.html +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/emails/certificate_form.txt +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/emails/deactivation_deadline_passed.html +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/emails/deactivation_deadline_passed.txt +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/emails/enrollment_verification.html +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/emails/enrollment_verification.txt +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/emails/enrollment_verified.html +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/emails/enrollment_verified.txt +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/emails/lesson.html +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/emails/lesson.txt +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/emails/password_reset.html +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/emails/password_reset.txt +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/emails/quiz.html +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/emails/quiz.txt +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/emails/quiz_amp.html +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/emails/quiz_reminder.html +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/emails/quiz_reminder.txt +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/newsletters/unsubscribe_invalid.html +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/newsletters/unsubscribed.html +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/personalised/assignment_public.html +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/personalised/base.html +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/personalised/certificate.html +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/personalised/certificate_form.html +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/personalised/command_result.html +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/personalised/quiz_public.html +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/platform/analytics.html +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/platform/base.html +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/platform/course.html +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/platform/courses.html +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/platform/learners.html +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/platform/newsletter.html +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/platform/newsletter_subscribers.html +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/platform/organization.html +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/platform/organizations.html +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/platform/settings_api_keys.html +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/public/base.html +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/public/course.html +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/templates/public/organization.html +0 -0
- {django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/urls.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: django-email-learning
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.1
|
|
4
4
|
Summary: A platform for creating and delivering learning materials via email within a Django application. It provides tools for content management, user role-based administration, and scheduler integration for automated content delivery.
|
|
5
5
|
License-Expression: BSD-3-Clause
|
|
6
6
|
License-File: LICENSE
|
|
@@ -180,6 +180,7 @@ class SendNewslettersJob:
|
|
|
180
180
|
"body": sendout.body,
|
|
181
181
|
"newsletter_title": sendout.newsletter.title,
|
|
182
182
|
"unsubscribe_url": full_unsubscribe_url,
|
|
183
|
+
"social_links": sendout.newsletter.organization.social_links.all(),
|
|
183
184
|
}
|
|
184
185
|
|
|
185
186
|
msg = EmailMultiAlternatives(
|
|
@@ -140,6 +140,35 @@
|
|
|
140
140
|
font-size: 14px;
|
|
141
141
|
color: #6c757d;
|
|
142
142
|
}
|
|
143
|
+
.email-divider-note.centered {
|
|
144
|
+
text-align: center;
|
|
145
|
+
}
|
|
146
|
+
.email-social-links {
|
|
147
|
+
margin: 0 0 12px;
|
|
148
|
+
font-size: 14px;
|
|
149
|
+
}
|
|
150
|
+
.email-social-link {
|
|
151
|
+
display: inline-flex;
|
|
152
|
+
align-items: center;
|
|
153
|
+
justify-content: center;
|
|
154
|
+
width: 28px;
|
|
155
|
+
height: 28px;
|
|
156
|
+
margin-right: 8px;
|
|
157
|
+
border-radius: 999px;
|
|
158
|
+
background-color: #4f46e5;
|
|
159
|
+
border: 1px solid #4f46e5;
|
|
160
|
+
color: #ffffff !important;
|
|
161
|
+
vertical-align: middle;
|
|
162
|
+
}
|
|
163
|
+
.email-social-icon {
|
|
164
|
+
width: 20px;
|
|
165
|
+
height: 20px;
|
|
166
|
+
display: block;
|
|
167
|
+
}
|
|
168
|
+
.email-social-link[data-platform="whatsapp"] .email-social-icon {
|
|
169
|
+
width: 22px;
|
|
170
|
+
height: 22px;
|
|
171
|
+
}
|
|
143
172
|
.email-muted-note {
|
|
144
173
|
font-size: 14px;
|
|
145
174
|
color: #7f8c8d;
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
{% extends "emails/base.html" %}
|
|
2
|
+
{% load i18n %}
|
|
3
|
+
|
|
4
|
+
{% block content %}
|
|
5
|
+
<h2 class="email-title">{{ subject }}</h2>
|
|
6
|
+
|
|
7
|
+
{{ body|safe }}
|
|
8
|
+
|
|
9
|
+
<div class="email-divider-note centered">
|
|
10
|
+
{% if social_links %}
|
|
11
|
+
<p class="email-social-links">
|
|
12
|
+
{% for link in social_links %}
|
|
13
|
+
<a
|
|
14
|
+
href="{{ link.url }}"
|
|
15
|
+
class="email-social-link color-brand"
|
|
16
|
+
style="text-decoration: none;"
|
|
17
|
+
data-platform="{{ link.platform }}"
|
|
18
|
+
aria-label="{{ link.get_platform_display }}"
|
|
19
|
+
title="{{ link.get_platform_display }}"
|
|
20
|
+
>
|
|
21
|
+
{% if link.platform == "website" %}
|
|
22
|
+
<svg class="email-social-icon" viewBox="0 0 24 24" role="img" aria-hidden="true" focusable="false">
|
|
23
|
+
<title>{{ link.get_platform_display }}</title>
|
|
24
|
+
<circle cx="12" cy="12" r="9" fill="none" stroke="currentColor" stroke-width="1.8"/>
|
|
25
|
+
<path d="M3 12h18M12 3a14 14 0 0 0 0 18M12 3a14 14 0 0 1 0 18" fill="none" stroke="currentColor" stroke-width="1.8"/>
|
|
26
|
+
</svg>
|
|
27
|
+
{% elif link.platform == "youtube" %}
|
|
28
|
+
<svg class="email-social-icon" viewBox="0 0 24 24" role="img" aria-hidden="true" focusable="false">
|
|
29
|
+
<title>{{ link.get_platform_display }}</title>
|
|
30
|
+
<rect x="3" y="6.5" width="18" height="11" rx="3" fill="none" stroke="currentColor" stroke-width="1.8"/>
|
|
31
|
+
<path d="M10 9.5l6 2.5-6 2.5z" fill="currentColor"/>
|
|
32
|
+
</svg>
|
|
33
|
+
{% elif link.platform == "linkedin" %}
|
|
34
|
+
<svg class="email-social-icon" viewBox="0 0 24 24" role="img" aria-hidden="true" focusable="false">
|
|
35
|
+
<title>{{ link.get_platform_display }}</title>
|
|
36
|
+
<rect x="3.5" y="3.5" width="17" height="17" rx="3" fill="none" stroke="currentColor" stroke-width="1.8"/>
|
|
37
|
+
<circle cx="8" cy="9" r="1.2" fill="currentColor"/>
|
|
38
|
+
<path d="M7 11.2v5.8M11 17v-3.3c0-1.2.8-2 2-2s2 .8 2 2V17M11 12v5" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/>
|
|
39
|
+
</svg>
|
|
40
|
+
{% elif link.platform == "facebook" %}
|
|
41
|
+
<svg class="email-social-icon" viewBox="0 0 24 24" role="img" aria-hidden="true" focusable="false">
|
|
42
|
+
<title>{{ link.get_platform_display }}</title>
|
|
43
|
+
<circle cx="12" cy="12" r="9" fill="none" stroke="currentColor" stroke-width="1.8"/>
|
|
44
|
+
<path d="M13.4 8.1h1.8V6h-1.8c-1.9 0-3.1 1.2-3.1 3v1.4H8.8v2.1h1.5V18h2.3v-5.5h2.1l.4-2.1h-2.5V9c0-.5.3-.9.8-.9z" fill="currentColor"/>
|
|
45
|
+
</svg>
|
|
46
|
+
{% elif link.platform == "instagram" %}
|
|
47
|
+
<svg class="email-social-icon" viewBox="0 0 24 24" role="img" aria-hidden="true" focusable="false">
|
|
48
|
+
<title>{{ link.get_platform_display }}</title>
|
|
49
|
+
<rect x="4" y="4" width="16" height="16" rx="4" fill="none" stroke="currentColor" stroke-width="1.8"/>
|
|
50
|
+
<circle cx="12" cy="12" r="3.2" fill="none" stroke="currentColor" stroke-width="1.8"/>
|
|
51
|
+
<circle cx="16.4" cy="7.6" r="1.1" fill="currentColor"/>
|
|
52
|
+
</svg>
|
|
53
|
+
{% elif link.platform == "tiktok" %}
|
|
54
|
+
<svg class="email-social-icon" viewBox="0 0 24 24" role="img" aria-hidden="true" focusable="false">
|
|
55
|
+
<title>{{ link.get_platform_display }}</title>
|
|
56
|
+
<path d="M14 6v7.2a3.4 3.4 0 1 1-2.4-3.2" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/>
|
|
57
|
+
<path d="M14 6c.7 1.3 2.1 2.1 3.6 2.1" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/>
|
|
58
|
+
</svg>
|
|
59
|
+
{% elif link.platform == "x" %}
|
|
60
|
+
<svg class="email-social-icon" viewBox="0 0 24 24" role="img" aria-hidden="true" focusable="false">
|
|
61
|
+
<title>{{ link.get_platform_display }}</title>
|
|
62
|
+
<path d="M5 5h3.4l3.8 5.1L16.4 5H19l-5.6 6.4L19.4 19H16l-4.2-5.7L7 19H4.4l5.9-6.8z" fill="currentColor"/>
|
|
63
|
+
</svg>
|
|
64
|
+
{% elif link.platform == "whatsapp" %}
|
|
65
|
+
<svg class="email-social-icon" viewBox="0 0 24 24" role="img" aria-hidden="true" focusable="false">
|
|
66
|
+
<title>{{ link.get_platform_display }}</title>
|
|
67
|
+
<circle cx="12" cy="12" r="8" fill="none" stroke="currentColor" stroke-width="1.8"/>
|
|
68
|
+
<path d="M7.5 18.5l1-2.8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/>
|
|
69
|
+
<path d="M10.2 9.2c.4-.6.8-.6 1-.3l.7 1c.2.3.1.6-.1.8l-.4.4c.4.9 1.1 1.6 2 2l.4-.4c.2-.2.5-.3.8-.1l1 .7c.3.2.3.6-.3 1-.7.6-1.6.5-2.8-.1-1.5-.8-2.8-2.1-3.6-3.6-.6-1.2-.7-2.1-.1-2.8z" fill="currentColor"/>
|
|
70
|
+
</svg>
|
|
71
|
+
{% elif link.platform == "telegram" %}
|
|
72
|
+
<svg class="email-social-icon" viewBox="0 0 24 24" role="img" aria-hidden="true" focusable="false">
|
|
73
|
+
<title>{{ link.get_platform_display }}</title>
|
|
74
|
+
<circle cx="12" cy="12" r="9" fill="none" stroke="currentColor" stroke-width="1.8"/>
|
|
75
|
+
<path d="M6.8 11.8l10.1-4-2.1 8.3-3-2.4-1.8 1.8.4-2.8z" fill="currentColor"/>
|
|
76
|
+
</svg>
|
|
77
|
+
{% elif link.platform == "substack" %}
|
|
78
|
+
<svg class="email-social-icon" viewBox="0 0 24 24" role="img" aria-hidden="true" focusable="false">
|
|
79
|
+
<title>{{ link.get_platform_display }}</title>
|
|
80
|
+
<rect x="5" y="5" width="14" height="2" fill="currentColor"/>
|
|
81
|
+
<rect x="5" y="9" width="14" height="2" fill="currentColor"/>
|
|
82
|
+
<rect x="5" y="13" width="14" height="2" fill="currentColor"/>
|
|
83
|
+
<rect x="5" y="17" width="14" height="2" fill="currentColor"/>
|
|
84
|
+
</svg>
|
|
85
|
+
{% else %}
|
|
86
|
+
<span>{{ link.get_platform_display }}</span>
|
|
87
|
+
{% endif %}
|
|
88
|
+
</a>
|
|
89
|
+
{% endfor %}
|
|
90
|
+
</p>
|
|
91
|
+
{% endif %}
|
|
92
|
+
<p>{% blocktranslate %}You are receiving this email because you subscribed to <strong>{{ newsletter_title }}</strong>.{% endblocktranslate %}</p>
|
|
93
|
+
<p>{% blocktranslate %}If you no longer wish to receive these emails, you can <a href="{{ unsubscribe_url }}">unsubscribe from this newsletter</a>.{% endblocktranslate %}</p>
|
|
94
|
+
</div>
|
|
95
|
+
{% endblock %}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "django-email-learning"
|
|
3
|
-
version = "2.2.
|
|
3
|
+
version = "2.2.1"
|
|
4
4
|
description = "A platform for creating and delivering learning materials via email within a Django application. It provides tools for content management, user role-based administration, and scheduler integration for automated content delivery."
|
|
5
5
|
authors = [
|
|
6
6
|
{name = "Payam Najafizadeh",email = "payam.nj@gmail.com"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
{% extends "emails/base.html" %}
|
|
2
|
-
{% load i18n %}
|
|
3
|
-
|
|
4
|
-
{% block content %}
|
|
5
|
-
<h2 class="email-title">{{ subject }}</h2>
|
|
6
|
-
|
|
7
|
-
{{ body|safe }}
|
|
8
|
-
|
|
9
|
-
<div class="email-divider-note">
|
|
10
|
-
<p>{% blocktranslate %}You are receiving this email because you subscribed to <strong>{{ newsletter_title }}</strong>.{% endblocktranslate %}</p>
|
|
11
|
-
<p>{% blocktranslate %}If you no longer wish to receive these emails, you can <a href="{{ unsubscribe_url }}">unsubscribe from this newsletter</a>.{% endblocktranslate %}</p>
|
|
12
|
-
</div>
|
|
13
|
-
{% endblock %}
|
|
File without changes
|
|
File without changes
|
{django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/ai/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/ai/apps.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/ai/serializers.py
RENAMED
|
File without changes
|
{django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/ai/urls.py
RENAMED
|
File without changes
|
{django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/ai/views.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/analytics/urls.py
RENAMED
|
File without changes
|
{django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/analytics/views.py
RENAMED
|
File without changes
|
|
File without changes
|
{django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/decorators.py
RENAMED
|
File without changes
|
{django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/jobs/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/jobs/api/urls.py
RENAMED
|
File without changes
|
{django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/jobs/api/views.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/jobs/registry.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/models/__init__.py
RENAMED
|
File without changes
|
{django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/models/api_keys.py
RENAMED
|
File without changes
|
|
File without changes
|
{django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/models/courses.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/models/jobs.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/platform/urls.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/ports/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/public/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/public/api/urls.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/public/urls.py
RENAMED
|
File without changes
|
{django_email_learning-2.2.0 → django_email_learning-2.2.1}/django_email_learning/public/views.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|