django-codenerix-email 4.0.16__tar.gz → 4.0.17__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.
Files changed (87) hide show
  1. {django-codenerix-email-4.0.16/django_codenerix_email.egg-info → django-codenerix-email-4.0.17}/PKG-INFO +1 -1
  2. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/__init__.py +1 -1
  3. django-codenerix-email-4.0.17/codenerix_email/migrations/0012_emailmessage_unsubscribe_url.py +20 -0
  4. django-codenerix-email-4.0.17/codenerix_email/migrations/__pycache__/0012_emailmessage_unsubscribe_url.cpython-311.pyc +0 -0
  5. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/models.py +26 -4
  6. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/static/codenerix_email/partials/emailmessages_rows.html +8 -1
  7. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17/django_codenerix_email.egg-info}/PKG-INFO +1 -1
  8. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/django_codenerix_email.egg-info/SOURCES.txt +2 -1
  9. django-codenerix-email-4.0.16/codenerix_email/static/codenerix_email/partials/.emailmessages_rows.html.swp +0 -0
  10. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/LICENSE +0 -0
  11. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/MANIFEST.in +0 -0
  12. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/README.rst +0 -0
  13. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/admin.py +0 -0
  14. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/apps.py +0 -0
  15. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/forms.py +0 -0
  16. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/management/__init__.py +0 -0
  17. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/management/__pycache__/__init__.cpython-310.pyc +0 -0
  18. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/management/__pycache__/__init__.cpython-311.pyc +0 -0
  19. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/management/__pycache__/__init__.cpython-35.pyc +0 -0
  20. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/management/__pycache__/__init__.cpython-39.pyc +0 -0
  21. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/management/commands/__init__.py +0 -0
  22. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/management/commands/__pycache__/__init__.cpython-311.pyc +0 -0
  23. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/management/commands/__pycache__/send_emails.cpython-311.pyc +0 -0
  24. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/management/commands/send_emails.py +0 -0
  25. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/management/commands/test_email.py +0 -0
  26. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/0001_initial.py +0 -0
  27. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/0002_auto_20170502_1043.py +0 -0
  28. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/0003_auto_20170921_1206.py +0 -0
  29. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/0004_auto_20171108_1628.py +0 -0
  30. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/0005_emailmessage_retries.py +0 -0
  31. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/0006_emailmessage_error.py +0 -0
  32. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/0007_emailmessage_next_retry.py +0 -0
  33. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/0008_auto_20171201_0928.py +0 -0
  34. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/0009_emailmessage_opened_emailmessage_uuid.py +0 -0
  35. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/0010_emailmessage_content_subtype_and_more.py +0 -0
  36. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/0011_alter_emailmessage_content_subtype_and_more.py +0 -0
  37. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__init__.py +0 -0
  38. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0001_initial.cpython-310.pyc +0 -0
  39. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0001_initial.cpython-311.pyc +0 -0
  40. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0001_initial.cpython-35.pyc +0 -0
  41. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0001_initial.cpython-39.pyc +0 -0
  42. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0002_auto_20170502_1043.cpython-310.pyc +0 -0
  43. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0002_auto_20170502_1043.cpython-311.pyc +0 -0
  44. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0002_auto_20170502_1043.cpython-35.pyc +0 -0
  45. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0002_auto_20170502_1043.cpython-39.pyc +0 -0
  46. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0003_auto_20170921_1206.cpython-310.pyc +0 -0
  47. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0003_auto_20170921_1206.cpython-311.pyc +0 -0
  48. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0003_auto_20170921_1206.cpython-35.pyc +0 -0
  49. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0003_auto_20170921_1206.cpython-39.pyc +0 -0
  50. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0004_auto_20171108_1628.cpython-310.pyc +0 -0
  51. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0004_auto_20171108_1628.cpython-311.pyc +0 -0
  52. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0004_auto_20171108_1628.cpython-35.pyc +0 -0
  53. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0004_auto_20171108_1628.cpython-39.pyc +0 -0
  54. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0005_emailmessage_retries.cpython-310.pyc +0 -0
  55. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0005_emailmessage_retries.cpython-311.pyc +0 -0
  56. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0005_emailmessage_retries.cpython-35.pyc +0 -0
  57. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0005_emailmessage_retries.cpython-39.pyc +0 -0
  58. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0006_emailmessage_error.cpython-310.pyc +0 -0
  59. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0006_emailmessage_error.cpython-311.pyc +0 -0
  60. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0006_emailmessage_error.cpython-35.pyc +0 -0
  61. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0006_emailmessage_error.cpython-39.pyc +0 -0
  62. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0007_emailmessage_next_retry.cpython-310.pyc +0 -0
  63. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0007_emailmessage_next_retry.cpython-311.pyc +0 -0
  64. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0007_emailmessage_next_retry.cpython-35.pyc +0 -0
  65. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0007_emailmessage_next_retry.cpython-39.pyc +0 -0
  66. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0008_auto_20171201_0928.cpython-310.pyc +0 -0
  67. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0008_auto_20171201_0928.cpython-311.pyc +0 -0
  68. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0008_auto_20171201_0928.cpython-35.pyc +0 -0
  69. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0008_auto_20171201_0928.cpython-39.pyc +0 -0
  70. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0009_delete_emailtemplatetexten.cpython-311.pyc +0 -0
  71. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0009_emailmessage_opened_emailmessage_uuid.cpython-311.pyc +0 -0
  72. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0010_emailmessage_content_subtype_and_more.cpython-311.pyc +0 -0
  73. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0010_emailmessage_opened_emailmessage_uuid_and_more.cpython-311.pyc +0 -0
  74. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/0011_alter_emailmessage_content_subtype_and_more.cpython-311.pyc +0 -0
  75. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/__init__.cpython-310.pyc +0 -0
  76. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/__init__.cpython-311.pyc +0 -0
  77. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/__init__.cpython-35.pyc +0 -0
  78. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/migrations/__pycache__/__init__.cpython-39.pyc +0 -0
  79. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/urls.py +0 -0
  80. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/urls_frontend.py +0 -0
  81. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/codenerix_email/views.py +0 -0
  82. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/django_codenerix_email.egg-info/dependency_links.txt +0 -0
  83. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/django_codenerix_email.egg-info/not-zip-safe +0 -0
  84. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/django_codenerix_email.egg-info/requires.txt +0 -0
  85. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/django_codenerix_email.egg-info/top_level.txt +0 -0
  86. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/setup.cfg +0 -0
  87. {django-codenerix-email-4.0.16 → django-codenerix-email-4.0.17}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: django-codenerix-email
