This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

Keep track of creation, update and hiding of models

Installation

This was developed using:

  • Django 1.7
  • Python 3.4

I cannot guarantee it will work for anything older than that, but it probably works for later versions.

Install the latest official release using pip:

pip install django-trufflehog

You can install the latest development version using pip:

pip install git+git://github.com/jleeothon/trufflehog/

Usage

Warning. Until release of version 1.0, API is bound to change.

Models

There are two Model subclasses that you can mix into your models: DateTraceable and Hideable. The former adds two datetime fields to the model: created and updated.

To include either or both in a model, mix-in these classes like this:

# models.py

from django.db import models
from django.db.models import Model
from trufflehog, import DateTracreable, Hideable

class HappyHog(DateTraceable, Hideable, Model):
    name = models.CharField(max_length=100)
    happiness = models.IntegerField()

Given there exists happy_hog = HappyHog(name="Moccus"), check the datetime of creation and edition with happy_hog.created and happy_hog.updated.

When checking whether or not a model is hidden, happy_hog.hidden will return the datetime of deletion and can be used as a boolean test. If a boolean variable is strictly necessary, you could use happy_hog.is_hidden.

Managers

Add a manager to peek into only hidden or only visible model instances:

# models.py

import trufflehog

class HappyHog(DateTraceable, Hideable, Model):
    # some fields here

    hidden_objects = trufflehog.VisibilityManager(visible=False)
    visible_objects = trufflehog.VisibilityManager(visible=True)

But if you want to override the default objects manager:

objects = trufflehog.VisibilityManager(visible=True)

You can also create your own custom managers by mixing-in VisibilityManagerMixin:

# mymanagers.py

from django.db import models
import trufflehog.managers

class SuperHappyHogManager(trufflehog.managers.VisibilityManagerMixin, models.Manager):
    def get_queryset(self):
        """
        Only queries on hogs whose happiness is over 9000.
        """
        q = super(HappyHogManager, self).get_queryset()
        q = q.filter(happiness__gt=9000)
        return q

Thanks

Well, thanks. At least for reading this. Also, if you file an issue or contribute to this repository, have my thanks beforehand. Any good or bad ideas or comments are appreciated.

Release History

Release History

0.3.0

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
django-trufflehog-0.3.0.tar.gz (4.1 kB) Copy SHA256 Checksum SHA256 Source Mar 28, 2015

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting