{ "info": { "author": "Fidel Ramos Sa\u00c3\u00b1udo", "author_email": "framos@yaco.es", "bugtrack_url": null, "classifiers": [], "description": ".. contents::\n\n================================\nBoletin, a Django newsletter app\n================================\n\nBoletin is a generic newsletter application for Django projects, which allows\nfor automatically generating and sending newsletters, with optional human\nreviewing process if so desired.\n\nBoletin means \"bulletin\" or \"newsletter\" in Spanish.\n\n\nFeatures\n========\n\n * Complete subscription/desubscription process, with confirmation emails.\n\n * Completely decoupled, no need to modify your own code to use it, only\n ``settings.py`` and redefine templates as needed.\n\n * Newsletters in HTML and plain text in the same email.\n\n * Three different periods: daily, weekly and monthly newsletters, easily\n configurable.\n\n * Integrated with Django's admin.\n\n * Optional reviewing process (in the admin).\n\n * Cron scripts included.\n\n * Unit tests included.\n\n\nInstallation\n============\n\n 1. Include ``boletin`` in ``settings.INSTALLED_APPS``.\n\n 2. Create DB tables with ``python manage.py syncdb``.\n\n 3. Configure settings (see `Configuration`_ section).\n\n 4. Install cron scripts in the system's cron installation for automated\n newsletter creation and (optionally) automated sending.\n See \"Cron configuration\" below for more information.\n\n\nConfiguration\n=============\n\nYou can configure many aspects of the behavior of the application via\nsettings variables. Mandatory variables are marked with (*).\n\n\nNEWSLETTER_EMAIL (*)\n--------------------\n\nEmail address from where to send the newsletter. Newsletter recipients\nwill see this address in the e-mail message \"From\" field.\n\nDefault: None, it's mandatory.\n\nExample::\n\n NEWSLETTER_EMAIL = 'newsletter@example.com'\n\n\nNEWSLETTER_REVIEWER_EMAIL\n-------------------------\n\nEmail address for the newsletter reviewer. When a newsletter is generated,\nan e-mail will be sent to this address prompting to the revision of the\nnewsletter.\n\nDefault: None.\n\nExample::\n\n NEWSLETTER_REVIEWER_EMAIL = 'reviewer@example.com'\n\n\nNEWSLETTER_REVIEWER_ADMIN_LINK\n------------------------------\n\nRelative URL suffix for newsletter objects in the admin application. The site\ndomain and the newsletter id will be, respectively, prepended and appended to\nthis string. This setting is optional; if not defined, the e-mail message to\nthe reviewer will not include a link to the admin application.\n\nDefault: None.\n\nExample::\n\n NEWSLETTER_REVIEWER_ADMIN_LINK = '/admin/boletin/newsletter/'\n\nNEWSLETTER_GENERATOR_FUNCTION (*)\n---------------------------------\n\nThis variable is a string pointing to a function inside the project which\nwill be responsible for retrieving content for inclusion in each newsletter.\n\nThe function must receive two parameters: ``from_date`` and ``to_date``, which define\nthe datetime range of the newsletter being created.\n\nDefault: None, it's mandatory.\n\nExample::\n\n NEWSLETTER_GENERATOR_FUNCTION = 'portal.newsletter.generate_content'\n\nAnd the content of portal/newsletter.py::\n\n from app1.models import FooModel\n from app2.models import BarModel\n\n def generate_content(from_date, to_date):\n app1 = FooModel.objects.filter(date__gte=from_date, date__lte=to_date)\n app2 = BarModel.objects.filter(date__gte=from_date, date__lte=to_date)\n return {'app1': app1, 'app2': app2}\n\n\nNEWSLETTER_PERIODS\n------------------\nAvailable newsletter periods in the project. It's a list with one or more of\n'D' (daily), 'W' (weekly) and 'M' (monthly).\n\nDefault: ``['W']`` (only weekly newsletter)\n\nExample::\n\n NEWSLETTER_PERIODS = ['D', 'W', 'M'] # daily, weekly and monthly newsletters\n\n\nManagement commands\n===================\n\nThree management commands are included:\n\n * ``createnewsletter``\n\n * ``sendnewsletter``\n\n * ``shownewsletter``\n\nCreatenewsletter\n----------------\n\nGenerate a new newsletter for the given period (daily, weekly or monthly), both\nin HTML and plain text. It renders the `templates`_ ``newsletter_email.html``\nand ``newsletter_email.txt``.\n\nOptions:\n\n * ``-d``, ``--daily``: daily period.\n\n * ``-w``, ``--weekly``: weekly period.\n\n * ``-m``, ``--monthly``: monthly period.\n\n * ``-p``, ``--print``: print the created newsletter to stdout.\n\n * ``-r``, ``--regenerate``: create the newsletter again if it already exists.\n\nOne and only one of ``-d``, ``-w`` or ``-m`` must be given.\n\nSendnewsletter\n--------------\n\nSend newsletters to subscribers.\n\nOptions:\n\n * ``-n``, ``--newsletter``: send only the newsletter with the given ID.\n\n * ``-f``, ``--force-unreviewed``: send unreviewed newsletters.\n\nWithout parameters all **reviewed** newsletters with pending sendings are\nsent. Use the ``-f`` switch to send unreviewed newsletters (useful for a\ncompletely automatic newsletter system). Use the ``-n`` switch to send an\nspecific newsletter. The `shownewsletters`_ command should be useful to see\ncreated newsletters, their IDs and pending statuses.\n\nShownewsletters\n---------------\n\nShow stored newsletters, with their object ID (*different than their newsletter\nnumber*) and pending status.\n\nOptions:\n\n * ``-p``, ``--only-pending``: show only newsletters with pending sendings.\n\nTemplates\n=========\n\nDefault templates are provided for the subscription and unsubscription process,\nbut you should redefine at least ``newsletter_email.txt`` and\n``newsletter_email.html``. You can redefine any template creating a newsletter\ndir inside your templates directory, copying the app template inside it and\nchanging that copy.\n\nThe available templates are:\n\n * ``newsletter_base.html``: base template for the subscription and\n unsubscription process, except email templates.\n\n * ``newsletter_confirm_email.txt``: email template for confirming subscription.\n\n * ``newsletter_confirm.html``: page telling the user the subscription\n confirmation email has been sent to her email address.\n\n * ``newsletter_email.html``: email template of a newsletter in email format.\n You should redefine this depending on the context returned by the\n ``NEWSLETTER_GENERATOR_FUNCTION``.\n\n * ``newsletter_email.txt``: same as newsletter_email.html, but in plain text.\n\n * ``newsletter.html``: subscription/unsubscription form.\n\n * ``newsletter_success.html``: subscription success page.\n\n * ``newsletter_unsubscription_confirm_email.txt``: same as\n newsletter_confirm_email, but for unsubscription.\n\n * ``newsletter_unsubscription_confirm.html``: same as newsletter_confirm,\n but for unsubscription.\n\n * ``newsletter_unsubscription_success.html``: same as newsletter_success,\n but for unsubscription.\n\nCron configuration\n==================\n\nThere are several crontab files inside the ``cron`` directory that you can\nsimply include in your system-wide cron configuration to have automatic\nnewsletter creation and/or sending. The ``createnewsletter`` and\n``sendnewsletter`` commands are smart enough to ignore petitions for unallowed\nperiods (i.e. not configured in `NEWSLETTER_PERIODS`_).\n\nDevelopment\n===========\n\nYou can get the last bleeding edge version of boletin by doing a checkout of\ntrunk in its subversion repository::\n\n svn checkout https://svnpub.yaco.es/djangoapps/boletin/trunk boletin\n\nBug reports, patches and suggestions are more than welcome. Just put\nthem in our Trac system and use the 'boletin' component when you fill\ntickets::\n\n https://tracpub.yaco.es/djangoapps/\n\n\nChanges\n=======\n\n0.5.1 (2009-05-20)\n------------------\n- Fixed several bugs that rendered the application unusable. They all came from\nthe fact that the application changed name just before release, and some imports\nwere left unchanged.\n\n0.5.0 (2009-05-18)\n------------------\n- Initial release", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://tracpub.yaco.es/djangoapps/wiki/Boletin", "keywords": "django newsletter", "license": "LGPL v3", "maintainer": null, "maintainer_email": null, "name": "boletin", "package_url": "https://pypi.org/project/boletin/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/boletin/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://tracpub.yaco.es/djangoapps/wiki/Boletin" }, "release_url": "https://pypi.org/project/boletin/0.5.1/", "requires_dist": null, "requires_python": null, "summary": "Newsletter generation and sending application for Django", "version": "0.5.1" }, "last_serial": 786958, "releases": { "0.5": [ { "comment_text": "", "digests": { "md5": "ada677f02f9824285c9f5e63574a5c93", "sha256": "703bef247498a3740a25f1ce8d62eaa1211f3165a148df7c40ca3ee70840721b" }, "downloads": -1, "filename": "boletin-0.5.tar.gz", "has_sig": false, "md5_digest": "ada677f02f9824285c9f5e63574a5c93", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22673, "upload_time": "2009-05-18T18:03:36", "url": "https://files.pythonhosted.org/packages/f2/9e/905c929d0a3d7aba4fd7e6276214bfc1f7520cee311ddcb71ee1575cb803/boletin-0.5.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "64c6d6787e5ede9994e7ffe3437f6f64", "sha256": "6e9ae92d1a5c487c1116f72b26198ca518281ca45088bc8cc7763ae372e923be" }, "downloads": -1, "filename": "boletin-0.5.1.tar.gz", "has_sig": false, "md5_digest": "64c6d6787e5ede9994e7ffe3437f6f64", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23280, "upload_time": "2009-05-20T17:22:16", "url": "https://files.pythonhosted.org/packages/7d/2d/05f0667481a40b7947a75f0931e9768050bbb6ce6220a0fa1222c7e8d2a3/boletin-0.5.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "64c6d6787e5ede9994e7ffe3437f6f64", "sha256": "6e9ae92d1a5c487c1116f72b26198ca518281ca45088bc8cc7763ae372e923be" }, "downloads": -1, "filename": "boletin-0.5.1.tar.gz", "has_sig": false, "md5_digest": "64c6d6787e5ede9994e7ffe3437f6f64", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23280, "upload_time": "2009-05-20T17:22:16", "url": "https://files.pythonhosted.org/packages/7d/2d/05f0667481a40b7947a75f0931e9768050bbb6ce6220a0fa1222c7e8d2a3/boletin-0.5.1.tar.gz" } ] }