Browse Source

Fix URL random bug in admin by patching a polymotphic bug

Fabs 10 years ago
parent
commit
d1f958223f
1 changed files with 18 additions and 1 deletions
  1. 18 1
      coin/configuration/admin.py

+ 18 - 1
coin/configuration/admin.py

@@ -28,7 +28,24 @@ class ParentConfigurationAdmin(PolymorphicParentModelAdmin):
         """
         return (tuple((x.base_model, x) for x in PolymorphicChildModelAdmin.__subclasses__()))
 
+    def get_urls(self):
+        """
+        Fix a django-polymorphic bug that randomly set wrong url for a child
+        model in admin.
+        This remove somes dummy urls that have not to be returned by the parent model
+        https://github.com/chrisglass/django_polymorphic/issues/105
+        """
+        urls = super(ParentConfigurationAdmin, self).get_urls()
+        for model, _ in self.get_child_models():
+            admin = self._get_real_admin_by_model(model)
+            for admin_url in admin.get_urls():
+                for url in urls:
+                    if url.name == admin_url.name:
+                        urls.remove(url)
+        return urls
+
+
 class ConfigurationAdminFormMixin(object):
-    form = ConfigurationForm
+    base_form = ConfigurationForm
 
 admin.site.register(Configuration, ParentConfigurationAdmin)