[PYTHON] Es wurde eine Funktion hinzugefügt, um gewünschte Verschiebungen in der Django-Verschiebungstabelle zu registrieren

Wenn der Administrator die Benachrichtigung über die gewünschte Schicht erhält, registrieren Sie diese. Wenn Sie die Schichterstellung einmal im Monat ausführen, erstellen Sie zunächst den Zeitplan aus der gewünschten Schicht. Wenn keine Schicht vorhanden ist, erfolgt die Schicht am selben Tag des Vormonats Ich werde versuchen, es einzutragen.

Zunächst die gewünschte Verschiebung

schedule/models.py


class KibouShift(models.Model):
    id = models.AutoField(verbose_name='Gewünschte Schicht-ID',primary_key=True)
    user = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='Mitarbeitername')
    date = models.DateField(verbose_name='Datum')
    shift_name_1 = models.ForeignKey(Shift, verbose_name='1 Schichtname', related_name='kibou_shift_name1',on_delete=models.SET_NULL,null= True)
    shisetsu_name_1 = models.ForeignKey(Shisetsu, verbose_name='1 Einrichtung', related_name='kibou_shisetsu_name1',on_delete=models.SET_NULL,blank=True, null=True)
    shift_name_2 = models.ForeignKey(Shift, verbose_name='2 Schichtname', related_name='kibou_shift_name2',on_delete=models.SET_NULL,blank=True, null=True)
    shisetsu_name_2 = models.ForeignKey(Shisetsu, verbose_name='2 Einrichtungen', related_name='kibou_shisetsu_name2',on_delete=models.SET_NULL,blank=True, null=True)
    shift_name_3 = models.ForeignKey(Shift, verbose_name='3 Schichtname', related_name='kibou_shift_name3',on_delete=models.SET_NULL,blank=True, null=True)
    shisetsu_name_3 = models.ForeignKey(Shisetsu, verbose_name='3 Einrichtungen', related_name='kibou_shisetsu_name3',on_delete=models.SET_NULL,blank=True, null=True)
    shift_name_4 = models.ForeignKey(Shift, verbose_name='4 Schichtname', related_name='kibou_shift_name4',on_delete=models.SET_NULL,blank=True, null=True)
    shisetsu_name_4 = models.ForeignKey(Shisetsu, verbose_name='4 Einrichtungen', related_name='kibou_shisetsu_name4',on_delete=models.SET_NULL,blank=True, null=True)

    class Meta:
        unique_together = ('user', 'date')

schedule/admin.py


class KibouShiftAdmin(admin.ModelAdmin):
    list_display = ('date', 'user')
    ordering = [ "date" ]

admin.site.register(KibouShift, KibouShiftAdmin)

schedule/views.py


def kiboulistfunc(request):
    KibouShift_list = KibouShift.objects.all().order_by('-date')
    User_list = User.objects.all()
    shift_object = Shift.objects.all()
    context = {
        'KibouShift_list': KibouShift_list,
        'User_list': User_list,
        'shift_object': shift_object,
        }

    return render(request,'schedule/kiboushift/list.html', context )
        
class KibouCreate(CreateView):
    template_name = 'schedule/kiboushift/create.html'
    model = KibouShift
    fields = ('user', 'date', 'shift_name_1', 'shisetsu_name_1', 'shift_name_2', 'shisetsu_name_2', 'shift_name_3', 'shisetsu_name_3', 'shift_name_4', 'shisetsu_name_4')
    success_url = reverse_lazy('schedule:KibouList')

class KibouUpdate(UpdateView):
    template_name = 'schedule/kiboushift/update.html'
    model = KibouShift
    fields = ('user', 'date', 'shift_name_1', 'shisetsu_name_1', 'shift_name_2', 'shisetsu_name_2', 'shift_name_3', 'shisetsu_name_3', 'shift_name_4', 'shisetsu_name_4')
    success_url = reverse_lazy('schedule:KibouList')

class KibouDelete(DeleteView):
    template_name = 'schedule/kiboushift/delete.html'
    model = KibouShift
    fields = ('user', 'date', 'shift_name_1', 'shisetsu_name_1', 'shift_name_2', 'shisetsu_name_2', 'shift_name_3', 'shisetsu_name_3', 'shift_name_4', 'shisetsu_name_4')
    success_url = reverse_lazy('schedule:KibouList')

