Changeset - fed3c9eee488
[Not reviewed]
default
1 1 0
Branko Majic (branko) - 6 years ago 2017-12-22 11:35:31
branko@majic.rs
CONNT-25: Removed Django admin customisation:

- Removed custom HTML template for Django Admin when adding a new
communication.
- Reimplemented limiting of source/destination to use filtering
information passed-in by default from Django Admin.
2 files changed with 14 insertions and 26 deletions:
0 comments (0 inline, 0 general)
conntrackt/admin.py
Show inline comments
 
@@ -37,12 +37,16 @@
 
#
 
# You should have received a copy of the GNU General Public License along with
 
# Django Conntrackt.  If not, see <http://www.gnu.org/licenses/>.
 
#
 

	
 

	
 
# Standard library imports.
 
from urlparse import parse_qsl
 

	
 

	
 
# Django imports.
 
from django.contrib import admin
 
from django.urls import resolve
 

	
 
# Application imports.
 
from .models import Project, Location, Entity, Interface, Communication
 
@@ -227,28 +231,28 @@ class CommunicationAdmin(admin.ModelAdmi
 

	
 
          request - Request associated with the calling view.
 

	
 
          kwargs - Additional keyword arguments
 
        """
 

	
 
        # Resolve the view name based on the request's path.
 
        view_name = resolve(request.path).view_name
 

	
 
        # Only process the source and destination fields that point to
 
        # interfaces.
 
        if db_field.name == "source" or db_field.name == "destination":
 
            # Perform no filtering by default.
 
            interface_filter = {}
 

	
 
            # If project was specified in GET requests, add it as a filter.
 
            if 'project' in request.GET:
 
                interface_filter['entity__project'] = request.GET['project']
 
            # If location was specified in GET request, add it as a filter.
 
            if 'location' in request.GET:
 
                interface_filter['entity__location'] = request.GET['location']
 
            # If there are any filtering options for the show interfaces, apply them.
 
            # Parse the filter from URL GET parameter passed-in by the Django Admin.
 
            changelist_filters = dict(parse_qsl(request.GET.get('_changelist_filters', '')))
 

	
 
            # Apply project filter if requested.
 
            if 'project' in changelist_filters:
 
                interface_filter['entity__project'] = changelist_filters['project']
 
            # Apply location filter if requested.
 
            if 'location' in changelist_filters:
 
                interface_filter['entity__location'] = changelist_filters['location']
 
            # Apply our filters to queryset if there are any.
 
            if interface_filter:
 
                kwargs["queryset"] = Interface.objects.filter(**interface_filter)
 

	
 
        # Call the parent's method so it would do any of its magic.
 
        return super(CommunicationAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)
 

	
conntrackt/templates/admin/conntrackt/communication/change_list.html
Show inline comments
 
deleted file
0 comments (0 inline, 0 general)