prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Supprimer les messages privés de l'interface d'administration de Django
  À l'heure actuelle, un super-admin peut, via l'interface de Django, lire tous les MPs du site. Certes, l'interface est peu pratique pour ça (aucune notion de fil, etc.), mais je trouve tout de même bien peu souhaitable.
  
  ![Regardez-moi tous ces MPs dans l'interface d'administration de Django.](https://user-images.githubusercontent.com/1417570/88059844-b199bf00-cb65-11ea-8dc9-fc78310001c7.png)
  
  Après discussion avec @gcodeur sur ce sujet, je propose donc de **supprimer les MPs de l'interface d'administration de Django**. Une personne avec les accès prod pourrait toujours les lire (vu qu'ils ne sont pas chiffrés de bout en bout), mais ça limiterait d'autant l'exposition.
  Supprimer les messages privés de l'interface d'administration de Django
  À l'heure actuelle, un super-admin peut, via l'interface de Django, lire tous les MPs du site. Certes, l'interface est peu pratique pour ça (aucune notion de fil, etc.), mais je trouve tout de même bien peu souhaitable.
  
  ![Regardez-moi tous ces MPs dans l'interface d'administration de Django.](https://user-images.githubusercontent.com/1417570/88059844-b199bf00-cb65-11ea-8dc9-fc78310001c7.png)
  
  Après discussion avec @gcodeur sur ce sujet, je propose donc de **supprimer les MPs de l'interface d'administration de Django**. Une personne avec les accès prod pourrait toujours les lire (vu qu'ils ne sont pas chiffrés de bout en bout), mais ça limiterait d'autant l'exposition.
  
  </issue>
  <code>
  [start of zds/mp/admin.py]
  1 from django.contrib import admin
  2 
  3 from .models import PrivatePost, PrivateTopic, PrivateTopicRead
  4 
  5 
  6 class PrivatePostAdmin(admin.ModelAdmin):
  7 
  8     """Representation of PrivatePost model in the admin interface."""
  9 
  10     list_display = ('privatetopic', 'author', 'pubdate', 'update', 'position_in_topic')
  11     raw_id_fields = ('privatetopic', 'author')
  12 
  13 
  14 class PrivateTopicAdmin(admin.ModelAdmin):
  15 
  16     """Representation of PrivateTopic model in the admin interface."""
  17 
  18     list_display = ('title', 'subtitle', 'author', 'last_message', 'pubdate')
  19     raw_id_fields = ('author', 'participants', 'last_message')
  20 
  21 
  22 class PrivateTopicReadAdmin(admin.ModelAdmin):
  23 
  24     """Representation of PrivateTopicRead model in the admin interface."""
  25 
  26     list_display = ('privatetopic', 'privatepost', 'user')
  27     raw_id_fields = ('privatetopic', 'privatepost', 'user')
  28 
  29 
  30 admin.site.register(PrivatePost, PrivatePostAdmin)
  31 admin.site.register(PrivateTopic, PrivateTopicAdmin)
  32 admin.site.register(PrivateTopicRead, PrivateTopicReadAdmin)
  33
  [end of zds/mp/admin.py]
  </code>
  
  I need you to solve this issue by generating a single patch file that I can apply directly to this repository using git apply. Please respond with a single patch file in the following format.
  <patch>
  diff --git a/file.py b/file.py
  --- a/file.py
  +++ b/file.py
  @@ -1,27 +1,35 @@
   def euclidean(a, b):
  -    while b:
  -        a, b = b, a % b
  -    return a
  +    if b == 0:
  +        return a
  +    return euclidean(b, a % b)
   
   
   def bresenham(x0, y0, x1, y1):
       points = []
       dx = abs(x1 - x0)
       dy = abs(y1 - y0)
  -    sx = 1 if x0 < x1 else -1
  -    sy = 1 if y0 < y1 else -1
  -    err = dx - dy
  +    x, y = x0, y0
  +    sx = -1 if x0 > x1 else 1
  +    sy = -1 if y0 > y1 else 1
   
  -    while True:
  -        points.append((x0, y0))
  -        if x0 == x1 and y0 == y1:
  -            break
  -        e2 = 2 * err
  -        if e2 > -dy:
  -            err -= dy
  -            x0 += sx
  -        if e2 < dx:
  -            err += dx
  -            y0 += sy
  +    if dx > dy:
  +        err = dx / 2.0
  +        while x != x1:
  +            points.append((x, y))
  +            err -= dy
  +            if err < 0:
  +                y += sy
  +                err += dx
  +            x += sx
  +    else:
  +        err = dy / 2.0
  +        while y != y1:
  +            points.append((x, y))
  +            err -= dx
  +            if err < 0:
  +                x += sx
  +                err += dy
  +            y += sy
  +
  +    points.append((x, y))
       return points
  
  </patch>
golden_diff: diff --git a/zds/mp/admin.py b/zds/mp/admin.py
  deleted file mode 100644
  --- a/zds/mp/admin.py
  +++ /dev/null
  @@ -1,32 +0,0 @@
  -from django.contrib import admin
  -
  -from .models import PrivatePost, PrivateTopic, PrivateTopicRead
  -
  -
  -class PrivatePostAdmin(admin.ModelAdmin):
  -
  -    """Representation of PrivatePost model in the admin interface."""
  -
  -    list_display = ('privatetopic', 'author', 'pubdate', 'update', 'position_in_topic')
  -    raw_id_fields = ('privatetopic', 'author')
  -
  -
  -class PrivateTopicAdmin(admin.ModelAdmin):
  -
  -    """Representation of PrivateTopic model in the admin interface."""
  -
  -    list_display = ('title', 'subtitle', 'author', 'last_message', 'pubdate')
  -    raw_id_fields = ('author', 'participants', 'last_message')
  -
  -
  -class PrivateTopicReadAdmin(admin.ModelAdmin):
  -
  -    """Representation of PrivateTopicRead model in the admin interface."""
  -
  -    list_display = ('privatetopic', 'privatepost', 'user')
  -    raw_id_fields = ('privatetopic', 'privatepost', 'user')
  -
  -
  -admin.site.register(PrivatePost, PrivatePostAdmin)
  -admin.site.register(PrivateTopic, PrivateTopicAdmin)
  -admin.site.register(PrivateTopicRead, PrivateTopicReadAdmin)
  
verification_info: {"golden_diff": "diff --git a/zds/mp/admin.py b/zds/mp/admin.py\ndeleted file mode 100644\n--- a/zds/mp/admin.py\n+++ /dev/null\n@@ -1,32 +0,0 @@\n-from django.contrib import admin\n-\n-from .models import PrivatePost, PrivateTopic, PrivateTopicRead\n-\n-\n-class PrivatePostAdmin(admin.ModelAdmin):\n-\n-    \"\"\"Representation of PrivatePost model in the admin interface.\"\"\"\n-\n-    list_display = ('privatetopic', 'author', 'pubdate', 'update', 'position_in_topic')\n-    raw_id_fields = ('privatetopic', 'author')\n-\n-\n-class PrivateTopicAdmin(admin.ModelAdmin):\n-\n-    \"\"\"Representation of PrivateTopic model in the admin interface.\"\"\"\n-\n-    list_display = ('title', 'subtitle', 'author', 'last_message', 'pubdate')\n-    raw_id_fields = ('author', 'participants', 'last_message')\n-\n-\n-class PrivateTopicReadAdmin(admin.ModelAdmin):\n-\n-    \"\"\"Representation of PrivateTopicRead model in the admin interface.\"\"\"\n-\n-    list_display = ('privatetopic', 'privatepost', 'user')\n-    raw_id_fields = ('privatetopic', 'privatepost', 'user')\n-\n-\n-admin.site.register(PrivatePost, PrivatePostAdmin)\n-admin.site.register(PrivateTopic, PrivateTopicAdmin)\n-admin.site.register(PrivateTopicRead, PrivateTopicReadAdmin)\n", "issue": "Supprimer les messages priv\u00e9s de l'interface d'administration de Django\n\u00c0 l'heure actuelle, un super-admin peut, via l'interface de Django, lire tous les MPs du site. Certes, l'interface est peu pratique pour \u00e7a (aucune notion de fil, etc.), mais je trouve tout de m\u00eame bien peu souhaitable.\r\n\r\n![Regardez-moi tous ces MPs dans l'interface d'administration de Django.](https://user-images.githubusercontent.com/1417570/88059844-b199bf00-cb65-11ea-8dc9-fc78310001c7.png)\r\n\r\nApr\u00e8s discussion avec @gcodeur sur ce sujet, je propose donc de **supprimer les MPs de l'interface d'administration de Django**. Une personne avec les acc\u00e8s prod pourrait toujours les lire (vu qu'ils ne sont pas chiffr\u00e9s de bout en bout), mais \u00e7a limiterait d'autant l'exposition.\nSupprimer les messages priv\u00e9s de l'interface d'administration de Django\n\u00c0 l'heure actuelle, un super-admin peut, via l'interface de Django, lire tous les MPs du site. Certes, l'interface est peu pratique pour \u00e7a (aucune notion de fil, etc.), mais je trouve tout de m\u00eame bien peu souhaitable.\r\n\r\n![Regardez-moi tous ces MPs dans l'interface d'administration de Django.](https://user-images.githubusercontent.com/1417570/88059844-b199bf00-cb65-11ea-8dc9-fc78310001c7.png)\r\n\r\nApr\u00e8s discussion avec @gcodeur sur ce sujet, je propose donc de **supprimer les MPs de l'interface d'administration de Django**. Une personne avec les acc\u00e8s prod pourrait toujours les lire (vu qu'ils ne sont pas chiffr\u00e9s de bout en bout), mais \u00e7a limiterait d'autant l'exposition.\n", "before_files": [{"content": "from django.contrib import admin\n\nfrom .models import PrivatePost, PrivateTopic, PrivateTopicRead\n\n\nclass PrivatePostAdmin(admin.ModelAdmin):\n\n    \"\"\"Representation of PrivatePost model in the admin interface.\"\"\"\n\n    list_display = ('privatetopic', 'author', 'pubdate', 'update', 'position_in_topic')\n    raw_id_fields = ('privatetopic', 'author')\n\n\nclass PrivateTopicAdmin(admin.ModelAdmin):\n\n    \"\"\"Representation of PrivateTopic model in the admin interface.\"\"\"\n\n    list_display = ('title', 'subtitle', 'author', 'last_message', 'pubdate')\n    raw_id_fields = ('author', 'participants', 'last_message')\n\n\nclass PrivateTopicReadAdmin(admin.ModelAdmin):\n\n    \"\"\"Representation of PrivateTopicRead model in the admin interface.\"\"\"\n\n    list_display = ('privatetopic', 'privatepost', 'user')\n    raw_id_fields = ('privatetopic', 'privatepost', 'user')\n\n\nadmin.site.register(PrivatePost, PrivatePostAdmin)\nadmin.site.register(PrivateTopic, PrivateTopicAdmin)\nadmin.site.register(PrivateTopicRead, PrivateTopicReadAdmin)\n", "path": "zds/mp/admin.py"}]}