From 859f8a05702897de79c911adba50e0784a6dd615 Mon Sep 17 00:00:00 2001
From: Eliot Berriot <contact@eliotberriot.com>
Date: Fri, 16 Mar 2018 23:30:37 +0100
Subject: [PATCH] Replaced is_public flag by brand new privacy_level field on
 playlists

---
 api/funkwhale_api/playlists/admin.py          |  2 +-
 .../migrations/0002_auto_20180316_2217.py     | 22 +++++++++++++++++++
 api/funkwhale_api/playlists/models.py         |  4 +++-
 api/funkwhale_api/playlists/serializers.py    |  2 +-
 4 files changed, 27 insertions(+), 3 deletions(-)
 create mode 100644 api/funkwhale_api/playlists/migrations/0002_auto_20180316_2217.py

diff --git a/api/funkwhale_api/playlists/admin.py b/api/funkwhale_api/playlists/admin.py
index b337154c..1d58abf9 100644
--- a/api/funkwhale_api/playlists/admin.py
+++ b/api/funkwhale_api/playlists/admin.py
@@ -5,7 +5,7 @@ from . import models
 
 @admin.register(models.Playlist)
 class PlaylistAdmin(admin.ModelAdmin):
-    list_display = ['name', 'user', 'is_public', 'creation_date']
+    list_display = ['name', 'user', 'privacy_level', 'creation_date']
     search_fields = ['name', ]
     list_select_related = True
 
diff --git a/api/funkwhale_api/playlists/migrations/0002_auto_20180316_2217.py b/api/funkwhale_api/playlists/migrations/0002_auto_20180316_2217.py
new file mode 100644
index 00000000..23d0a8ea
--- /dev/null
+++ b/api/funkwhale_api/playlists/migrations/0002_auto_20180316_2217.py
@@ -0,0 +1,22 @@
+# Generated by Django 2.0.3 on 2018-03-16 22:17
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('playlists', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.RemoveField(
+            model_name='playlist',
+            name='is_public',
+        ),
+        migrations.AddField(
+            model_name='playlist',
+            name='privacy_level',
+            field=models.CharField(choices=[('me', 'Only me'), ('followers', 'Me and my followers'), ('instance', 'Everyone on my instance, and my followers'), ('everyone', 'Everyone, including people on other instances')], default='instance', max_length=30),
+        ),
+    ]
diff --git a/api/funkwhale_api/playlists/models.py b/api/funkwhale_api/playlists/models.py
index e89dce81..47aa4633 100644
--- a/api/funkwhale_api/playlists/models.py
+++ b/api/funkwhale_api/playlists/models.py
@@ -3,13 +3,15 @@ from django.utils import timezone
 
 from mptt.models import MPTTModel, TreeOneToOneField
 
+from funkwhale_api.common import fields
+
 
 class Playlist(models.Model):
     name = models.CharField(max_length=50)
-    is_public = models.BooleanField(default=False)
     user = models.ForeignKey(
         'users.User', related_name="playlists", on_delete=models.CASCADE)
     creation_date = models.DateTimeField(default=timezone.now)
+    privacy_level = fields.get_privacy_field()
 
     def __str__(self):
         return self.name
diff --git a/api/funkwhale_api/playlists/serializers.py b/api/funkwhale_api/playlists/serializers.py
index 7f889d53..0732165e 100644
--- a/api/funkwhale_api/playlists/serializers.py
+++ b/api/funkwhale_api/playlists/serializers.py
@@ -26,5 +26,5 @@ class PlaylistSerializer(serializers.ModelSerializer):
 
     class Meta:
         model = models.Playlist
-        fields = ('id', 'name', 'is_public', 'creation_date', 'playlist_tracks')
+        fields = ('id', 'name', 'privacy_level', 'creation_date', 'playlist_tracks')
         read_only_fields = ['id', 'playlist_tracks', 'creation_date']
-- 
GitLab