From 8821a1bb43073ad1c157cafbaeabf1b30d8ad4bd Mon Sep 17 00:00:00 2001
From: Eliot Berriot <contact@eliotberriot.com>
Date: Mon, 19 Mar 2018 14:06:51 +0100
Subject: [PATCH] Removed superfluous mptt requirement

---
 api/config/settings/common.py                    |  1 -
 .../playlists/migrations/0001_initial.py         |  3 +--
 api/funkwhale_api/playlists/models.py            | 16 +++-------------
 api/requirements/base.txt                        |  1 -
 4 files changed, 4 insertions(+), 17 deletions(-)

diff --git a/api/config/settings/common.py b/api/config/settings/common.py
index be5adf85cf..1bad608fd3 100644
--- a/api/config/settings/common.py
+++ b/api/config/settings/common.py
@@ -57,7 +57,6 @@ THIRD_PARTY_APPS = (
     'taggit',
     'rest_auth',
     'rest_auth.registration',
-    'mptt',
     'dynamic_preferences',
     'django_filters',
     'cacheops',
diff --git a/api/funkwhale_api/playlists/migrations/0001_initial.py b/api/funkwhale_api/playlists/migrations/0001_initial.py
index bc97d81227..987b2f9cfe 100644
--- a/api/funkwhale_api/playlists/migrations/0001_initial.py
+++ b/api/funkwhale_api/playlists/migrations/0001_initial.py
@@ -4,7 +4,6 @@ from __future__ import unicode_literals
 from django.db import migrations, models
 from django.conf import settings
 import django.utils.timezone
-import mptt.fields
 
 
 class Migration(migrations.Migration):
@@ -34,7 +33,7 @@ class Migration(migrations.Migration):
                 ('tree_id', models.PositiveIntegerField(db_index=True, editable=False)),
                 ('position', models.PositiveIntegerField(db_index=True, editable=False)),
                 ('playlist', models.ForeignKey(to='playlists.Playlist', related_name='playlist_tracks', on_delete=models.CASCADE)),
-                ('previous', mptt.fields.TreeOneToOneField(null=True, to='playlists.PlaylistTrack', related_name='next', blank=True, on_delete=models.CASCADE)),
+                ('previous', models.OneToOneField(null=True, to='playlists.PlaylistTrack', related_name='next', blank=True, on_delete=models.CASCADE)),
                 ('track', models.ForeignKey(to='music.Track', related_name='playlist_tracks', on_delete=models.CASCADE)),
             ],
             options={
diff --git a/api/funkwhale_api/playlists/models.py b/api/funkwhale_api/playlists/models.py
index 47aa463335..32e9a13b23 100644
--- a/api/funkwhale_api/playlists/models.py
+++ b/api/funkwhale_api/playlists/models.py
@@ -1,8 +1,6 @@
 from django.db import models
 from django.utils import timezone
 
-from mptt.models import MPTTModel, TreeOneToOneField
-
 from funkwhale_api.common import fields
 
 
@@ -28,18 +26,10 @@ class PlaylistTrack(MPTTModel):
         'music.Track',
         related_name='playlist_tracks',
         on_delete=models.CASCADE)
-    previous = TreeOneToOneField(
-        'self',
-        blank=True,
-        null=True,
-        related_name='next',
-        on_delete=models.CASCADE)
+    index = models.PositiveIntegerField(null=True)
     playlist = models.ForeignKey(
         Playlist, related_name='playlist_tracks', on_delete=models.CASCADE)
 
-    class MPTTMeta:
-        level_attr = 'position'
-        parent_attr = 'previous'
-
     class Meta:
-        ordering = ('-playlist', 'position')
+        ordering = ('-playlist', 'index')
+        unique_together = ('playlist', 'index')
diff --git a/api/requirements/base.txt b/api/requirements/base.txt
index bfa1a47db5..efcc4eea40 100644
--- a/api/requirements/base.txt
+++ b/api/requirements/base.txt
@@ -33,7 +33,6 @@ musicbrainzngs==0.6
 youtube_dl>=2017.12.14
 djangorestframework>=3.7,<3.8
 djangorestframework-jwt>=1.11,<1.12
-django-mptt>=0.9,<0.10
 google-api-python-client>=1.6,<1.7
 arrow>=0.12,<0.13
 persisting-theory>=0.2,<0.3
-- 
GitLab