3
- Version: 4.0.16
3
+ Version: 4.0.17
4
4
  Summary: Codenerix Email is a module that enables CODENERIX to set send emails in a general manner.
5
5
  Home-page: https://github.com/codenerix/django-codenerix-email
6
6
  Author: Juan Miguel Taboada Godoy <juanmi@juanmitaboada.com>, Juan Soler Ruiz <soleronline@gmail.com>
@@ -1,4 +1,4 @@
1
- __version__ = "4.0.16"
1
+ __version__ = "4.0.17"
2
2
 
3
3
  __authors__ = [
4
4
  "Juan Miguel Taboada Godoy <juanmi@juanmitaboada.com>",
@@ -0,0 +1,20 @@
1
+ # Generated by Django 5.1.2 on 2024-10-10 09:24
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ("codenerix_email", "0011_alter_emailmessage_content_subtype_and_more"),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.AddField(
14
+ model_name="emailmessage",
15
+ name="unsubscribe_url",
16
+ field=models.URLField(
17
+ blank=True, null=True, verbose_name="Unsubscribe URL"
18
+ ),
19
+ ),
20
+ ]
@@ -92,6 +92,9 @@ class EmailMessage(CodenerixModel, Debugger):
92
92
  null=False,
93
93
  default=CONTENT_SUBTYPE_HTML,
94
94
  )
95
+ unsubscribe_url = models.URLField(
96
+ _("Unsubscribe URL"), blank=True, null=True
97
+ )
95
98
 
96
99
  def __fields__(self, info):
97
100
  fields = []
@@ -110,6 +113,7 @@ class EmailMessage(CodenerixModel, Debugger):
110
113
  fields.append(("pk", _("ID")))
111
114
  fields.append(("content_subtype", _("Content Subtype")))
112
115
  fields.append(("uuid", _("UUID")))
116
+ fields.append(("unsubscribe_url", _("Unsubscribe URL")))
113
117
  return fields
114
118
 
115
119
  def __searchQ__(self, info, search): # noqa: N802
@@ -120,6 +124,7 @@ class EmailMessage(CodenerixModel, Debugger):
120
124
  answer["eto"] = Q(eto__icontains=search)
121
125
  answer["retries"] = Q(retries=search)
122
126
  answer["pk"] = Q(pk=search)
127
+ answer["unsubscribe_url"] = Q(unsubscribe_url__icontains=search)
123
128
  return answer
124
129
 
125
130
  def __searchF__(self, info): # noqa: N802
@@ -155,6 +160,11 @@ class EmailMessage(CodenerixModel, Debugger):
155
160
  "eto": (_("To"), lambda x: Q(eto__icontains=x), "input"),