schedule/kiboushift/base.html


<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous">
    {% block customcss %}
    {% endblock customcss %}
    <title>verwandte Familie</title>
  </head>
  <body>

    
    {% block header %}
    {% endblock header %}

    {% block content %}
    {% endblock content %}

    <!-- Optional JavaScript -->
    <!-- jQuery first, then Popper.js, then Bootstrap JS -->
    <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js" integrity="sha384-B4gt1jrGC7Jh4AgTPSdUtOBvfO8shuf57BaghqFfPlYxofvL8/KUEfYiJOMMV+rV" crossorigin="anonymous"></script>
  </body>
</html>

schedule/kiboushifr/create.py


{% extends 'schedule/kiboushift/base.html' %}

{% block header %}
<div class="jumbotron jumbotron-fluid">
    <div class="container">
      <h1 class="display-4">Gewünschte Schichtregistrierung</h1>
      <p class="lead"></p>
    </div>
  </div>
{% endblock header %}

{% block content %}
<form action="" method="POST">{% csrf_token %}
    {{form.as_p}}
    <p><input type="submit" value="Erstellen" class="btn-info btn active">
    <a href="{% url 'schedule:KibouList' %}" class="btn-secondary btn active">Rückkehr</a></p>
</form>
{% endblock content %}

schedule/kiboushifr/delete.py


{% extends 'schedule/kiboushift/base.html' %}

{% block header %}
<div class="jumbotron jumbotron-fluid">
    <div class="container">
      <h1 class="display-4">Gewünschte Schicht löschen</h1>
      <p class="lead"></p>
    </div>
  </div>
{% endblock header %}

{% block content %}
<form action="" method="POST">{% csrf_token %}
  <p>Mitarbeiter:{{ object.user }}</p>
  <p>Datum:{{ object.date }}</p>
  <p>Name verschieben:{{ object.shift_name_1|default:"" }}</p>
  <p>Einrichtung:{{ object.shisetsu_name_1|default:"" }}</p>
  <p>Name verschieben:{{ object.shift_name_2|default:"" }}</p>
  <p>Einrichtung:{{ object.shisetsu_name_2|default:"" }}</p>
  <p>Name verschieben:{{ object.shift_name_3|default:"" }}</p>
  <p>Einrichtung:{{ object.shisetsu_name_3|default:"" }}</p>
  <p>Name verschieben:{{ object.shift_name_4|default:"" }}</p>
  <p>Einrichtung:{{ object.shisetsu_name_4|default:"" }}</p>
  <p><input type="submit" value="Löschen" class="btn-info btn active">
  <a href="{% url 'schedule:KibouList' %}" class="btn-secondary btn active">Rückkehr</a></p>
</form>
{% endblock content %}

schedule/kiboushifr/delete.py


{% extends 'schedule/kiboushift/base.html' %}

{% block header %}
<div class="jumbotron jumbotron-fluid">
    <div class="container">
      <h1 class="display-6">Liste der gewünschten Schichten</h1>
      <p class="lead"></p>
      <a href="{% url 'schedule:KibouCreate' %}" class="btn-info btn active">Anmelden</a>
      <a href="{% url 'schedule:homeschedule' %}" class="btn-info btn active">Schichttisch</a>
    </div>
  </div>
{% endblock header %}
{% block content %}
<table class="table table-striped table-bordered">
<div class='container'>
  <thead>
    <th>Datum</th>
    <th>Mitarbeitername</th>
    <th>Hoffnungsverschiebung 1</th>
    <th>Gewünschte Einrichtung 1</th>
    <th>Hoffnungsverschiebung 2</th>
    <th>Gewünschte Einrichtung 2</th>
    <th>Hoffnungsverschiebung 3</th>
    <th>Hoffnungsverschiebung 3</th>
    <th>Hoffnungsverschiebung 4</th>
    <th>Gewünschte Einrichtung 4</th>
  </thead>
  <tbody>
    {% for item in KibouShift_list %}
      {% for staff in User_list %}
      {% if item.user|stringformat:"s" == staff.username|stringformat:"s" %}
        <tr>
          <td>
            <a href="{% url 'schedule:KibouUpdate' item.pk %}" class="btn btn-info" role="button" aria-pressed="true">Fix</a>
            <a href="{% url 'schedule:kibouDelete' item.pk %}" class="btn btn-info" role="button" aria-pressed="true">Löschen</a>
            {{ item.date }}
          </td>
          <td >{{ staff.last_name }} {{ staff.first_name }}</td>
          <td >{{ item.shift_name_1|default:"" }} </td>
          <td >{{ item.shisetsu_name_1|default:"" }}</td>
          <td >{{ item.shift_name_2|default:"" }} </td>
          <td >{{ item.shisetsu_name_2|default:"" }}</td>
          <td >{{ item.shift_name_3|default:"" }} </td>
          <td >{{ item.shisetsu_name_3|default:"" }}</td>
          <td >{{ item.shift_name_4|default:"" }} </td>
          <td >{{ item.shisetsu_name_4|default:"" }}</td>
        </tr>
        {% endif %}
        {% endfor %}
    {% endfor %}
  </tbody>
  </div>
