summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-31 05:45:51 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-31 05:45:51 +0000
commit11044ec455bd083c4536e0fbf671efbaa9a5941d (patch)
treec57d4ccb386c50a07bf9b640714a27fe7a5cd58d
parentb4c5804654f5781993b74a5589c52ca3c0c49482 (diff)
automatic import of python-django-appmail
-rw-r--r--.gitignore1
-rw-r--r--python-django-appmail.spec469
-rw-r--r--sources1
3 files changed, 471 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..fbd8fb4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/django-appmail-4.0.tar.gz
diff --git a/python-django-appmail.spec b/python-django-appmail.spec
new file mode 100644
index 0000000..ed6c745
--- /dev/null
+++ b/python-django-appmail.spec
@@ -0,0 +1,469 @@
+%global _empty_manifest_terminate_build 0
+Name: python-django-appmail
+Version: 4.0
+Release: 1
+Summary: Django app for managing localised email templates.
+License: MIT
+URL: https://github.com/yunojuno/django-appmail
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/f8/3f/ef291b6372c1265721b8fe342b1e99b13fc8454aa967f9804f2bc04605f4/django-appmail-4.0.tar.gz
+BuildArch: noarch
+
+Requires: python3-django
+
+%description
+# Django-AppMail
+
+[![PyPI](https://img.shields.io/pypi/v/django-appmail.svg)](https://pypi.org/project/django-appmail/)
+
+Django app for managing transactional email templates.
+
+## Compatibility
+
+This project now requires Django 3.2+ and Python 3.8+. If you require a previous
+version you will have to refer to the relevant branch or tag.
+
+## Background
+
+This project arose out of a project to integrate a large transactional Django
+application with Mandrill, and the lessons learned. It also owes a minor h/t to
+this project from 2011 (https://github.com/hugorodgerbrown/AppMail).
+
+The core requirement is to provide an easy way to add / edit email templates to
+a Django project, in such a way that it doesn't require a developer to make
+changes. The easiest way to use templated emails in Django is to rely on the
+in-built template structure, but that means that the templates are held in
+files, under version control, which makes it very hard for non-developers to
+edit.
+
+This is **not** a WYSIWYG HTML editor, and it doesn't do anything clever. It
+doesn't handle the sending of the emails - it simply provides a convenient
+mechanism for storing and rendering email content.
+
+```python
+from appmail.models import EmailTemplate, AppmailMessage
+
+def send_order_confirmation(order_id):
+ order = Orders.objects.get(id=order_id)
+ template = EmailTemplate.objects.current('order_confirmation')
+ context = { "order": order }
+ message = AppmailMessage(
+ template=template,
+ context=context,
+ to=[order.recipient.email]
+ )
+ message.send()
+```
+
+The core requirements are:
+
+1. List / preview existing templates
+2. Edit subject line, plain text and HTML content
+3. Use standard Django template syntax
+4. Support base templates
+5. Template versioning
+6. Language support
+7. Send test emails
+8. Log emails sent (if desired)
+
+### Email logging (v2)
+
+From v2 on, it is possible to log all emails that are sent via
+`AppmailMessage.send`. It records the template, context and the rendered output,
+so that the email can be views as sent, and resent. It will attempt to record
+the User to whom the email was sent, as well as the email address. This is
+dependent on there being a unique 1:1 match from email to User object, but can
+prove useful in tracking emails sent to users when they change their email
+address.
+
+### Template properties
+
+Individual templates are stored as model objects in the database. The standard
+Django admin site is used to view / filter templates. The templates are ordered
+by name, language and version. This combination is unique. The language and
+version properties have sensible defaults (`version=settings.LANGUAGE_CODE` and
+`version=0`) so don't need to set if you don't require it. There is no
+inheritance or relationship between different languages and versions - they are
+stored as independent objects.
+
+```python
+# get the default order_summary email (language = settings.LANGUAGE_CODE)
+template = EmailTemplate.objects.current('order_summary')
+# get the french version
+template = EmailTemplate.objects.current('order_summary', language='fr')
+# get a specific version
+template = EmailTemplate.objects.version('order_summary', 1)
+```
+
+**Template syntax**
+
+The templates themselves use standard Django template syntax, including the use
+of tags, filters. There is nothing special about them, however there is one
+caveat - template inheritance.
+
+**Template inheritance**
+
+Although the template content is not stored on disk, without re-engineering the
+template rendering methods any parent templates must be. This is annoying, but
+there is a valid assumption behind it - if you are changing your base templates
+you are probably involving designers and developers already, so having to rely
+on a developer to make the changes is acceptable.
+
+**Sending test emails**
+
+You can send test emails to an email address through the admin list view.
+
+<img src="screenshots/appmail-test-email-action.png" alt="EmailTemplate admin
+change form" />
+
+The custom admin action 'Send test emails' will redirect to an intermediate page
+where you can enter the recipient email address and send the email:
+
+<img src="screenshots/appmail-test-email-send.png"/>
+
+There is also a linkon individual template admin pages (top-right, next to the
+history link):
+
+<img src="screenshots/appmail-template-change-form.png" alt="EmailTemplate admin
+change form" />
+
+## Tests
+
+There is a test suite for the app, which is best run through `tox`.
+
+## License
+
+MIT
+
+## Contributing
+
+Usual rules apply:
+
+1. Fork to your own account
+2. Fix the issue / add the feature
+3. Submit PR
+
+Please take care to follow the coding style - and PEP8.
+
+
+%package -n python3-django-appmail
+Summary: Django app for managing localised email templates.
+Provides: python-django-appmail
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-django-appmail
+# Django-AppMail
+
+[![PyPI](https://img.shields.io/pypi/v/django-appmail.svg)](https://pypi.org/project/django-appmail/)
+
+Django app for managing transactional email templates.
+
+## Compatibility
+
+This project now requires Django 3.2+ and Python 3.8+. If you require a previous
+version you will have to refer to the relevant branch or tag.
+
+## Background
+
+This project arose out of a project to integrate a large transactional Django
+application with Mandrill, and the lessons learned. It also owes a minor h/t to
+this project from 2011 (https://github.com/hugorodgerbrown/AppMail).
+
+The core requirement is to provide an easy way to add / edit email templates to
+a Django project, in such a way that it doesn't require a developer to make
+changes. The easiest way to use templated emails in Django is to rely on the
+in-built template structure, but that means that the templates are held in
+files, under version control, which makes it very hard for non-developers to
+edit.
+
+This is **not** a WYSIWYG HTML editor, and it doesn't do anything clever. It
+doesn't handle the sending of the emails - it simply provides a convenient
+mechanism for storing and rendering email content.
+
+```python
+from appmail.models import EmailTemplate, AppmailMessage
+
+def send_order_confirmation(order_id):
+ order = Orders.objects.get(id=order_id)
+ template = EmailTemplate.objects.current('order_confirmation')
+ context = { "order": order }
+ message = AppmailMessage(
+ template=template,
+ context=context,
+ to=[order.recipient.email]
+ )
+ message.send()
+```
+
+The core requirements are:
+
+1. List / preview existing templates
+2. Edit subject line, plain text and HTML content
+3. Use standard Django template syntax
+4. Support base templates
+5. Template versioning
+6. Language support
+7. Send test emails
+8. Log emails sent (if desired)
+
+### Email logging (v2)
+
+From v2 on, it is possible to log all emails that are sent via
+`AppmailMessage.send`. It records the template, context and the rendered output,
+so that the email can be views as sent, and resent. It will attempt to record
+the User to whom the email was sent, as well as the email address. This is
+dependent on there being a unique 1:1 match from email to User object, but can
+prove useful in tracking emails sent to users when they change their email
+address.
+
+### Template properties
+
+Individual templates are stored as model objects in the database. The standard
+Django admin site is used to view / filter templates. The templates are ordered
+by name, language and version. This combination is unique. The language and
+version properties have sensible defaults (`version=settings.LANGUAGE_CODE` and
+`version=0`) so don't need to set if you don't require it. There is no
+inheritance or relationship between different languages and versions - they are
+stored as independent objects.
+
+```python
+# get the default order_summary email (language = settings.LANGUAGE_CODE)
+template = EmailTemplate.objects.current('order_summary')
+# get the french version
+template = EmailTemplate.objects.current('order_summary', language='fr')
+# get a specific version
+template = EmailTemplate.objects.version('order_summary', 1)
+```
+
+**Template syntax**
+
+The templates themselves use standard Django template syntax, including the use
+of tags, filters. There is nothing special about them, however there is one
+caveat - template inheritance.
+
+**Template inheritance**
+
+Although the template content is not stored on disk, without re-engineering the
+template rendering methods any parent templates must be. This is annoying, but
+there is a valid assumption behind it - if you are changing your base templates
+you are probably involving designers and developers already, so having to rely
+on a developer to make the changes is acceptable.
+
+**Sending test emails**
+
+You can send test emails to an email address through the admin list view.
+
+<img src="screenshots/appmail-test-email-action.png" alt="EmailTemplate admin
+change form" />
+
+The custom admin action 'Send test emails' will redirect to an intermediate page
+where you can enter the recipient email address and send the email:
+
+<img src="screenshots/appmail-test-email-send.png"/>
+
+There is also a linkon individual template admin pages (top-right, next to the
+history link):
+
+<img src="screenshots/appmail-template-change-form.png" alt="EmailTemplate admin
+change form" />
+
+## Tests
+
+There is a test suite for the app, which is best run through `tox`.
+
+## License
+
+MIT
+
+## Contributing
+
+Usual rules apply:
+
+1. Fork to your own account
+2. Fix the issue / add the feature
+3. Submit PR
+
+Please take care to follow the coding style - and PEP8.
+
+
+%package help
+Summary: Development documents and examples for django-appmail
+Provides: python3-django-appmail-doc
+%description help
+# Django-AppMail
+
+[![PyPI](https://img.shields.io/pypi/v/django-appmail.svg)](https://pypi.org/project/django-appmail/)
+
+Django app for managing transactional email templates.
+
+## Compatibility
+
+This project now requires Django 3.2+ and Python 3.8+. If you require a previous
+version you will have to refer to the relevant branch or tag.
+
+## Background
+
+This project arose out of a project to integrate a large transactional Django
+application with Mandrill, and the lessons learned. It also owes a minor h/t to
+this project from 2011 (https://github.com/hugorodgerbrown/AppMail).
+
+The core requirement is to provide an easy way to add / edit email templates to
+a Django project, in such a way that it doesn't require a developer to make
+changes. The easiest way to use templated emails in Django is to rely on the
+in-built template structure, but that means that the templates are held in
+files, under version control, which makes it very hard for non-developers to
+edit.
+
+This is **not** a WYSIWYG HTML editor, and it doesn't do anything clever. It
+doesn't handle the sending of the emails - it simply provides a convenient
+mechanism for storing and rendering email content.
+
+```python
+from appmail.models import EmailTemplate, AppmailMessage
+
+def send_order_confirmation(order_id):
+ order = Orders.objects.get(id=order_id)
+ template = EmailTemplate.objects.current('order_confirmation')
+ context = { "order": order }
+ message = AppmailMessage(
+ template=template,
+ context=context,
+ to=[order.recipient.email]
+ )
+ message.send()
+```
+
+The core requirements are:
+
+1. List / preview existing templates
+2. Edit subject line, plain text and HTML content
+3. Use standard Django template syntax
+4. Support base templates
+5. Template versioning
+6. Language support
+7. Send test emails
+8. Log emails sent (if desired)
+
+### Email logging (v2)
+
+From v2 on, it is possible to log all emails that are sent via
+`AppmailMessage.send`. It records the template, context and the rendered output,
+so that the email can be views as sent, and resent. It will attempt to record
+the User to whom the email was sent, as well as the email address. This is
+dependent on there being a unique 1:1 match from email to User object, but can
+prove useful in tracking emails sent to users when they change their email
+address.
+
+### Template properties
+
+Individual templates are stored as model objects in the database. The standard
+Django admin site is used to view / filter templates. The templates are ordered
+by name, language and version. This combination is unique. The language and
+version properties have sensible defaults (`version=settings.LANGUAGE_CODE` and
+`version=0`) so don't need to set if you don't require it. There is no
+inheritance or relationship between different languages and versions - they are
+stored as independent objects.
+
+```python
+# get the default order_summary email (language = settings.LANGUAGE_CODE)
+template = EmailTemplate.objects.current('order_summary')
+# get the french version
+template = EmailTemplate.objects.current('order_summary', language='fr')
+# get a specific version
+template = EmailTemplate.objects.version('order_summary', 1)
+```
+
+**Template syntax**
+
+The templates themselves use standard Django template syntax, including the use
+of tags, filters. There is nothing special about them, however there is one
+caveat - template inheritance.
+
+**Template inheritance**
+
+Although the template content is not stored on disk, without re-engineering the
+template rendering methods any parent templates must be. This is annoying, but
+there is a valid assumption behind it - if you are changing your base templates
+you are probably involving designers and developers already, so having to rely
+on a developer to make the changes is acceptable.
+
+**Sending test emails**
+
+You can send test emails to an email address through the admin list view.
+
+<img src="screenshots/appmail-test-email-action.png" alt="EmailTemplate admin
+change form" />
+
+The custom admin action 'Send test emails' will redirect to an intermediate page
+where you can enter the recipient email address and send the email:
+
+<img src="screenshots/appmail-test-email-send.png"/>
+
+There is also a linkon individual template admin pages (top-right, next to the
+history link):
+
+<img src="screenshots/appmail-template-change-form.png" alt="EmailTemplate admin
+change form" />
+
+## Tests
+
+There is a test suite for the app, which is best run through `tox`.
+
+## License
+
+MIT
+
+## Contributing
+
+Usual rules apply:
+
+1. Fork to your own account
+2. Fix the issue / add the feature
+3. Submit PR
+
+Please take care to follow the coding style - and PEP8.
+
+
+%prep
+%autosetup -n django-appmail-4.0
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-django-appmail -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Wed May 31 2023 Python_Bot <Python_Bot@openeuler.org> - 4.0-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..5f230ca
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+73e84464b11a658827dfeef6fe949cb5 django-appmail-4.0.tar.gz