Skip to content

Commit

Permalink
Improve lines validator
Browse files Browse the repository at this point in the history
  • Loading branch information
medihack committed Jun 25, 2023
1 parent 8d5cea2 commit 443c2ae
Show file tree
Hide file tree
Showing 5 changed files with 59 additions and 4 deletions.
25 changes: 25 additions & 0 deletions adit/batch_query/migrations/0017_alter_batchquerytask_lines.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Generated by Django 4.2.2 on 2023-06-25 10:57

import django.core.validators
from django.db import migrations, models


class Migration(migrations.Migration):
dependencies = [
("batch_query", "0016_convert_json_to_text"),
]

operations = [
migrations.AlterField(
model_name="batchquerytask",
name="lines",
field=models.TextField(
validators=[
django.core.validators.RegexValidator(
message="Enter only digits separated by commas.",
regex="^\\s*\\d+(?:\\s*,\\s*\\d+)*\\s*\\Z",
)
]
),
),
]
4 changes: 2 additions & 2 deletions adit/batch_query/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@

from celery import current_app
from django.core.exceptions import ValidationError
from django.core.validators import validate_comma_separated_integer_list
from django.db import models
from django.urls import reverse

Expand All @@ -12,6 +11,7 @@
no_backslash_char_validator,
no_control_chars_validator,
no_wildcard_chars_validator,
pos_int_list_validator,
validate_modalities,
validate_series_number,
validate_series_numbers,
Expand Down Expand Up @@ -43,7 +43,7 @@ def get_absolute_url(self):

class BatchQueryTask(DicomTask):
job = models.ForeignKey(BatchQueryJob, on_delete=models.CASCADE, related_name="tasks")
lines = models.TextField(validators=[validate_comma_separated_integer_list])
lines = models.TextField(validators=[pos_int_list_validator])
patient_id = models.CharField(
blank=True,
max_length=64,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Generated by Django 4.2.2 on 2023-06-25 10:57

import django.core.validators
from django.db import migrations, models


class Migration(migrations.Migration):
dependencies = [
("batch_transfer", "0013_convert_json_to_text"),
]

operations = [
migrations.AlterField(
model_name="batchtransfertask",
name="lines",
field=models.TextField(
validators=[
django.core.validators.RegexValidator(
message="Enter only digits separated by commas.",
regex="^\\s*\\d+(?:\\s*,\\s*\\d+)*\\s*\\Z",
)
]
),
),
]
4 changes: 2 additions & 2 deletions adit/batch_transfer/models.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
from typing import TYPE_CHECKING

from celery import current_app
from django.core.validators import validate_comma_separated_integer_list
from django.db import models
from django.urls import reverse

from adit.core.models import AppSettings, TransferJob, TransferTask
from adit.core.validators import pos_int_list_validator

if TYPE_CHECKING:
from django.db.models.manager import RelatedManager
Expand Down Expand Up @@ -37,7 +37,7 @@ class BatchTransferTask(TransferTask):
on_delete=models.CASCADE,
related_name="tasks",
)
lines = models.TextField(validators=[validate_comma_separated_integer_list])
lines = models.TextField(validators=[pos_int_list_validator])

@property
def lines_list(self) -> list[str]:
Expand Down
5 changes: 5 additions & 0 deletions adit/core/validators.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
from django.core.exceptions import ValidationError
from django.core.validators import RegexValidator

pos_int_list_validator = RegexValidator(
regex=r"^\s*\d+(?:\s*,\s*\d+)*\s*\Z",
message="Enter only digits separated by commas.",
)

no_backslash_char_validator = RegexValidator(
regex=r"\\",
message="Contains invalid backslash character",
Expand Down

0 comments on commit 443c2ae

Please sign in to comment.