156
161
  "retries": (_("Retries"), lambda x: Q(retries=x), "input"),
157
162
  "pk": (_("ID"), lambda x: Q(pk=x), "input"),
163
+ "unsubscribe_url": (
164
+ _("Unsubscribe URL"),
165
+ lambda x: Q(unsubscribe_url__icontains=x),
166
+ "input",
167
+ ),
158
168
  }
159
169
 
160
170
  def __unicode__(self):
@@ -342,13 +352,25 @@ class EmailMessage(CodenerixModel, Debugger):
342
352
  raise
343
353
 
344
354
  if connection:
355
+
356
+ # Prepare headers
357
+ headers = {}
358
+
359
+ # If unsubscribe_url is set, add List-Unsubscribe header
360
+ if self.unsubscribe_url:
361
+ headers["List-Unsubscribe"] = f"<{self.unsubscribe_url}>"
362
+ headers[
363
+ "List-Unsubscribe-Post"
364
+ ] = "List-Unsubscribe=One-Click"
365
+
345
366
  email = EM(
346
- self.subject,
347
- self.body,
348
- self.efrom,
349
- [self.eto],
367
+ subject=self.subject,
368
+ body=self.body,
369
+ from_email=self.efrom,
370
+ to=[self.eto],
350
371
  connection=connection,
351
372
  )
373
+ email.headers = headers
352
374
  email.content_subtype = self.content_subtype
353
375
  for at in self.attachments.all():
354
376
  with open(at.path) as f:
@@ -26,4 +26,11 @@
26
26
  </button>
27
27
  </center>
28
28
  </td>
29
- <td>{{row.uuid|codenerix}}</td>
29
+ <td>
30
+ <span codenerix-html-compile="row.uuid|codenerix:'copytoclipboard:UUID:UUID copiado al portapapales...':codenerix_inner_element">
31
+ <span class="fa fa-barcode"></span>
32
+ </span>
33
+ </td>
34
+ <td>
35
+ <span codenerix-html-compile="row.unsubscribe_url|codenerix:'link'">
36
+ </td>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: django-codenerix-email
3
- Version: 4.0.16
3
+ Version: 4.0.17
4
4
  Summary: Codenerix Email is a module that enables CODENERIX to set send emails in a general manner.
5
5
  Home-page: https://github.com/codenerix/django-codenerix-email
6
6
  Author: Juan Miguel Taboada Godoy <juanmi@juanmitaboada.com>, Juan Soler Ruiz <soleronline@gmail.com>
@@ -31,6 +31,7 @@ codenerix_email/migrations/0008_auto_20171201_0928.py
31
31
  codenerix_email/migrations/0009_emailmessage_opened_emailmessage_uuid.py
32
32
  codenerix_email/migrations/0010_emailmessage_content_subtype_and_more.py
33
33
  codenerix_email/migrations/0011_alter_emailmessage_content_subtype_and_more.py
34
+ codenerix_email/migrations/0012_emailmessage_unsubscribe_url.py
34
35
  codenerix_email/migrations/__init__.py
35
36
  codenerix_email/migrations/__pycache__/0001_initial.cpython-310.pyc
36
37
  codenerix_email/migrations/__pycache__/0001_initial.cpython-311.pyc
@@ -69,11 +70,11 @@ codenerix_email/migrations/__pycache__/0009_emailmessage_opened_emailmessage_uui
69
70
  codenerix_email/migrations/__pycache__/0010_emailmessage_content_subtype_and_more.cpython-311.pyc
70
71
  codenerix_email/migrations/__pycache__/0010_emailmessage_opened_emailmessage_uuid_and_more.cpython-311.pyc
71
72
  codenerix_email/migrations/__pycache__/0011_alter_emailmessage_content_subtype_and_more.cpython-311.pyc
73
+ codenerix_email/migrations/__pycache__/0012_emailmessage_unsubscribe_url.cpython-311.pyc
72
74
  codenerix_email/migrations/__pycache__/__init__.cpython-310.pyc
73
75
  codenerix_email/migrations/__pycache__/__init__.cpython-311.pyc
74
76
  codenerix_email/migrations/__pycache__/__init__.cpython-35.pyc
75
77
  codenerix_email/migrations/__pycache__/__init__.cpython-39.pyc
76
- codenerix_email/static/codenerix_email/partials/.emailmessages_rows.html.swp
77
78
  codenerix_email/static/codenerix_email/partials/emailmessages_rows.html
78
79
  django_codenerix_email.egg-info/PKG-INFO
79
80
  django_codenerix_email.egg-info/SOURCES.txt