</table>
{% endblock content %}

schedule/kiboushifr/update.py


{% extends 'schedule/kiboushift/base.html' %}

{% block header %}
{% endblock header %}

{% block content %}
<form action="" method="POST">{% csrf_token %}
<div class="Container">
    {{ form.as_p }}
    {% csrf_token %}
    <p><input class="btn btn-primary" type="submit" value="aktualisieren">
    <a href="{% url 'schedule:KibouList' %}" class="btn-secondary btn active">Rückkehr</a></p>
    {% for shift in shift_object %}
        {% if shift.name != "Geschlossen" and shift.name != "Ja" %}
            {{ shift.name }} : {{ shift.start_time }}~{{ shift.end_time }}
        {% endif %}
    {% endfor %}
</div>
</form>
{% endblock content %}

Damit ist der Vorgang abgeschlossen. Klicken Sie hier für die Liste

image.png

Ich konnte es vorerst schaffen, aber in Wirklichkeit kann der Administrator eine Person auswählen, damit ich mich selbst registrieren kann, aber allgemeine Benutzer können sich nur selbst registrieren. Ich wollte den japanischen Namen richtig anzeigen, aber es ist ziemlich gut Ich bin nicht gegangen und dachte, ich würde es so weit bringen, dass es einmal funktionieren könnte, also habe ich es abgeschnitten!

image.png

image.png

image.png

image.png

Da sich über dem Korrekturbildschirm kein Titelteil befindet, werde ich ihn hier korrigieren

schedule/update.html


{% extends 'schedule/kiboushift/base.html' %}

{% block header %}
<div class="jumbotron jumbotron-fluid">
    <div class="container">
      <h1 class="display-4">Gewünschte Schichtkorrektur</h1>
      <p class="lead"></p>
    </div>
  </div>
{% endblock header %}

{% block content %}
<form action="" method="POST">{% csrf_token %}
<div class="Container">
    {{ form.as_p }}
    {% csrf_token %}
    <p><input class="btn btn-primary" type="submit" value="aktualisieren">
    <a href="{% url 'schedule:KibouList' %}" class="btn-secondary btn active">Rückkehr</a></p>
    {% for shift in shift_object %}
        {% if shift.name != "Geschlossen" and shift.name != "Ja" %}
            {{ shift.name }} : {{ shift.start_time }}~{{ shift.end_time }}
        {% endif %}
    {% endfor %}
</div>
</form>
{% endblock content %}

image.png

Ich konnte es reparieren! Danach müssen Eingabehilfe und Eingabeprüfung hinzugefügt werden. Ich werde es hier wieder implementieren.

Als nächstes möchte ich die Funktion implementieren, um eine Schicht aus der Schichtanforderung zu erstellen.

Recommended Posts

