From 5f08b53c9d419099eedf6d6431a5c6d1f364a2cc Mon Sep 17 00:00:00 2001
From: Jonathan Weth <git@jonathanweth.de>
Date: Sat, 28 May 2022 16:30:42 +0200
Subject: [PATCH] Allow to set a specific card detector for a printer

---
 aleksis/apps/kort/api.py                       |  1 +
 aleksis/apps/kort/forms.py                     | 13 +++++++++++--
 .../0011_cardprinter_card_detector.py          | 18 ++++++++++++++++++
 aleksis/apps/kort/models.py                    |  1 +
 4 files changed, 31 insertions(+), 2 deletions(-)
 create mode 100644 aleksis/apps/kort/migrations/0011_cardprinter_card_detector.py

diff --git a/aleksis/apps/kort/api.py b/aleksis/apps/kort/api.py
index ded44c5..1ddeae4 100644
--- a/aleksis/apps/kort/api.py
+++ b/aleksis/apps/kort/api.py
@@ -49,6 +49,7 @@ class CardPrinterSerializer(serializers.ModelSerializer):
             "last_seen_at",
             "cups_printer",
             "generate_number_on_server",
+            "card_detector",
         )
 
 
diff --git a/aleksis/apps/kort/forms.py b/aleksis/apps/kort/forms.py
index e0ba41c..6b947e7 100644
--- a/aleksis/apps/kort/forms.py
+++ b/aleksis/apps/kort/forms.py
@@ -26,12 +26,21 @@ class CardForm(forms.ModelForm):
 class CardPrinterForm(forms.ModelForm):
     layout = Layout(
         Fieldset(_("Generic attributes"), "name", "location", "description"),
-        Fieldset(_("Printer settings"), "cups_printer", "generate_number_on_server"),
+        Fieldset(
+            _("Printer settings"), "cups_printer", "generate_number_on_server", "card_detector"
+        ),
     )
 
     class Meta:
         model = CardPrinter
-        fields = ["name", "location", "description", "cups_printer", "generate_number_on_server"]
+        fields = [
+            "name",
+            "location",
+            "description",
+            "cups_printer",
+            "generate_number_on_server",
+            "card_detector",
+        ]
 
 
 class PrinterSelectForm(forms.Form):
diff --git a/aleksis/apps/kort/migrations/0011_cardprinter_card_detector.py b/aleksis/apps/kort/migrations/0011_cardprinter_card_detector.py
new file mode 100644
index 0000000..4a62022
--- /dev/null
+++ b/aleksis/apps/kort/migrations/0011_cardprinter_card_detector.py
@@ -0,0 +1,18 @@
+# Generated by Django 3.2.13 on 2022-04-11 14:36
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('kort', '0010_auto_20220326_2123'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='cardprinter',
+            name='card_detector',
+            field=models.CharField(blank=True, max_length=255, verbose_name='Card detector'),
+        ),
+    ]
diff --git a/aleksis/apps/kort/models.py b/aleksis/apps/kort/models.py
index a6281f3..7889cb3 100644
--- a/aleksis/apps/kort/models.py
+++ b/aleksis/apps/kort/models.py
@@ -85,6 +85,7 @@ class CardPrinter(ExtensibleModel):
     generate_number_on_server = models.BooleanField(
         default=True, verbose_name=_("Generate card number on server")
     )
+    card_detector = models.CharField(max_length=255, verbose_name=_("Card detector"), blank=True)
 
     def save(self, *args, **kwargs):
         if not self.oauth2_application:
-- 
GitLab