diff --git a/.gitignore b/.gitignore index e4f7286..00519d0 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ *.sqlite* _build build +.idea/* diff --git a/eav/migrations/0001_initial.py b/eav/migrations/0001_initial.py new file mode 100644 index 0000000..859bf39 --- /dev/null +++ b/eav/migrations/0001_initial.py @@ -0,0 +1,92 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.manager +import datetime +import eav.fields +import django.contrib.sites.managers + + +class Migration(migrations.Migration): + + dependencies = [ + ('contenttypes', '0002_remove_content_type_name'), + ('sites', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='Attribute', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(help_text='User-friendly attribute name', max_length=100, verbose_name='name')), + ('slug', eav.fields.EavSlugField(help_text='Short unique attribute label', verbose_name='slug')), + ('description', models.CharField(help_text='Short description', max_length=256, null=True, verbose_name='description', blank=True)), + ('type', models.CharField(max_length=20, null=True, verbose_name='type', blank=True)), + ('datatype', eav.fields.EavDatatypeField(max_length=6, verbose_name='data type', choices=[(b'text', 'Text'), (b'float', 'Float'), (b'int', 'Integer'), (b'date', 'Date'), (b'bool', 'True / False'), (b'object', 'Django Object'), (b'enum', 'Multiple Choice')])), + ('created', models.DateTimeField(default=datetime.datetime.now, verbose_name='created', editable=False)), + ('modified', models.DateTimeField(auto_now=True, verbose_name='modified')), + ('required', models.BooleanField(default=False, verbose_name='required')), + ], + options={ + 'ordering': ['name'], + }, + managers=[ + ('objects', django.db.models.manager.Manager()), + ('on_site', django.contrib.sites.managers.CurrentSiteManager()), + ], + ), + migrations.CreateModel( + name='EnumGroup', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(unique=True, max_length=100, verbose_name='name')), + ], + ), + migrations.CreateModel( + name='EnumValue', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('value', models.CharField(unique=True, max_length=50, verbose_name='value', db_index=True)), + ], + ), + migrations.CreateModel( + name='Value', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('entity_id', models.IntegerField()), + ('value_text', models.TextField(null=True, blank=True)), + ('value_float', models.FloatField(null=True, blank=True)), + ('value_int', models.IntegerField(null=True, blank=True)), + ('value_date', models.DateTimeField(null=True, blank=True)), + ('value_bool', models.NullBooleanField()), + ('generic_value_id', models.IntegerField(null=True, blank=True)), + ('created', models.DateTimeField(default=datetime.datetime.now, verbose_name='created')), + ('modified', models.DateTimeField(auto_now=True, verbose_name='modified')), + ('attribute', models.ForeignKey(verbose_name='attribute', to='eav.Attribute')), + ('entity_ct', models.ForeignKey(related_name='value_entities', to='contenttypes.ContentType')), + ('generic_value_ct', models.ForeignKey(related_name='value_values', blank=True, to='contenttypes.ContentType', null=True)), + ('value_enum', models.ForeignKey(related_name='eav_values', blank=True, to='eav.EnumValue', null=True)), + ], + ), + migrations.AddField( + model_name='enumgroup', + name='enums', + field=models.ManyToManyField(to='eav.EnumValue', verbose_name='enum group'), + ), + migrations.AddField( + model_name='attribute', + name='enum_group', + field=models.ForeignKey(verbose_name='choice group', blank=True, to='eav.EnumGroup', null=True), + ), + migrations.AddField( + model_name='attribute', + name='site', + field=models.ForeignKey(default=1, verbose_name='site', to='sites.Site'), + ), + migrations.AlterUniqueTogether( + name='attribute', + unique_together=set([('site', 'slug')]), + ), + ] diff --git a/eav/migrations/0002_auto_20160405_0906.py b/eav/migrations/0002_auto_20160405_0906.py new file mode 100644 index 0000000..53bb107 --- /dev/null +++ b/eav/migrations/0002_auto_20160405_0906.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations, models +import django.utils.timezone + + +class Migration(migrations.Migration): + + dependencies = [ + ('eav', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='attribute', + name='created', + field=models.DateTimeField(default=django.utils.timezone.now, verbose_name='created', editable=False), + ), + migrations.AlterField( + model_name='value', + name='created', + field=models.DateTimeField(default=django.utils.timezone.now, verbose_name='created'), + ), + ] diff --git a/eav/migrations/__init__.py b/eav/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/eav/models.py b/eav/models.py index 1544567..aeb86b1 100644 --- a/eav/models.py +++ b/eav/models.py @@ -32,8 +32,7 @@ Classes ------- ''' - -from datetime import datetime +from django.utils import timezone from django.db import models from django.core.exceptions import ValidationError @@ -177,7 +176,7 @@ class Meta: help_text=_(u"User-friendly attribute name")) site = models.ForeignKey(Site, verbose_name=_(u"site"), - default=Site.objects.get_current) + default=settings.SITE_ID) slug = EavSlugField(_(u"slug"), max_length=50, db_index=True, help_text=_(u"Short unique attribute label")) @@ -198,7 +197,7 @@ def help_text(self): datatype = EavDatatypeField(_(u"data type"), max_length=6, choices=DATATYPE_CHOICES) - created = models.DateTimeField(_(u"created"), default=datetime.now, + created = models.DateTimeField(_(u"created"), default=timezone.now, editable=False) modified = models.DateTimeField(_(u"modified"), auto_now=True) @@ -354,7 +353,7 @@ class Value(models.Model): value_object = generic.GenericForeignKey(ct_field='generic_value_ct', fk_field='generic_value_id') - created = models.DateTimeField(_(u"created"), default=datetime.now) + created = models.DateTimeField(_(u"created"), default=timezone.now) modified = models.DateTimeField(_(u"modified"), auto_now=True) attribute = models.ForeignKey(Attribute, db_index=True,