diff --git a/archivist/apps/user/admin.py b/archivist/apps/user/admin.py index 8c38f3f..809b54f 100644 --- a/archivist/apps/user/admin.py +++ b/archivist/apps/user/admin.py @@ -1,3 +1,11 @@ from django.contrib import admin +from .models import UserProfile + # Register your models here. + +class UserProfileAdmin(admin.ModelAdmin): + list_display = ('user', 'show_mature') + + +admin.site.register(UserProfile, UserProfileAdmin) diff --git a/archivist/apps/user/apps.py b/archivist/apps/user/apps.py index 72b1401..afd80ba 100644 --- a/archivist/apps/user/apps.py +++ b/archivist/apps/user/apps.py @@ -3,4 +3,4 @@ from django.apps import AppConfig class UsersConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' - name = 'users' + name = 'apps.user' diff --git a/archivist/apps/user/migrations/0001_initial.py b/archivist/apps/user/migrations/0001_initial.py new file mode 100644 index 0000000..5af4dc1 --- /dev/null +++ b/archivist/apps/user/migrations/0001_initial.py @@ -0,0 +1,34 @@ +# Generated by Django 4.1.1 on 2023-11-01 14:43 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('furaffinity', '0001_initial'), + ('auth', '0012_alter_user_first_name_max_length'), + ] + + operations = [ + migrations.CreateModel( + name='UserProfile', + fields=[ + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to=settings.AUTH_USER_MODEL)), + ('show_mature', models.CharField(choices=[('H', 'Hide'), ('B', 'Blur'), ('S', 'Show')], default='H', max_length=2)), + ], + ), + migrations.CreateModel( + name='SeenPost', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('timestamp', models.DateTimeField(auto_now_add=True)), + ('post', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='furaffinity.fa_submission')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='user.userprofile')), + ], + ), + ] diff --git a/archivist/apps/user/models.py b/archivist/apps/user/models.py index 71a8362..17dbad8 100644 --- a/archivist/apps/user/models.py +++ b/archivist/apps/user/models.py @@ -1,3 +1,37 @@ from django.db import models +from django.contrib.auth.models import User -# Create your models here. +from django.db.models.signals import post_save +from django.dispatch import receiver + + +from sites.furaffinity.models import FA_Submission + +class UserProfile(models.Model): + + MATURE = [ + ("H", "Hide"), + ("B", "Blur"), + ("S", "Show"), + ] + + user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True, unique=True) + show_mature = models.CharField(max_length=2, choices=MATURE, default=MATURE[0][0]) + + +class SeenPost(models.Model): + user = models.ForeignKey(UserProfile, on_delete=models.CASCADE) + post = models.ForeignKey(FA_Submission, on_delete=models.CASCADE) + timestamp = models.DateTimeField(auto_now_add=True) + + +#receiver(post_save, sender=User) +#def create_user_profile(sender, instance, created, **kwargs): +# if created: +# UserProfile.objects.create(user=instance) + +#@receiver(post_save, sender=User) +#def save_user_profile(sender, instance, **kwargs): +# instance.user.save() + + \ No newline at end of file