Commit c9cfd621fb2d3897dbc1c04853c31206d5cd456f

Authored by Luan
1 parent 9e1ebd5f

Adding badger to project

src/badger/__init__.py 0 → 100644
src/badger/admin.py 0 → 100644
... ... @@ -0,0 +1,10 @@
  1 +from django.contrib import admin
  2 +
  3 +from .models import Badge
  4 +
  5 +
  6 +class BadgeAdmin(admin.ModelAdmin):
  7 + pass
  8 +
  9 +
  10 +admin.site.register(Badge, BadgeAdmin)
... ...
src/badger/migrations/0001_initial.py 0 → 100644
... ... @@ -0,0 +1,100 @@
  1 +# -*- coding: utf-8 -*-
  2 +import datetime
  3 +from south.db import db
  4 +from south.v2 import SchemaMigration
  5 +from django.db import models
  6 +
  7 +
  8 +class Migration(SchemaMigration):
  9 +
  10 + def forwards(self, orm):
  11 + # Adding model 'Badge'
  12 + db.create_table(u'badger_badge', (
  13 + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
  14 + ('title', self.gf('django.db.models.fields.CharField')(max_length=200)),
  15 + ('description', self.gf('django.db.models.fields.CharField')(max_length=200)),
  16 + ('image', self.gf('django.db.models.fields.files.ImageField')(max_length=100)),
  17 + ('type', self.gf('django.db.models.fields.CharField')(max_length=200)),
  18 + ('user_attr', self.gf('django.db.models.fields.CharField')(max_length=100, null=True, blank=True)),
  19 + ('comparison', self.gf('django.db.models.fields.CharField')(max_length=10, null=True, blank=True)),
  20 + ('value', self.gf('django.db.models.fields.PositiveSmallIntegerField')(null=True, blank=True)),
  21 + ))
  22 + db.send_create_signal(u'badger', ['Badge'])
  23 +
  24 + # Adding M2M table for field awardees on 'Badge'
  25 + m2m_table_name = db.shorten_name(u'badger_badge_awardees')
  26 + db.create_table(m2m_table_name, (
  27 + ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
  28 + ('badge', models.ForeignKey(orm[u'badger.badge'], null=False)),
  29 + ('user', models.ForeignKey(orm[u'accounts.user'], null=False))
  30 + ))
  31 + db.create_unique(m2m_table_name, ['badge_id', 'user_id'])
  32 +
  33 +
  34 + def backwards(self, orm):
  35 + # Deleting model 'Badge'
  36 + db.delete_table(u'badger_badge')
  37 +
  38 + # Removing M2M table for field awardees on 'Badge'
  39 + db.delete_table(db.shorten_name(u'badger_badge_awardees'))
  40 +
  41 +
  42 + models = {
  43 + u'accounts.user': {
  44 + 'Meta': {'object_name': 'User'},
  45 + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
  46 + 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75', 'blank': 'True'}),
  47 + 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
  48 + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
  49 + 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
  50 + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}),
  51 + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
  52 + 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
  53 + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
  54 + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
  55 + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
  56 + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
  57 + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
  58 + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
  59 + 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
  60 + 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
  61 + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}),
  62 + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}),
  63 + 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}),
  64 + 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True', 'blank': 'True'})
  65 + },
  66 + u'auth.group': {
  67 + 'Meta': {'object_name': 'Group'},
  68 + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
  69 + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
  70 + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
  71 + },
  72 + u'auth.permission': {
  73 + 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'},
  74 + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
  75 + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}),
  76 + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
  77 + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
  78 + },
  79 + u'badger.badge': {
  80 + 'Meta': {'object_name': 'Badge'},
  81 + 'awardees': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['accounts.User']", 'null': 'True', 'blank': 'True'}),
  82 + 'comparison': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
  83 + 'description': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
  84 + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
  85 + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100'}),
  86 + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
  87 + 'type': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
  88 + 'user_attr': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
  89 + 'value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'})
  90 + },
  91 + u'contenttypes.contenttype': {
  92 + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
  93 + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
  94 + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
  95 + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
  96 + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
  97 + }
  98 + }
  99 +
  100 + complete_apps = ['badger']
0 101 \ No newline at end of file
... ...
src/badger/migrations/__init__.py 0 → 100644
src/badger/models.py 0 → 100644
... ... @@ -0,0 +1,63 @@
  1 +# -*- coding: utf-8 -*-
  2 +
  3 +from django.contrib.auth import get_user_model
  4 +from django.db import models
  5 +from django.utils.translation import ugettext as _
  6 +
  7 +
  8 +class Badge(models.Model):
  9 + COMPARISON_CHOICES = (
  10 + (u'gte', _(u'Greater than or equal')),
  11 + (u'lte', _(u'less than or equal')),
  12 + (u'equal', _(u'Equal')),
  13 + )
  14 + TYPE_CHOICES = (
  15 + (u'auto', _(u'Automatically')),
  16 + (u'manual', _(u'Manual')),
  17 + )
  18 + USER_ATTR_CHOICES = (
  19 + (u'messages', _(u'Messages')),
  20 + (u'contributions', _(u'Contributions')),
  21 + (u'wikis', _(u'Wikis')),
  22 + (u'codes', _(u'Codes')),
  23 + (u'tickets', _(u'Ticket')),
  24 + )
  25 + title = models.CharField(_(u'Title'), max_length=200)
  26 + description = models.CharField(_(u'Description'), max_length=200)
  27 + image = models.ImageField(upload_to=u'badges')
  28 + type = models.CharField(_(u'Type'), max_length=200, choices=TYPE_CHOICES)
  29 + user_attr = models.CharField(
  30 + _(u'User attribute'),max_length=100,
  31 + choices=USER_ATTR_CHOICES,
  32 + blank=True,
  33 + null=True,
  34 + )
  35 + comparison = models.CharField(
  36 + _(u'Comparison'),
  37 + max_length=10,
  38 + choices=COMPARISON_CHOICES,
  39 + blank=True,
  40 + null=True
  41 + )
  42 + value = models.PositiveSmallIntegerField(
  43 + _(u'Value'),
  44 + blank=True,
  45 + null=True
  46 + )
  47 + awardees = models.ManyToManyField(
  48 + get_user_model(),
  49 + verbose_name=_(u'Awardees'),
  50 + blank=True,
  51 + null=True
  52 + )
  53 +
  54 + class Meta:
  55 + verbose_name = _(u'Badge')
  56 + verbose_name_plural = _(u'Badges')
  57 +
  58 + def __unicode__(self):
  59 + return u'{} ({}, {})'.format(
  60 + self.title,
  61 + self.get_user_attr_display(),
  62 + self.get_type_display(),
  63 + )
... ...
src/badger/tests.py 0 → 100644
... ... @@ -0,0 +1,3 @@
  1 +from django.test import TestCase
  2 +
  3 +# Create your tests here.
... ...
src/badger/views.py 0 → 100644
... ... @@ -0,0 +1,3 @@
  1 +from django.shortcuts import render
  2 +
  3 +# Create your views here.
... ...
src/colab/custom_settings.py
... ... @@ -108,6 +108,7 @@ INSTALLED_APPS = INSTALLED_APPS + (
108 108 'conversejs',
109 109 'haystack',
110 110 'hitcounter',
  111 + 'badger',
111 112  
112 113 # Own apps
113 114 'super_archives',
... ...