All Projects → saadmk11 → Django Newsfeed

saadmk11 / Django Newsfeed

Licence: gpl-3.0
A news curator and newsletter subscription package for Django

Programming Languages

python
139335 projects - #7 most used programming language
python3
1442 projects

Projects that are alternatives of or similar to Django Newsfeed

Django Campaign
Newsletter management app for Django
Stars: ✭ 50 (-67.74%)
Mutual labels:  django, newsletter
Pyarweb
El sitio web de Python Argentina
Stars: ✭ 73 (-52.9%)
Mutual labels:  django, django-framework
Thinkdiff
My open source project links, programming and software development related code and tutorials are in this repo. Content types: Python, JavaScript, Dart | Django, React, Flutter, React-Native etc.
Stars: ✭ 65 (-58.06%)
Mutual labels:  django, django-framework
E Commerce 2 django
Guest register, user register, user login, user logout, account home page, product view history, change password, reset password, change name, send activation email when register, resend activation email, add shipping address, add billing address, add nickname to the addresses, edit shipping address, edit billing address, view list of your addresses, reuse shipping addresses when order products, reuse billing addresses when ordeer products, show sales analytics if staff or admin only using -chart.js-, get analytics data with Ajax, receive marketing email, change if user will receive marketing email or not by admin, send contact message with Ajax, products list, product detail, download product detail as a PDF file, download digital product files -if the user purchased that digital product only-, orders list, list of digital products files, order detail, download order detail as a PDF file, verify order ownership with Ajax -to secure order detail page-, show cart products, add or remove product from cart, checkout page, thanks page when order placed successfully, add or reuse payment method, add or reuse payment method with Ajax, search products by title, search products by description, search products by price, search products by tag title, write tags for products -by admin only-, auto fill contact email, full name if user logged in.
Stars: ✭ 20 (-87.1%)
Mutual labels:  django, django-framework
Django Jinja Knockout
Django datatables and widgets, both AJAX and traditional. Display-only ModelForms. ModelForms / inline formsets with AJAX submit and validation. Works with Django templates.
Stars: ✭ 116 (-25.16%)
Mutual labels:  django, django-framework
Guides
Guides for learning + doing better web and app development. Created by Coding for Entrepreneurs.
Stars: ✭ 1,042 (+572.26%)
Mutual labels:  django, django-framework
Django Webpacker
A django compressor tool that bundles css, js files to a single css, js file with webpack and updates your html files with respective css, js file path.
Stars: ✭ 69 (-55.48%)
Mutual labels:  django, package
Xreader
XML, NEWS, RSS & Scrapping Reader maked in Xamarin, for educational purpose.
Stars: ✭ 259 (+67.1%)
Mutual labels:  news, newsletter
Banking System
A banking System Created Using Django Python Web Framework
Stars: ✭ 105 (-32.26%)
Mutual labels:  django, django-framework
Django Notifications
GitHub notifications alike app for Django
Stars: ✭ 1,237 (+698.06%)
Mutual labels:  django, package
Django Newsletter
An email newsletter application for the Django web application framework, including an extended admin interface, web (un)subscription, dynamic e-mail templates, an archive and HTML email support.
Stars: ✭ 605 (+290.32%)
Mutual labels:  django, newsletter
Django Dersleri
YouTube Django Dersleri için proje kaynak kodu
Stars: ✭ 135 (-12.9%)
Mutual labels:  django, django-framework
Wtfjht
Logging the daily shock and awe in national politics. Read in moderation.
Stars: ✭ 386 (+149.03%)
Mutual labels:  news, newsletter
Spirit
Spirit is a modern Python based forum built on top of Django framework
Stars: ✭ 1,045 (+574.19%)
Mutual labels:  django, django-framework
Swiftweekly.github.io
A community-driven weekly newsletter about Swift.org
Stars: ✭ 305 (+96.77%)
Mutual labels:  news, newsletter
Awesome Django Cn
Django 优秀资源大全。
Stars: ✭ 1,153 (+643.87%)
Mutual labels:  django, django-framework
golangflow
GolangFlow.io Website
Stars: ✭ 37 (-76.13%)
Mutual labels:  package, news
Django Ledger
A bookkeeping & financial analysis engine for the Django Framework. UNDER ACTIVE DEVELOPMENT & NOT STABLE YET.
Stars: ✭ 253 (+63.23%)
Mutual labels:  django, django-framework
Awesome Django
Repository mirror of GitLab: https://gitlab.com/rosarior/awesome-django This repository is not monitored for issues, use original at GitLab.
Stars: ✭ 8,527 (+5401.29%)
Mutual labels:  django, django-framework
Django Business Logic
Visual DSL framework for django
Stars: ✭ 134 (-13.55%)
Mutual labels:  django, django-framework

