diff --git a/ivatar/ivataraccount/migrations/0011_auto_20181107_1550.py b/ivatar/ivataraccount/migrations/0011_auto_20181107_1550.py new file mode 100644 index 0000000..eae27d0 --- /dev/null +++ b/ivatar/ivataraccount/migrations/0011_auto_20181107_1550.py @@ -0,0 +1,23 @@ +# Generated by Django 2.1.3 on 2018-11-07 15:50 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('ivataraccount', '0010_auto_20180705_1201'), + ] + + operations = [ + migrations.AddField( + model_name='photo', + name='access_count', + field=models.BigIntegerField(default=0, editable=False), + ), + migrations.AlterField( + model_name='userpreference', + name='theme', + field=models.CharField(choices=[('default', 'Default theme'), ('clime', 'climes theme'), ('falko', 'falkos theme')], default='default', max_length=10), + ), + ] diff --git a/ivatar/ivataraccount/migrations/0012_auto_20181107_1732.py b/ivatar/ivataraccount/migrations/0012_auto_20181107_1732.py new file mode 100644 index 0000000..d7c7949 --- /dev/null +++ b/ivatar/ivataraccount/migrations/0012_auto_20181107_1732.py @@ -0,0 +1,23 @@ +# Generated by Django 2.1.3 on 2018-11-07 17:32 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('ivataraccount', '0011_auto_20181107_1550'), + ] + + operations = [ + migrations.AddField( + model_name='confirmedemail', + name='access_count', + field=models.BigIntegerField(default=0, editable=False), + ), + migrations.AddField( + model_name='confirmedopenid', + name='access_count', + field=models.BigIntegerField(default=0, editable=False), + ), + ] diff --git a/ivatar/ivataraccount/models.py b/ivatar/ivataraccount/models.py index 1e1d62f..ca1c823 100644 --- a/ivatar/ivataraccount/models.py +++ b/ivatar/ivataraccount/models.py @@ -114,6 +114,7 @@ class Photo(BaseAccountModel): ip_address = models.GenericIPAddressField(unpack_ipv4=True) data = models.BinaryField() format = models.CharField(max_length=3) + access_count = models.BigIntegerField(default=0, editable=False) class Meta: # pylint: disable=too-few-public-methods ''' @@ -304,6 +305,7 @@ class ConfirmedEmail(BaseAccountModel): digest = models.CharField(max_length=32) digest_sha256 = models.CharField(max_length=64) objects = ConfirmedEmailManager() + access_count = models.BigIntegerField(default=0, editable=False) class Meta: # pylint: disable=too-few-public-methods ''' @@ -419,6 +421,7 @@ class ConfirmedOpenId(BaseAccountModel): on_delete=models.deletion.SET_NULL, ) digest = models.CharField(max_length=64) + access_count = models.BigIntegerField(default=0, editable=False) class Meta: # pylint: disable=too-few-public-methods ''' diff --git a/ivatar/ivataraccount/templates/profile.html b/ivatar/ivataraccount/templates/profile.html index e4f91c7..31b6c52 100644 --- a/ivatar/ivataraccount/templates/profile.html +++ b/ivatar/ivataraccount/templates/profile.html @@ -55,7 +55,7 @@ outline: inherit;
- +
@@ -71,7 +71,7 @@ outline: inherit;
- +
@@ -119,7 +119,7 @@ outline: inherit;
- +
diff --git a/ivatar/views.py b/ivatar/views.py index 96d03fb..56223aa 100644 --- a/ivatar/views.py +++ b/ivatar/views.py @@ -136,7 +136,10 @@ class AvatarImageView(TemplateView): data = BytesIO() photodata.save(data, pil_format(imgformat), quality=JPEG_QUALITY) data.seek(0) - + obj.photo.access_count += 1 + obj.photo.save() + obj.access_count += 1 + obj.save() return HttpResponse( data, content_type='image/%s' % imgformat)