Skip to content

Commit

Permalink
That seems to be good
Browse files Browse the repository at this point in the history
  • Loading branch information
ineshbose committed Nov 9, 2021
1 parent 471dd74 commit 78d6e9e
Show file tree
Hide file tree
Showing 3 changed files with 90 additions and 7 deletions.
34 changes: 32 additions & 2 deletions src/backend/main/admin.py
Expand Up @@ -4,6 +4,14 @@
from . import models


class TrackItemInline(admin.TabularInline):
model = models.TrackItem


class LogItemInline(admin.TabularInline):
model = models.UserLog


@admin.register(models.User)
class MainUserAdmin(UserAdmin):
fieldsets = (
Expand All @@ -21,8 +29,30 @@ class MainUserAdmin(UserAdmin):
'fields': ('email', 'password1', 'password2'),
}),
)
list_display = ('email', 'first_name', 'last_name', 'is_staff')
list_display = ('email', 'first_name', 'last_name', 'age', 'is_staff')
list_filter = ('is_staff', 'is_superuser', 'is_active', 'groups')
search_fields = ('first_name', 'last_name', 'email')
ordering = ('email',)
ordering = ('id',)
filter_horizontal = ('groups', 'user_permissions',)
inlines = [
TrackItemInline,
]


@admin.register(models.PortionItem)
class BasicModelAdmin(admin.ModelAdmin):
list_display = ('name', 'is_default')
list_filter = ('is_default',)
search_fields = ('name',)
ordering = ('id',)


@admin.register(models.TrackItem)
class TrackItemAdmin(admin.ModelAdmin):
list_display = ('item', 'user', 'target', 'order', 'frequency')
list_filter = ('target',)
search_fields = ('item__name', 'user__email', 'user__first_name', 'user__last_name')
ordering = ('id',)
inlines = [
LogItemInline,
]
53 changes: 53 additions & 0 deletions src/backend/main/migrations/0002_portionitem_trackitem_userlog.py
@@ -0,0 +1,53 @@
# Generated by Django 3.2.8 on 2021-11-09 19:07

from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone


class Migration(migrations.Migration):

dependencies = [
('main', '0001_initial'),
]

operations = [
migrations.CreateModel(
name='PortionItem',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=150, verbose_name='item name')),
('is_default', models.BooleanField(default=False, verbose_name='is default?')),
],
options={
'verbose_name': 'portion item',
'verbose_name_plural': 'portion items',
},
),
migrations.CreateModel(
name='TrackItem',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('target', models.IntegerField(default=1, verbose_name='target')),
('order', models.IntegerField(blank=True, null=True, verbose_name='order')),
('frequency', models.IntegerField(default=1, verbose_name='frequency')),
('item', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='main.portionitem')),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
],
options={
'ordering': ['order'],
},
),
migrations.CreateModel(
name='UserLog',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('timestamp', models.DateTimeField(default=django.utils.timezone.now, verbose_name='timestamp')),
('item', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='main.trackitem')),
],
options={
'ordering': ['timestamp'],
},
),
]
10 changes: 5 additions & 5 deletions src/backend/main/models.py
Expand Up @@ -191,24 +191,24 @@ class TrackItem(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
target = models.IntegerField(_('target'), default=1)
order = models.IntegerField(_('order'), **NULL_BLANK)
frequency = models.IntegerChoices(_('frequency'), default=Frequency.DAILY)
frequency = models.IntegerField(_('frequency'), default=Frequency.DAILY)

class Meta:
ordering = ['order']

def __str__(self):
return super().__str__()
return f'TrackItem({self.user} - {self.item})'


class UserLog(models.Model):
"""
A class representing a log.
"""
item = models.ForeignKey(TrackItem)
timestamp = models.DateTimeField()
item = models.ForeignKey(TrackItem, on_delete=models.CASCADE)
timestamp = models.DateTimeField(_('timestamp'), default=timezone.now)

class Meta:
ordering = ['timestamp']

def __str__(self):
return super().__str__()
return f'UserLog({self.item} - {self.timestamp})'

0 comments on commit 78d6e9e

Please sign in to comment.