django-newsfeed

.. image:: https://badge.fury.io/py/django-newsfeed.svg :target: https://badge.fury.io/py/django-newsfeed

.. image:: https://travis-ci.com/saadmk11/django-newsfeed.svg?branch=master :target: https://travis-ci.com/saadmk11/django-newsfeed

.. image:: https://codecov.io/gh/saadmk11/django-newsfeed/branch/master/graph/badge.svg :target: https://codecov.io/gh/saadmk11/django-newsfeed

.. image:: https://github.com/saadmk11/django-newsfeed/workflows/Changelog%20CI/badge.svg :target: https://github.com/saadmk11/changelog-ci

What is django-newsfeed?

django-newsfeed is a news curator and newsletter subscription package for django. It can be used to create a news curator website which sends newsletters to their subscribers also it can be used to add a news subscription section to your website.

Features

  • Create monthly, weekly or daily issues with draft issue support.
  • Create posts with different categories.
  • Archive and display all of the issues in your website.
  • Newsletter e-mail subscription (ajax support) with e-mail verification.
  • Newsletter e-mail unsubscription (ajax support).
  • Sending newsletters for each issue to all the subscribers.
  • Fully customizable templates.
  • Uses Django's internal tools for sending email.
  • Efficient mass mailing support.

Requirements

  • Python: 3.6, 3.7, 3.8, 3.9
  • Django: 2.2, 3.0, 3.1

Example Project

You can view the example project for this package here_. This is a news-curator and newsletter subscription application that only uses this package. It also uses celery, celery-beat and redis to send email newsletters in the background. The styles in the example project uses bootstrap.

.. _here: https://github.com/saadmk11/test-django-newsfeed

Documentation

Installation

Install django-newsfeed using pip:

.. code-block:: sh

pip install django-newsfeed

Then add newsfeed to your INSTALLED_APPS:

.. code-block:: python

INSTALLED_APPS = [
    ...
    'newsfeed',
]

Then add newsfeed to your projects urls.py:

.. code-block:: python

urlpatterns = [
    ...
    path('newsfeed/', include('newsfeed.urls', namespace='newsfeed')),
    ...
]

Usage

Available views

We provide these views out of the box:

  • latest_issue: newsfeed/
  • issue_list: newsfeed/issues/
  • issue_detail: newsfeed/issues/<slug:issue_number>/
  • newsletter_subscribe: newsfeed/subscribe/
  • newsletter_subscription_confirm: newsfeed/subscribe/confirm/<uuid:token>/
  • newsletter_unsubscribe: newsfeed/unsubscribe/

Templates

The basic templates are provided for all the views and emails with django-newsfeed. You can override the templates to add your own design.

Just add newsfeed directory inside your templates directory add templates with the same name as the showed tree below. more on template overriding on the django docs_

.. _django docs: https://docs.djangoproject.com/en/3.1/howto/overriding-templates/

Template Tree for django-newfeed:

.. code-block::

