New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

dj-chart

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dj-chart

Create Charts with the awesome Chart.js Library

  • 1.1.10
  • PyPI
  • Socket score

Maintainers
1

============================= dj_chart

.. image:: https://badge.fury.io/py/dj_chart.png :target: https://badge.fury.io/py/dj_chart

The goal of dj_chart is generate charts with the awesome Chart.js <http://www.chartjs.org/>_ library.

Requirements

::

Django 1.9

Quickstart

Install dj_auth::

pip install dj_chart

Put dj_auth into your INSTALLED_APPS at settings module::

INSTALLED_APPS = (
   ...
   'dj_chart',
)

TEMPLATES = [
    {'BACKEND': 'django.template.backends.django.DjangoTemplates',
     'DIRS': (your dirs, ),
     'APP_DIRS': True,
     'OPTIONS': { },
     },
]

======== Features

ChartMixin

You can use this Mixin for example with a Templateview or also ListView::

from django.views.generic import TemplateView

from dj_chart.views import ChartMixin

from .models import Fruits

class YourView(ChartMixin, Templateview):

    chart_title_show = True
    chart_title = u"Your Chart Title"
    chart_types_available = [PIE, DOUGHNUT]
    show_grid = False

    def get_chart_data(self):
        # populate self.chart_data
        # Apples
        self.chart_data['labels'].append("Apple")
        self.chart_data['datasets'][0]['backgroundColor'].append("rgb(0,148,63)")
        self.chart_data['datasets'][0]['data'].append(Fruits.filter(fruit_type=1).count())
        # Pear
        self.chart_data['labels'].append(Pear")
        self.chart_data['datasets'][0]['backgroundColor'].append("rgb(222,6,19)")
        self.chart_data['datasets'][0]['data'].append(Fruits.filter(fruit_type=2).count())
        # Banana
        self.chart_data['labels'].append("Banana")
        self.chart_data['datasets'][0]['backgroundColor'].append("rgb(187,187,187)")
        self.chart_data['datasets'][0]['data'].append(Fruits.filter(fruit_type=3).count())

    def get_context_data(self, **kwargs):
        context = super(YourView, self).get_context_data(**kwargs)
        context = self.set_chart_context(context)
        return context

Example with Dates on the x-axis::

from django.db import models
from django.views.generic import TemplateView

from dj_chart.constants import MONTH
from dj_chart.views import ChartMixin

class Category(models.Model):
    description models.CharField(max_length=100, verbose_name='Decscription')

class Person(models.Model):
    first_name = models.CharField(max_length=100, verbose_name='Firstname')
    last_name = models.CharField(max_length=100, verbose_name='Lastname')
    birthday = models.DateField(verbose_name=_(u'Birthday'))
    category = models.ForeignKey(Category, verbose_name=_(u'Category'))

class ChartPie(ChartMixin, TemplateView):

    chart_title_show = True
    chart_title = u"My Chart"
    chart_types_available = [PIE, DOUGHNUT, BAR]
    show_grid = False
    x_axis = MONTH
    steps = 6

    def get_chart_data(self):
        if self.queryset:
            self.set_labels_and_filter_values_for_xaxes(steps=self.steps, type=self.x_axis)

            for label in self.chart_data['labels']:
                self.label_urls[label] = {}
            self.chart_data['datasets'] = []
            for record in self.queryset:
                qs = Person.objects.filter(category=record)
                for i in range(1, len(self.filter_values)):
                    data.append(qs.filter(birthday__gte=self.filter_values[i - 1], birthday__lt=self.filter_values[i]).count())
                    self.label_urls["%s" % self.chart_data['labels'][i]]["%s" % record.description] = {"url": "%s" % reverse('your-url')}

    def get_context_data(self, **kwargs):
        context = super(ChartPie, self).get_context_data(**kwargs)
        self.queryset = Category.objects.all()
        context = self.write_chart_to_context(context)
        return context

==== Todo

  • Python 3

Running Tests

Does the code actually work?

::

source <YOURVIRTUALENV>/bin/activate
(myenv) $ pip install -r requirements_test.txt
(myenv) $ coverage run --source=dj_auth runtests.py && coverage html

Credits

Tools used in rendering this package:

  • Cookiecutter_
  • cookiecutter-djangopackage_

.. _Cookiecutter: https://github.com/audreyr/cookiecutter .. _cookiecutter-djangopackage: https://github.com/pydanny/cookiecutter-djangopackage

History

0.1.0 (2016-10-05) ++++++++++++++++++

  • First release

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc