diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-07-31 10:46:50 +0200 |
---|---|---|
committer | Étienne Loks <etienne@peacefrogs.net> | 2019-07-31 10:46:50 +0200 |
commit | d2e3ce3fe1bca021190c8257367e8a444596724f (patch) | |
tree | 73d50da3dddea117777ecfeaad6926db0920b2c9 /commcrawler/admin.py | |
parent | 345a41be0318da980422ee74a67c363008d4de8d (diff) | |
download | Comm-on-net-d2e3ce3fe1bca021190c8257367e8a444596724f.tar.bz2 Comm-on-net-d2e3ce3fe1bca021190c8257367e8a444596724f.zip |
Models refactoring
Diffstat (limited to 'commcrawler/admin.py')
-rw-r--r-- | commcrawler/admin.py | 115 |
1 files changed, 5 insertions, 110 deletions
diff --git a/commcrawler/admin.py b/commcrawler/admin.py index 7ff1eed..ea4ca14 100644 --- a/commcrawler/admin.py +++ b/commcrawler/admin.py @@ -1,117 +1,10 @@ from ajax_select import make_ajax_form -from django.contrib import admin, messages -from django.contrib.auth.admin import GroupAdmin, UserAdmin -from django.contrib.auth.models import Group, User -from django import forms -from django.http import HttpResponseRedirect -from django.shortcuts import render -from django.utils.translation import ugettext_lazy as _ +from django.contrib import admin from commonnet.admin_site import admin_site from commcrawler import models -admin_site.register(User, UserAdmin) -admin_site.register(Group, GroupAdmin) - - -class AreaTypeAdmin(admin.ModelAdmin): - model = models.AreaType - list_display = ('name', ) - - -admin_site.register(models.AreaType, AreaTypeAdmin) - - -class AreaAdmin(admin.ModelAdmin): - model = models.Area - list_display = ('name', 'area_type', 'reference', 'parent') - list_filter = ('area_type',) - search_fields = ['name', 'parent__name'] - - -admin_site.register(models.Area, AreaAdmin) - - -class OrganizationTypeAdmin(admin.ModelAdmin): - model = models.OrganizationType - list_display = ('name', 'parent') - list_filter = ('parent',) - - -admin_site.register(models.OrganizationType, OrganizationTypeAdmin) - - -class OrganizationAdmin(admin.ModelAdmin): - model = models.Organization - list_display = ('name', 'organization_type', 'area') - list_filter = ('organization_type',) - search_fields = ['name'] - form = make_ajax_form(model, {'area': 'area'}) - - -admin_site.register(models.Organization, OrganizationAdmin) - - -class AddToCrawlForm(forms.Form): - crawl = forms.ChoiceField(label=_("Crawl"), choices=tuple()) - - def __init__(self, *args, **kwargs): - super(AddToCrawlForm, self).__init__(*args, **kwargs) - self.fields["crawl"].choices = [(None, "--")] + [ - (c.pk, str(c)) - for c in models.Crawl.objects.filter(status="C").all() - ] - - -class TargetAdmin(admin.ModelAdmin): - list_display = ('name', 'url', 'organization') - model = models.Target - list_filter = ('organization__organization_type',) - form = make_ajax_form(model, {'organization': 'organization'}) - actions = ['add_to_crawl'] - - def add_to_crawl(self, request, queryset): - if 'apply' in request.POST: - form = AddToCrawlForm(request.POST) - if form.is_valid(): - crawl = None - try: - crawl = models.Crawl.objects.get( - pk=form.cleaned_data["crawl"], - status="C" - ) - except models.Crawl.DoesNotExist: - pass - if crawl: - nb_added = 0 - targets = [ - c["id"] for c in crawl.targets.values("id") - ] - for target in queryset.all(): - if target.pk not in targets: - crawl.targets.add(target) - nb_added += 1 - messages.add_message( - request, messages.INFO, - str(_("{} new targets added to {}")).format( - nb_added, str(crawl) - ) - ) - return HttpResponseRedirect(request.get_full_path()) - else: - form = AddToCrawlForm() - return render( - request, 'admin/add_to_crawl.html', - context={"form": form, "query_nb": queryset.count(), - "items": [v['pk'] for v in queryset.values('pk').all()]}) - - add_to_crawl.short_description = _("Add to crawl") - - -admin_site.register(models.Target, TargetAdmin) - - class CrawlAdmin(admin.ModelAdmin): model = models.Crawl list_display = ("name", "status", "target_nb", "created", "started", @@ -125,16 +18,17 @@ admin_site.register(models.Crawl, CrawlAdmin) class CrawlResultAdmin(admin.ModelAdmin): - model = models.Crawl + model = models.CrawlResult list_display = ("target", "crawl", "is_online") list_filter = ("crawl",) + form = make_ajax_form(model, {'target': 'target'}) admin_site.register(models.CrawlResult, CrawlResultAdmin) class CrawlLinkAdmin(admin.ModelAdmin): - model = models.Crawl + model = models.CrawlLink list_display = ("result", "link") @@ -146,6 +40,7 @@ class CrawlRelationAdmin(admin.ModelAdmin): list_display = ("crawl", "source", "destination", "number") list_filter = ("crawl",) search_fields = ["source__name", "destination__name"] + form = make_ajax_form(model, {'source': 'target', 'destination': 'target'}) admin_site.register(models.CrawlRelation, CrawlRelationAdmin) |