Skip to content

Commit

Permalink
Merge pull request #27 from homenoc/develop
Browse files Browse the repository at this point in the history
[fix] Fixed address filter.
  • Loading branch information
yoneyan authored Aug 14, 2023
2 parents 2bbbb1b + 7641897 commit 6d4a11b
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 33 deletions.
21 changes: 6 additions & 15 deletions jpnic_admin/resource/form.py
Original file line number Diff line number Diff line change
Expand Up @@ -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 = ""

Expand All @@ -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:
Expand All @@ -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あたりに入るリスト
Expand Down
33 changes: 15 additions & 18 deletions jpnic_admin/resource/sql.py
Original file line number Diff line number Diff line change
@@ -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,
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions jpnic_admin/resource/task.py
Original file line number Diff line number Diff line change
Expand Up @@ -245,6 +245,7 @@ def get_resource(self):

@transaction.atomic
def search_list(self):
# raise "oops...."
# 最新版を取得
print("================")
print(self.base.asn, "now", self.now)
Expand Down

0 comments on commit 6d4a11b

Please sign in to comment.