templates
    └── newsfeed
        ├── base.html
        ├── email
        │     ├── email_verification.html
        │     ├── email_verification_subject.txt
        │     ├── email_verification.txt
        │     └── newsletter_email.html
        ├── issue_detail.html
        ├── issue_list.html
        ├── issue_posts.html
        ├── latest_issue.html
        ├── messages.html
        ├── newsletter_subscribe.html
        ├── newsletter_subscription_confirm.html
        ├── newsletter_unsubscribe.html
        └── subscription_form.html

Subscription confirmation Email

We send subscription confirmation email to the new subscribers. you can override these template to change the styles:

.. code-block::

templates
    └── newsfeed
        ├── email
        │     ├── email_verification.html
        │     ├── email_verification_subject.txt
        │     ├── email_verification.txt

Admin Actions

These actions are available from the admin panel:

  • publish issues: The selected issues will be published.
  • mark issues as draft: The selected issues will be marked as draft.
  • hide posts: The selected posts will be hidden from the issues.
  • make posts visible: The selected posts will visible on the issues.
  • send newsletters: Sends selected newsletters to all the subscribers. (send newsletters action should be overridden to use a background task queue. See the example project_ to see an example using celery)

Send Email Newsletter

We provide a class to handle sending email newsletters to the subscribers. We do not provide any background task queue by default. But it is fairly easy to set it up.

See the example project_ to see an example using celery and celery-beat.

You can override this template to change the style of the newsletter:

.. code-block::

templates
    └── newsfeed
        ├── email
        │     └── newsletter_email.html

.. _example project: https://github.com/saadmk11/test-django-newsfeed

Settings Configuration

The below settings are available for django-newsfeed. Add these settings to your projects settings.py as required.

NEWSFEED_SITE_BASE_URL

  • default: http://127.0.0.1:8000 (your sites URL)
  • required: True

This settings is required. You need to add your websites URL here in production. This is used to generate confirmation URL and unsubscribe URL for the emails.

NEWSFEED_EMAIL_CONFIRMATION_EXPIRE_DAYS

  • default: 3 (after number of days confirmation link expires)
  • required: False

This settings tells django-newsfeed to expire the confirmation link in specified number of days.

NEWSFEED_EMAIL_BATCH_SIZE

  • default: 0 (number of emails per batch)
  • required: False

This settings is helpful when there are a lot of subscribers. This settings tells django-newsfeed to send the specified number of emails per batch. if its zero (0) then all of the emails will be sent together.

NEWSFEED_EMAIL_BATCH_WAIT

  • default: 0 (in seconds)
  • required: False

This settings tells django-newsfeed how long it should wait between each batch of newsletter email sent.

NEWSFEED_SUBSCRIPTION_REDIRECT_URL

  • default: /newsfeed/issues/
  • required: False

This is only required if you are not using ajax request on the subscription form. The JavaScript code for ajax is included with django-newsfeed and on by default.

NEWSFEED_UNSUBSCRIPTION_REDIRECT_URL

  • default: /newsfeed/issues/
  • required: False

This is only required if you are not using ajax request on the unsubscription form. The JavaScript code for ajax is included with django-newsfeed and on by default.

Signals

django-newsfeed sends several signals for various actions. You can add receivers to listen to the signals and add your own functionality after each signal is sent. To learn more about signals refer to django Signals Documentation_.

.. _Signals Documentation: https://docs.djangoproject.com/en/3.1/topics/signals/

Subscriber Signals

  • newsfeed.signals.email_verification_sent(instance) Sent after email verification is sent, with Subscriber instance.

  • newsfeed.signals.subscribed(instance) Sent after subscription is confirmed, with Subscriber instance.

  • newsfeed.signals.unsubscribed(instance) Sent after unsubscription is successful, with Subscriber instance.

Contribute

See CONTRIBUTING.rst <https://github.com/saadmk11/django-newsfeed/blob/master/CONTRIBUTING.rst>_ for information about contributing to django-newsfeed.

License

The code in this project is released under the GNU General Public License v3.0_

.. _GNU General Public License v3.0: https://github.com/saadmk11/django-newsfeed/blob/master/LICENSE

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].