Es wurde eine Funktion hinzugefügt, um gewünschte Verschiebungen in der Django-Verschiebungstabelle zu registrieren
Ich möchte in der Django-Verschiebungstabelle scrollen, aber ...
Ein Memorandum zur Registrierung der in Hy in PyPI geschriebenen Bibliothek
Ich habe einen Befehl zum Generieren eines Kommentars für eine Tabelle in Django eingegeben
So generieren Sie eine Abfrage mit dem IN-Operator in Django
Django-Schichttabelle Zeigen Sie nur die Einrichtungen an, zu denen Sie gehören
Erstellen Sie eine Funktion, um den Inhalt der Datenbank in Go abzurufen
Unveröffentlichte Funktion in Django-Verschiebungstabelle implementiert Hintergrundsteuerung für die gewünschte Verschiebung hinzugefügt
Django Shift Table Shift Datenerstellungsfunktion abgeschlossen
Die Funktion _authenticate_with_backend wurde in django auth.autenticate nicht mehr unterstützt
Django-Schichterstellungsfunktion Grundlegende Arbeitsschichtregistrierungsfunktion für Tage hinzugefügt
Registrieren Sie Funktionsargumente automatisch in argparse in Python
Holen Sie sich den Aufrufer einer Funktion in Python
Ich habe CPython (ternärer Operator) eine Funktion hinzugefügt.
Das erste, was überprüft werden muss, wenn in Django ein No Reverse Match auftritt
So erstellen Sie eine Rest-API in Django
Wie man eine öffentliche Funktion in Pytest verspottet
Zeigen Sie die Django-Schichttabelle an! Unterstützt das 20-Tage-Schließen
Versuchen Sie, eine Blackjack-Strategie zu entwickeln, indem Sie das Lernen stärken (② Registrieren Sie die Umgebung im Fitnessstudio).
So testen Sie eine Funktion, die die aktuelle Zeit enthält, mit Freezegun in Python
Registrieren Sie zum ersten Mal eine Aufgabe in cron
[Django] Tabelle abschneiden (alle Tabellendaten löschen)
So zeigen Sie DataFrame als Tabelle in Markdown an
[Django] Neue Funktion zum Erstellen von Fragen zur Umfrage-App hinzugefügt
Übergang zum Update-Bildschirm mit dem Django-Tag
Ich habe einen Befehl zum Markieren des Tabellenclips gegeben
Ich habe CPython eine Funktion hinzugefügt (Build & Structure Grasp)
So verweisen Sie auf statische Dateien in einem Django-Projekt
Was bedeutet das letzte () in einer Funktion in Python?
Django Python Verschiebungstabelle
Django super Einführung von Python-Anfängern! Teil 6 Ich habe versucht, die Login-Funktion zu implementieren
[C / C ++] Übergeben Sie den in C / C ++ berechneten Wert an eine Python-Funktion, um den Prozess auszuführen, und verwenden Sie diesen Wert in C / C ++.
Verfahren zum gleichzeitigen Ändern des Tabellennamens und des Spaltennamens des Django-Modells
So erstellen Sie einen Datensatz, indem Sie eine Beziehung zum geerbten Modell in das von Django geerbte Modell einfügen
Eine Geschichte, die das Debuggen von Modellen in der Django + SQLAlchemy-Umgebung einfacher macht
Ich habe auch versucht, die Funktionsmonade und die Zustandsmonade mit dem Generator in Python nachzuahmen
Eine Geschichte, nach der ich süchtig war, als ich in Go nil als Funktionsargument angab
Definieren Sie eine Aufgabe zum Festlegen der Fabric-Umgebung in YAML
So schreiben Sie eine benutzerdefinierte Validierung in Django REST Framework
Verwendung der Methode __call__ in der Python-Klasse
Ändern Sie das Standardausgabeziel in eine Datei in Python
So drucken Sie Zeichen als Tabelle mit der Druckfunktion von Python
Kombinieren Sie Listen zu einem DataFrame mit Pandas
Praktische Funktion zum Hinzufügen von Spalten an einer beliebigen Stelle in Pandas DataFrame
So geben Sie char * in einer Rückruffunktion mit ctypes in Python zurück
So erhalten Sie den letzten (letzten) Wert in einer Liste in Python
[Python] Verwalten Sie Funktionen, indem Sie sie in ein Wörterbuch einfügen (Befehlstabelle, Funktionstabelle, Funktionszeiger).
Ich habe versucht, die Mail-Sendefunktion in Python zu implementieren
Ich kann mich mit Django 3 nicht auf der Admin-Seite anmelden
Erstellen wir eine Funktion, um die Schaltfläche in Tkinter gedrückt zu halten
Wie man in Django die angezeigte lange Zeichenkette in der Mitte abkürzt ....
[Python] Erstellen Sie ein Programm, das Zeilenumbrüche in der Zwischenablage löscht. + Als Verknüpfung mit Fenstern registrieren
Ich habe eine Funktion erstellt, um zu überprüfen, ob der Webhook vorerst in Lambda empfangen wird
Covector, um in Funktion zu denken