From 490d10626c7e94f1e63c74c3312d77e02b06ba2e Mon Sep 17 00:00:00 2001
From: Bram Wiepjes <bramw@protonmail.com>
Date: Tue, 1 Apr 2025 14:19:16 +0000
Subject: [PATCH] Fix filter value max length bug

---
 ...iewfieldoptionscondition_value_and_more.py | 28 +++++++++++++++++++
 .../baserow/contrib/database/views/models.py  |  6 ++--
 .../bug/fix_filter_value_max_length_bug.json  |  8 ++++++
 3 files changed, 38 insertions(+), 4 deletions(-)
 create mode 100644 backend/src/baserow/contrib/database/migrations/0186_alter_formviewfieldoptionscondition_value_and_more.py
 create mode 100644 changelog/entries/unreleased/bug/fix_filter_value_max_length_bug.json

diff --git a/backend/src/baserow/contrib/database/migrations/0186_alter_formviewfieldoptionscondition_value_and_more.py b/backend/src/baserow/contrib/database/migrations/0186_alter_formviewfieldoptionscondition_value_and_more.py
new file mode 100644
index 000000000..ddc59c9b4
--- /dev/null
+++ b/backend/src/baserow/contrib/database/migrations/0186_alter_formviewfieldoptionscondition_value_and_more.py
@@ -0,0 +1,28 @@
+# Generated by Django 5.0.13 on 2025-03-27 10:37
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+    dependencies = [
+        ("database", "0185_alter_ratingfield_style"),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name="formviewfieldoptionscondition",
+            name="value",
+            field=models.TextField(
+                blank=True,
+                help_text="The filter value that must be compared to the field's value.",
+            ),
+        ),
+        migrations.AlterField(
+            model_name="viewfilter",
+            name="value",
+            field=models.TextField(
+                blank=True,
+                help_text="The filter value that must be compared to the field's value.",
+            ),
+        ),
+    ]
diff --git a/backend/src/baserow/contrib/database/views/models.py b/backend/src/baserow/contrib/database/views/models.py
index 0c1bf916b..65177fbdf 100644
--- a/backend/src/baserow/contrib/database/views/models.py
+++ b/backend/src/baserow/contrib/database/views/models.py
@@ -397,8 +397,7 @@ class ViewFilter(HierarchicalModelMixin, models.Model):
         "value. The filter is always in this order `field` `type` `value` "
         "(example: `field_1` `contains` `Test`).",
     )
-    value = models.CharField(
-        max_length=255,
+    value = models.TextField(
         blank=True,
         help_text="The filter value that must be compared to the field's value.",
     )
@@ -937,8 +936,7 @@ class FormViewFieldOptionsCondition(HierarchicalModelMixin, models.Model):
         "value. The filter is always in this order `field` `type` `value` "
         "(example: `field_1` `contains` `Test`).",
     )
-    value = models.CharField(
-        max_length=255,
+    value = models.TextField(
         blank=True,
         help_text="The filter value that must be compared to the field's value.",
     )
diff --git a/changelog/entries/unreleased/bug/fix_filter_value_max_length_bug.json b/changelog/entries/unreleased/bug/fix_filter_value_max_length_bug.json
new file mode 100644
index 000000000..8a343a9b6
--- /dev/null
+++ b/changelog/entries/unreleased/bug/fix_filter_value_max_length_bug.json
@@ -0,0 +1,8 @@
+{
+  "type": "bug",
+  "message": "Fixed bug where the backend fails hard if the filter value exceeds 255 characters.",
+  "domain": "database",
+  "issue_number": null,
+  "bullet_points": [],
+  "created_at": "2025-03-27"
+}