Skip to content

Commit

Permalink
#3544 management script for previous commit
Browse files Browse the repository at this point in the history
  • Loading branch information
Bharath-kandula committed Nov 27, 2023
1 parent e15fe7f commit 3ea0d19
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 0 deletions.
39 changes: 39 additions & 0 deletions classification/management/commands/remove_invisible_characters.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import json

from django.core.management.base import BaseCommand
import re
from classification.models import Classification
from library.guardian_utils import admin_bot


def has_invisible_characters(text):
pattern = re.compile(r'[^\u0000-\u007F]')
return re.search(pattern, text)


def ensure_string(data):
if isinstance(data, (dict, list)):
return json.dumps(data)
elif isinstance(data, str):
return data
else:
return str(data)


class Command(BaseCommand):

def handle(self, *args, **options):
classifications = Classification.objects.all()
user = admin_bot()

for classification in classifications:
evidence = classification.evidence

for key, value in evidence.items():
for k, v in value.items():
if match := has_invisible_characters(ensure_string(v)):
print(f"match found in {classification.id} record, in: {key}")
classification.revalidate(user=user)

self.stdout.write(
self.style.SUCCESS('Invisible characters removed from evidence field for all classifications.'))
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
from django.db import migrations

from manual.operations.manual_operations import ManualOperation


class Migration(migrations.Migration):

dependencies = [
('classification', '0114_classification_withdraw_reason'),
]

operations = [
ManualOperation(task_id=ManualOperation.task_id_manage(["remove_invisible_characters"]))
]

0 comments on commit 3ea0d19

Please sign in to comment.