=======================
Django Admin Timestamps
=======================

Show human readable created/modified dates and/or times in the
``django.contrib.admin`` changelist for models that track the
moment of creation and updates.

Usage
=====

First you will need to have a model that tracks the moment of creation and
modification. The barebones example for that is::

    from django.db import models

    class TimestampedItem(models.Model):
        created = models.DateTimeField('created', auto_now_add=True)
        modified = models.DateTimeField('modified', auto_now=True)

Or, if you are using `django-extensions
<http://packages.python.org/django-extensions/>`_::

    from django_extensions.db.models import TimeStampedModel

    class TimestampedItem(TimeStampedModel):
        pass

Now it's time to register this model with Django's admin site.

Create a admin class, just like you'd usually do, but make it extend
``TimestampedAdminMixin`` as well as any other base admin class you use::

    from django.contrib import admin
    from models import TimestampedItem
    from admintimestamps import TimestampedAdminMixin

    class TimestampedAdmin(TimestampedAdminMixin, admin.ModelAdmin):
        pass

    admin.site.register(TimestampedItem, TimestampedAdmin)

That's it!

.. image:: https://bitbucket.org/jaap3/django-admin-timestamps/raw/tip/img/screenshot.png

Configuration
=============

If the names of you timestamp fields aren't ``created`` and ``modified``
but for example ``created_at`` and ``modified_at`` you'll need to do a tiny
bit of configuration in the model admin class::

    class TimestampedAdmin(TimestampedAdminMixin, admin.ModelAdmin):
        timestamp_fields = ('created_at', 'modified_at')

You can also use the timestamp_fields tuple to only show one field by
only specifying the field you want to show::

    class TimestampedAdmin(TimestampedAdminMixin, admin.ModelAdmin):
        timestamp_fields = ('modified',)
