[mirrorbrain-commits] [mod_stats] r53 - in /trunk/downloadstats: ./ stats/

From: <poeml_at_mirrorbrain.org>
Date: Tue, 15 Dec 2009 00:01:56 -0000
Author: poeml
Date: Tue Dec 15 01:01:56 2009
New Revision: 53

URL: http://svn.mirrorbrain.org/viewvc/mod_stats?rev=53&view=rev
Log:
add a little Django app with a database scheme that tools/dlcount.py can save data to

Added:
    trunk/downloadstats/   (with props)
    trunk/downloadstats/__init__.py
    trunk/downloadstats/manage.py   (with props)
    trunk/downloadstats/settings.py
    trunk/downloadstats/stats/
    trunk/downloadstats/stats/__init__.py
    trunk/downloadstats/stats/admin.py
    trunk/downloadstats/stats/models.py
    trunk/downloadstats/stats/views.py
    trunk/downloadstats/urls.py

Added: trunk/downloadstats/__init__.py
URL: http://svn.mirrorbrain.org/viewvc/mod_stats/trunk/downloadstats/__init__.py?rev=53&view=auto
==============================================================================
    (empty)

Added: trunk/downloadstats/manage.py
URL: http://svn.mirrorbrain.org/viewvc/mod_stats/trunk/downloadstats/manage.py?rev=53&view=auto
==============================================================================
--- trunk/downloadstats/manage.py (added)
+++ trunk/downloadstats/manage.py Tue Dec 15 01:01:56 2009
@@ -1,0 +1,11 @@
+#!/usr/bin/env python
+from django.core.management import execute_manager
+try:
+    import settings # Assumed to be in the same directory.
+except ImportError:
+    import sys
+    sys.stderr.write("Error: Can't find the file 'settings.py' in the directory containing %r. It appears you've customized things.\nYou'll have to run django-admin.py, passing it your settings module.\n(If the file settings.py does indeed exist, it's causing an ImportError somehow.)\n" % __file__)
+    sys.exit(1)
+
+if __name__ == "__main__":
+    execute_manager(settings)

Added: trunk/downloadstats/settings.py
URL: http://svn.mirrorbrain.org/viewvc/mod_stats/trunk/downloadstats/settings.py?rev=53&view=auto
==============================================================================
--- trunk/downloadstats/settings.py (added)
+++ trunk/downloadstats/settings.py Tue Dec 15 01:01:56 2009
@@ -1,0 +1,81 @@
+# Django settings for downloadstats project.
+
+DEBUG = True
+TEMPLATE_DEBUG = DEBUG
+
+ADMINS = (
+    # ('Your Name', 'your_email_at_domain.com'),
+)
+
+MANAGERS = ADMINS
+
+DATABASE_ENGINE = 'sqlite3'           # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
+DATABASE_NAME = 'sqlite3.db'             # Or path to database file if using sqlite3.
+DATABASE_USER = ''             # Not used with sqlite3.
+DATABASE_PASSWORD = ''         # Not used with sqlite3.
+DATABASE_HOST = ''             # Set to empty string for localhost. Not used with sqlite3.
+DATABASE_PORT = ''             # Set to empty string for default. Not used with sqlite3.
+
+# Local time zone for this installation. Choices can be found here:
+# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
+# although not all choices may be available on all operating systems.
+# If running in a Windows environment this must be set to the same as your
+# system time zone.
+TIME_ZONE = 'America/Chicago'
+
+# Language code for this installation. All choices can be found here:
+# http://www.i18nguy.com/unicode/language-identifiers.html
+LANGUAGE_CODE = 'en-us'
+
+SITE_ID = 1
+
+# If you set this to False, Django will make some optimizations so as not
+# to load the internationalization machinery.
+USE_I18N = True
+
+# Absolute path to the directory that holds media.
+# Example: "/home/media/media.lawrence.com/"
+MEDIA_ROOT = ''
+
+# URL that handles the media served from MEDIA_ROOT. Make sure to use a
+# trailing slash if there is a path component (optional in other cases).
+# Examples: "http://media.lawrence.com", "http://example.com/media/"
+MEDIA_URL = ''
+
+# URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a
+# trailing slash.
+# Examples: "http://foo.com/media/", "/media/".
+ADMIN_MEDIA_PREFIX = '/media/'
+
+# Make this unique, and don't share it with anybody.
+SECRET_KEY = 'fq!(-m$39vb(t_n=s!c-z1(m%^xf338kaj)02f&(ha&l950bx&'
+
+# List of callables that know how to import templates from various sources.
+TEMPLATE_LOADERS = (
+    'django.template.loaders.filesystem.load_template_source',
+    'django.template.loaders.app_directories.load_template_source',
+#     'django.template.loaders.eggs.load_template_source',
+)
+
+MIDDLEWARE_CLASSES = (
+    'django.middleware.common.CommonMiddleware',
+    'django.contrib.sessions.middleware.SessionMiddleware',
+    'django.contrib.auth.middleware.AuthenticationMiddleware',
+)
+
+ROOT_URLCONF = 'downloadstats.urls'
+
+TEMPLATE_DIRS = (
+    # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
+    # Always use forward slashes, even on Windows.
+    # Don't forget to use absolute paths, not relative paths.
+)
+
+INSTALLED_APPS = (
+    'django.contrib.auth',
+    'django.contrib.contenttypes',
+    'django.contrib.sessions',
+    'django.contrib.sites',
+    'django.contrib.admin',
+    'downloadstats.stats',
+)

