django-codenerix-email 4.0.26__py2.py3-none-any.whl → 4.0.27__py2.py3-none-any.whl

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.
@@ -1,4 +1,4 @@
1
- __version__ = "4.0.26"
1
+ __version__ = "4.0.27"
2
2
 
3
3
  __authors__ = [
4
4
  "Juan Miguel Taboada Godoy <juanmi@juanmitaboada.com>",
@@ -18,13 +18,15 @@
18
18
  # See the License for the specific language governing permissions and
19
19
  # limitations under the License.
20
20
 
21
+ import json
21
22
 
22
23
  from django.core.management.base import BaseCommand
23
24
  from django.conf import settings
24
25
 
25
26
  from codenerix_lib.debugger import Debugger
26
- from codenerix_email.models import EmailMessage
27
+ from codenerix_email.models import EmailMessage, EmailTemplate # type: ignore
27
28
  from codenerix_email import __version__
29
+ from django.core.management import CommandError
28
30
 
29
31
 
30
32
  class Command(BaseCommand, Debugger):
@@ -32,28 +34,127 @@ class Command(BaseCommand, Debugger):
32
34
  # Show this when the user types help
33
35
  help = "Test"
34
36
 
37
+ def add_arguments(self, parser):
38
+ parser.add_argument(
39
+ "--email",
40
+ type=str,
41
+ help="Email",
42
+ default=None,
43
+ )
44
+ parser.add_argument(
45
+ "--template",
46
+ type=str,
47
+ help="Template CID",
48
+ default=None,
49
+ )
50
+ parser.add_argument(
51
+ "--context",
52
+ type=str,
53
+ help="Context as JSON",
54
+ default="{}",
55
+ )
56
+ parser.add_argument(
57
+ "--language",
58
+ type=str,
59
+ help="Language",
60
+ default=None,
61
+ )
62
+ parser.add_argument(
63
+ "--stdout",
64
+ action="store_true",
65
+ help="Print to stdout",
66
+ default=False,
67
+ )
68
+
35
69
  def handle(self, *args, **options):
36
70
 
37
71
  # Autoconfigure Debugger
38
72
  self.set_name("CODENERIX-EMAIL")
39
73
  self.set_debug()
40
74
 
41
- message = """Hello,
75
+ # Get arguments
76
+ email = options["email"]
77
+ template = options["template"]
78
+ context_str = options["context"]
79
+ language = options["language"]
80
+ stdout = options["stdout"]
81
+
82
+ # Read context
83
+ try:
84
+ context = json.loads(context_str)
85
+ except json.JSONDecodeError:
86
+ raise CommandError(
87
+ "Context is not a valid JSON string: {}".format(context_str)
88
+ )
89
+
90
+ # If no template is provided, use the default one
91
+ if template is None:
92
+
93
+ # Get the default template
94
+ message = """Hello,
42
95
 
43
- this email has been sent using Django Codenerix Email.
96
+ This email has been sent using Django Codenerix Email.
44
97
 
45
98
  Best regards, Codenerix Team
46
99
 
47
100
  --
48
- Django Codenerix Email v{}""".format(
49
- __version__
50
- )
101
+ Django Codenerix Email v{}
102
+ """.format(
103
+ __version__
104
+ )
105
+
106
+ def email_message_factory(context, language):
107
+ email_message = EmailMessage()
108
+ email_message.subject = "[Codenerix Email] Test"
109
+ email_message.body = message
110
+ return email_message
111
+
112
+ else:
113
+ # Get the template
114
+ try:
115
+ template = EmailTemplate.objects.get(cid=template)
116
+ except EmailTemplate.DoesNotExist:
117
+ raise CommandError(
118
+ "Template with CID {} does not exist.".format(template)
119
+ )
120
+
121
+ # Render the template
122
+ def email_message_factory(context, language):
123
+ return template.get_email(context, language)
51
124
 
52
- for name, email in settings.ADMINS:
53
- email_message = EmailMessage()
125
+ # If no email is provided, send to all admins
126
+ if email is None:
127
+
128
+ # Send email to all admins
129
+ for name, email in settings.ADMINS:
130
+ email_message = email_message_factory(context, language)
131
+ email_message.efrom = settings.DEFAULT_FROM_EMAIL
132
+ email_message.eto = email
133
+
134
+ if stdout:
135
+ self.debug(
136
+ f"Sending email to {name} <{email}> "
137
+ f"with subject: {email_message.subject}:\n"
138
+ f"{email_message.body}",
139
+ color="white",
140
+ )
141
+ else:
142
+ email_message.save()
143
+ email_message.send(legacy=False, silent=False)
144
+ else:
145
+
146
+ # Send email to the specified address
147
+ email_message = email_message_factory(context, language)
54
148
  email_message.efrom = settings.DEFAULT_FROM_EMAIL
55
149
  email_message.eto = email
56
- email_message.subject = "[Codenerix Email] Test"
57
- email_message.body = message
58
- email_message.save()
59
- email_message.send(legacy=False, silent=False)
150
+
151
+ if stdout:
152
+ self.debug(
153
+ f"Sending email to {name} <{email}> "
154
+ f"with subject: {email_message.subject}:\n"
155
+ f"{email_message.body}",
156
+ color="white",
157
+ )
158
+ else:
159
+ email_message.save()
160
+ email_message.send(legacy=False, silent=False)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: django-codenerix-email
3
- Version: 4.0.26
3
+ Version: 4.0.27
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
- codenerix_email/__init__.py,sha256=M3A78yUx3AaCW46s7jU8eN9xu7YwE9kC-6q3ed2m4Ow,149
1
+ codenerix_email/__init__.py,sha256=lJFGKNuqEeONLo_21wtxE2SCLAzhMSW63KBb_ejg_zM,149
2
2
  codenerix_email/admin.py,sha256=o3b-MaD7xsWeta0yfU9YNeKBmHQIcmHqXmP2t-hrrWc,1208
3
3
  codenerix_email/apps.py,sha256=WXqu1XQibDDyCvvQYt2JbTK4GIpW8BNv5DCbRJS2mmk,149
4
4
  codenerix_email/forms.py,sha256=oVI58ZfDPr2aoA41xPS8yeU5H_JsYXwiEzWVMMnxM7A,4187
@@ -13,11 +13,11 @@ codenerix_email/management/__pycache__/__init__.cpython-35.pyc,sha256=sBoEWs6zdI
13
13
  codenerix_email/management/__pycache__/__init__.cpython-39.pyc,sha256=uPXklfliVd3b8pLOJQT9ZeKcqmJMrGychvt68BsPulY,168
14
14
  codenerix_email/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
15
  codenerix_email/management/commands/send_emails.py,sha256=hotzGEkuDILwKgZgHFOaSCeAZDIyoPcM7VDs3Z-5Vvg,7950
16
- codenerix_email/management/commands/test_email.py,sha256=MfVTF9YGBw_cqBm3cHMCyUbp58jJ8fidzW7hA_e7IEA,1688
16
+ codenerix_email/management/commands/test_email.py,sha256=KT_4LDbyZO2IvQ48K0kfl3follpuTFd_XCDTG5iSy20,4879
17
17
  codenerix_email/management/commands/__pycache__/__init__.cpython-310.pyc,sha256=3-VfdLuaiBIg4KTIy7GETYTt2-AbfCU0vlH6fFZx7_M,189
18
18
  codenerix_email/management/commands/__pycache__/__init__.cpython-311.pyc,sha256=yiqmtIhQMYXWx7g7XT-mvQNgGu_X2ymasWvVxIqPsBE,211
19
19
  codenerix_email/management/commands/__pycache__/send_emails.cpython-311.pyc,sha256=xh2ontFVtLWHZOoVf1YJrNbBNPtIyV2KQEk5Bf6mY_c,6884
20
- codenerix_email/management/commands/__pycache__/test_email.cpython-310.pyc,sha256=a5WztN9QeGbv4AlIf6XC1PtEXwbrW9cIFsljjTt3lA8,1227
20
+ codenerix_email/management/commands/__pycache__/test_email.cpython-310.pyc,sha256=-2DpLF-9XSPkDBh_16YAHzzAzQ5Or64m4-Qft-nIAPQ,2799
21
21
  codenerix_email/migrations/0001_initial.py,sha256=Rp6noz8vjtGi4f4qc2w_es_VV9PmO7WvVfv666mu9xE,3511
22
22
  codenerix_email/migrations/0002_auto_20170502_1043.py,sha256=-zoc4RuZFXJA1Fw8ECCVqAg-PYfku3yxdtYNyXPI3LM,2369
23
23
  codenerix_email/migrations/0003_auto_20170921_1206.py,sha256=ncVdyZJ616vQpllGdaPbFS0n9qKfDP-TuVA5HkbPf4I,656
@@ -81,8 +81,8 @@ codenerix_email/migrations/__pycache__/__init__.cpython-311.pyc,sha256=RbbUUEhcJ
81
81
  codenerix_email/migrations/__pycache__/__init__.cpython-35.pyc,sha256=2g70xiMW6oJNkIpRM-0Dr5h7AUac-3xyCXPONxp9BBw,147
82
82
  codenerix_email/migrations/__pycache__/__init__.cpython-39.pyc,sha256=qNj2NH0YvoWPnCKxkVZPsEFsbM05y7t1njMskNISdVQ,168
83
83
  codenerix_email/static/codenerix_email/partials/emailmessages_rows.html,sha256=U0YDiFe-JaHri0VFv84jNbpbjgQXX0BVkg66FQybanw,2135
84
- django_codenerix_email-4.0.26.dist-info/LICENSE,sha256=IXMIpi75XsrJt1Sznt4EftT9c_4X0C9eqK4tHhH8H48,11339
85
- django_codenerix_email-4.0.26.dist-info/METADATA,sha256=p6d2Du2CBK8kLVK2L25JTpGpjNijnEdb0JR4oz3eC7c,2640
86
- django_codenerix_email-4.0.26.dist-info/WHEEL,sha256=z9j0xAa_JmUKMpmz72K0ZGALSM_n-wQVmGbleXx2VHg,110
87
- django_codenerix_email-4.0.26.dist-info/top_level.txt,sha256=lljSA0iKE_UBEM5gIrGQwioC_i8Jjnp-aR1LFElENgw,16
88
- django_codenerix_email-4.0.26.dist-info/RECORD,,
84
+ django_codenerix_email-4.0.27.dist-info/LICENSE,sha256=IXMIpi75XsrJt1Sznt4EftT9c_4X0C9eqK4tHhH8H48,11339
85
+ django_codenerix_email-4.0.27.dist-info/METADATA,sha256=qJtWeEBrwURlmWCB7WtnVaghrePCvr62mxY1Wz35d_k,2640
86
+ django_codenerix_email-4.0.27.dist-info/WHEEL,sha256=z9j0xAa_JmUKMpmz72K0ZGALSM_n-wQVmGbleXx2VHg,110
87
+ django_codenerix_email-4.0.27.dist-info/top_level.txt,sha256=lljSA0iKE_UBEM5gIrGQwioC_i8Jjnp-aR1LFElENgw,16
88
+ django_codenerix_email-4.0.27.dist-info/RECORD,,