diff --git a/jpnic_admin/resource/form.py b/jpnic_admin/resource/form.py index 231a1f6..3b49619 100644 --- a/jpnic_admin/resource/form.py +++ b/jpnic_admin/resource/form.py @@ -73,12 +73,10 @@ def get_queryset(self, page=1): # ネットワーク名フィルタ if network_name != "": q &= Q(network_name__contains=network_name) - network_name = "%%%s%%" % network_name # 住所/住所(English)一部含むフィルタ if address != "": q &= Q(address__contains=address) | Q(address_en__contains=address) - address = "%%%s%%" % address abuse_filter = "" @@ -91,12 +89,7 @@ def get_queryset(self, page=1): if abuse != "": q &= Q(abuse__contains=abuse) - sql = sqlDateSelect( - network_name=network_name, - address=address, - abuse=abuse_filter, - abuse_match=abuse_match - ) + sql = sqlDateSelect(abuse_match=abuse_match) # 日付フィルタ # フィルタなし時現在の日付にする if select_date: @@ -107,16 +100,14 @@ def get_queryset(self, page=1): start_time, end_time, jpnic_id.id, + "%%%s%%" % network_name, + "%%%s%%" % address, + "%%%s%%" % address, + "%%%s%%" % abuse_filter ] with connection.cursor() as cursor: cursor.execute( - sqlDateSelectCount( - network_name=network_name, - address=address, - abuse=abuse_filter, - abuse_match=abuse_match - ), - input_array) + sqlDateSelectCount(abuse_match=abuse_match), input_array) count = len(cursor.fetchall()) # 1つのpageあたりに入るリスト diff --git a/jpnic_admin/resource/sql.py b/jpnic_admin/resource/sql.py index 1377993..7fe5487 100644 --- a/jpnic_admin/resource/sql.py +++ b/jpnic_admin/resource/sql.py @@ -1,4 +1,4 @@ -def sqlDateSelect(network_name=None, address=None, abuse=None, abuse_match=False): +def sqlDateSelect(abuse_match=False): sql = """ SELECT t1.id AS ID, t1.jpnic_id AS JPNIC_ID, @@ -24,15 +24,13 @@ def sqlDateSelect(network_name=None, address=None, abuse=None, abuse_match=False FROM resource_addrlist WHERE NOT (resource_addrlist.last_checked_at <= %s OR %s <= resource_addrlist.created_at) AND resource_addrlist.jpnic_id = %s + AND resource_addrlist.network_name like %s + AND (resource_addrlist.address like %s OR resource_addrlist.address_en like %s) """ - if network_name: - sql += " AND resource_addrlist.network_name like %s" % (network_name,) - if address: - sql += " AND (resource_addrlist.address like %s OR resource_addrlist.address_en like %s)" % (address, address) - if abuse_match and abuse: - sql += " AND resource_addrlist.abuse = %s" % (abuse,) - elif not abuse_match and abuse: - sql += " AND resource_addrlist.abuse like %s" % (abuse,) + if abuse_match: + sql += " AND resource_addrlist.abuse = %s" + else: + sql += " AND resource_addrlist.abuse like %s" sql += """ GROUP BY ip_address, admin_handle, assign_date, type, division @@ -61,22 +59,21 @@ def sqlDateSelect(network_name=None, address=None, abuse=None, abuse_match=False return sql -def sqlDateSelectCount(network_name=None, address=None, abuse=None, abuse_match=False): +def sqlDateSelectCount(abuse_match=False): sql = """ SELECT resource_addrlist.ip_address AS ip_address, resource_addrlist.division AS division FROM resource_addrlist WHERE NOT (resource_addrlist.last_checked_at <= %s OR %s <= resource_addrlist.created_at) AND resource_addrlist.jpnic_id = %s + AND resource_addrlist.network_name like %s + AND (resource_addrlist.address like %s OR resource_addrlist.address_en like %s) + """ - if network_name: - sql += " AND resource_addrlist.network_name like %s" % (network_name,) - if address: - sql += " AND (resource_addrlist.address like %s OR resource_addrlist.address_en like %s)" % (address, address) - if abuse_match and abuse: - sql += " AND resource_addrlist.abuse = %s" % (abuse,) - elif not abuse_match and abuse: - sql += " AND resource_addrlist.abuse like %s" % (abuse,) + if abuse_match: + sql += " AND resource_addrlist.abuse = %s" + else: + sql += " AND resource_addrlist.abuse like %s" sql += """ GROUP BY ip_address, division diff --git a/jpnic_admin/resource/task.py b/jpnic_admin/resource/task.py index f9328ea..7464b27 100644 --- a/jpnic_admin/resource/task.py +++ b/jpnic_admin/resource/task.py @@ -245,6 +245,7 @@ def get_resource(self): @transaction.atomic def search_list(self): + # raise "oops...." # 最新版を取得 print("================") print(self.base.asn, "now", self.now)