Added: trunk/downloadstats/stats/__init__.py
URL: http://svn.mirrorbrain.org/viewvc/mod_stats/trunk/downloadstats/stats/__init__.py?rev=53&view=auto
==============================================================================
    (empty)

Added: trunk/downloadstats/stats/admin.py
URL: http://svn.mirrorbrain.org/viewvc/mod_stats/trunk/downloadstats/stats/admin.py?rev=53&view=auto
==============================================================================
--- trunk/downloadstats/stats/admin.py (added)
+++ trunk/downloadstats/stats/admin.py Tue Dec 15 01:01:56 2009
@@ -1,0 +1,15 @@
+from django.contrib import admin
+
+from downloadstats.stats.models import Counter
+
+
+class CounterAdmin(admin.ModelAdmin):
+
+    list_display = ('product', 'osname', 'version', 'lang', 'country', 'date', 'count')
+    ordering = ('product', 'osname', 'version', 'lang', 'country')
+
+    search_fields = ('product', 'osname')
+    list_filter = ('date', 'product', 'osname', 'version', 'lang', 'country')
+
+admin.site.register(Counter, CounterAdmin)
+

Added: trunk/downloadstats/stats/models.py
URL: http://svn.mirrorbrain.org/viewvc/mod_stats/trunk/downloadstats/stats/models.py?rev=53&view=auto
==============================================================================
--- trunk/downloadstats/stats/models.py (added)
+++ trunk/downloadstats/stats/models.py Tue Dec 15 01:01:56 2009
@@ -1,0 +1,28 @@
+from django.db import models
+
+
+class Counter(models.Model):
+
+    # I'm undecided whether to settle for a "normal" date field, or optimize as
+    # described in the proposal.
+    #year = models.PositiveSmallIntegerField()
+    #day = models.PositiveSmallIntegerField()
+    date = models.DateField()
+    
+    product = models.CharField(max_length=512)
+
+    # all these should probably called attr1, attr2, attr3, ...
+    osname = models.CharField(max_length=512)
+    version = models.CharField(max_length=32)
+    lang = models.CharField(max_length=32)
+    country = models.CharField(max_length=2)
+
+    count = models.IntegerField(default=1)
+
+    def __unicode__(self):
+        return u'%s / %s / %s / %s / %s' % (self.product, 
+                                        self.osname,
+                                        self.version,
+                                        self.lang,
+                                        self.country)
+

Added: trunk/downloadstats/stats/views.py
URL: http://svn.mirrorbrain.org/viewvc/mod_stats/trunk/downloadstats/stats/views.py?rev=53&view=auto
==============================================================================
--- trunk/downloadstats/stats/views.py (added)
+++ trunk/downloadstats/stats/views.py Tue Dec 15 01:01:56 2009
@@ -1,0 +1,1 @@
+# Create your views here.

Added: trunk/downloadstats/urls.py
URL: http://svn.mirrorbrain.org/viewvc/mod_stats/trunk/downloadstats/urls.py?rev=53&view=auto
==============================================================================
--- trunk/downloadstats/urls.py (added)
+++ trunk/downloadstats/urls.py Tue Dec 15 01:01:56 2009
@@ -1,0 +1,17 @@
+from django.conf.urls.defaults import *
+
+# Uncomment the next two lines to enable the admin:
+from django.contrib import admin
+admin.autodiscover()
+
+urlpatterns = patterns('',
+    # Example:
+    # (r'^downloadstats/', include('downloadstats.foo.urls')),
+
+    # Uncomment the admin/doc line below and add 'django.contrib.admindocs' 
+    # to INSTALLED_APPS to enable admin documentation:
+    # (r'^admin/doc/', include('django.contrib.admindocs.urls')),
+
+    # Uncomment the next line to enable the admin:
+    (r'^admin/(.*)', admin.site.root),
+)




_______________________________________________
mirrorbrain-commits mailing list
Archive: http://mirrorbrain.org/archive/mirrorbrain-commits/

Note: To remove yourself from this list, send a mail with the content
 	unsubscribe
to the address mirrorbrain-commits-request_at_mirrorbrain.org
Received on Tue Dec 15 2009 - 00:01:57 GMT

This archive was generated by hypermail 2.2.0 : Tue Dec 15 2009 - 15:20:04 GMT