diff --git a/player/migrations/0001_initial.py b/player/migrations/0001_initial.py new file mode 100644 index 0000000..22fd8e0 --- /dev/null +++ b/player/migrations/0001_initial.py @@ -0,0 +1,34 @@ +# Generated by Django 2.0.3 on 2018-03-24 19:03 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Link', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('url', models.URLField(verbose_name='Lien')), + ], + ), + migrations.CreateModel( + name='Playlist', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('date', models.DateTimeField(verbose_name='date')), + ], + ), + migrations.AddField( + model_name='link', + name='playlist', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='player.Playlist', verbose_name='Playlist'), + ), + ] diff --git a/player/models.py b/player/models.py index 71a8362..de52e0f 100644 --- a/player/models.py +++ b/player/models.py @@ -1,3 +1,31 @@ from django.db import models -# Create your models here. +PK_LENGTH = 23 + +class Playlist(models.Model): + date = models.DateTimeField(verbose_name="date") + + @staticmethod + def reverse_token(token): + return token & ((1 << PK_LENGTH) - 1) + + def get_token(self): + return int(self.date.timestamp()) << PK_LENGTH | self.pk + + def get_absolute_url(self): + pass + + def __str__(self): + return "Playlist " + str(self.get_token()) + + +class Link(models.Model): + url = models.URLField(verbose_name="Lien") + playlist = models.ForeignKey( + Playlist, + on_delete=models.CASCADE, + verbose_name="Playlist", + ) + + def __str__(self): + return "Link : " + self.url + " of " + str(self.playlist)