[PYTHON] Unveröffentlichte Funktion in Django-Verschiebungstabelle implementiert Hintergrundsteuerung für die gewünschte Verschiebung hinzugefügt

Als ich die Schichttabellenfunktion sah, stellte ich fest, dass es eine beträchtliche Zeit in Anspruch nahm, seit der Administrator alle Anfragen über Leitungen kontaktierte. Ich wollte die Verschiebung also nicht mitten in der Erstellung veröffentlichen, also implementierte ich die öffentlichen und unveröffentlichten Funktionen.

image.png

Wenn der Administrator bearbeitet, ist der Status privat und die Schaltfläche "Veröffentlichen" wird angezeigt.

Wenn Sie keine Administratorrechte haben image.png

Nicht angezeigt.

Das Steuerelement ist möglicherweise besser für die Verwendung der Benutzergruppe geeignet, entscheidet jedoch, ob es sich um einen Superuser handelt.

Lassen Sie uns entscheiden, dass das Modell eine Flagge hat, und beurteilen, ob es EIN oder AUS ist. Ich habe darüber nachgedacht, einen Mondtisch zu haben, aber ich würde gerne darüber nachdenken, wenn ich die Frist überdenke und so weiter.

Zunächst einmal denke ich, dass es den Erwerb von Technologie beschleunigen wird, die Menschen glücklich zu machen, sie zu nutzen. Deshalb werde ich mein Bestes tun, um sie umzusetzen (⌒∇⌒).

python.suchedule.modell.py


class Schedule(models.Model):
    id = models.AutoField(verbose_name='Zeitplan-ID',primary_key=True)
    user = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='Mitarbeitername')
    date = models.DateField(verbose_name='Datum')
    year = models.PositiveIntegerField(validators=[MinValueValidator(1),])
    month = models.PositiveIntegerField(validators=[MaxValueValidator(12),MinValueValidator(1),])
    shift_name_1 = models.ForeignKey(Shift, verbose_name='1 Schichtname', related_name='shift_name1',on_delete=models.SET_NULL,null= True)
    shisetsu_name_1 = models.ForeignKey(Shisetsu, verbose_name='1 Einrichtung', related_name='shisetsu_name1',on_delete=models.SET_NULL,blank=True, null=True)
    shift_name_2 = models.ForeignKey(Shift, verbose_name='2 Schichtname', related_name='shift_name2',on_delete=models.SET_NULL,blank=True, null=True)
    shisetsu_name_2 = models.ForeignKey(Shisetsu, verbose_name='2 Einrichtungen', related_name='shisetsu_name2',on_delete=models.SET_NULL,blank=True, null=True)
    shift_name_3 = models.ForeignKey(Shift, verbose_name='3 Schichtname', related_name='shift_name3',on_delete=models.SET_NULL,blank=True, null=True)
    shisetsu_name_3 = models.ForeignKey(Shisetsu, verbose_name='3 Einrichtungen', related_name='shisetsu_name3',on_delete=models.SET_NULL,blank=True, null=True)
    shift_name_4 = models.ForeignKey(Shift, verbose_name='4 Schichtname', related_name='shift_name4',on_delete=models.SET_NULL,blank=True, null=True)
    shisetsu_name_4 = models.ForeignKey(Shisetsu, verbose_name='4 Einrichtungen', related_name='shisetsu_name4',on_delete=models.SET_NULL,blank=True, null=True)
    day_total_worktime = models.IntegerField(verbose_name='Tägliche Arbeitszeit', default=0)
    kibou_shift = models.BooleanField(verbose_name='Hoffnungsverschiebung',default=False)
    open_flag = models.BooleanField(verbose_name='Öffentliche Flagge',default=False)

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

python/schedule/month.html



{% extends 'accounts/base.html' %}
{% load static %}
{% block customcss %}
<link rel="stylesheet" href="{% static 'schedule/month.css' %}">
{% endblock customcss %}

{% block header %}
    <div class="header">
        <div class="cole-md-1">
                <a href="{% url 'schedule:KibouList' %}" class="btn-secondary btn active">Liste der gewünschten Schichten</a></p>
                {% ifnotequal month 1 %}
                    <a href="{% url 'schedule:monthschedule' year month|add:'-1' %}" class="btn-info btn active">Im vergangenen Monat</a>
                {% else %}
                    <a href="{% url 'schedule:monthschedule' year|add:'-1' 12 %}" class="btn-info btn active">Im vergangenen Monat</a>
                {% endifnotequal %}
       
                {% ifnotequal month 12 %}
                    <a href="{% url 'schedule:monthschedule' year month|add:'1' %}" class="btn-info btn active">Nächsten Monat</a>
                {% else %}
                     <a href="{% url 'schedule:monthschedule' year|add:'1' 1 %}" class="btn-info btn active">Nächsten Monat</a>
                {% endifnotequal %}
  </div>
        <!--Tastenlink zum Öffnen von Modal-->
        {% if perms.schedule.add_schedule %}<!--Behörde-->
            <button type="button" class="btn-info btn active" data-toggle="modal" data-target="#createModal">Schicht erstellen</button>
        {% endif %}
        <!--Erstellungsbestätigung-->
        <div class="modal fade" id="createModal" tabindex="-1" role="dialog" aria-labelledby="basicModal" aria-hidden="true">
            <div class="modal-dialog">
                <div class="modal-content">
                    <div class="modal-header">
                        <h4><class="modal-title" id="myModalLabel">Bestätigungsbildschirm</h4></h4>
                    </div>
                    <div class="modal-body">
                        <label>Wenn ich eine Schicht erstelle, werden die Daten überschrieben. Möchten Sie sie ausführen?</label>
                    </div>
                    <div class="modal-footer">
                        <button type="button" class="btn btn-default" data-dismiss="modal">schließen</button>

                            <a href="{% url 'schedule:schedulecreate' year month %}" class="btn-info btn active">Schicht erstellen</a>
                       
                    </div>
                </div>
            </div>
        </div>

            <!--Tastenlink zum Öffnen von Modal-->
            {% if perms.schedule.add_schedule %}<!--Behörde-->
                {% if open_flag.open_flag == False %}
                    <button type="button" class="btn-info btn active" data-toggle="modal" data-target="#openModal">Veröffentlichung</button>
                {% elif open_flag.open_flag == True %}
                    <button type="button" class="btn-info btn active" data-toggle="modal" data-target="#closeModal">Privat</button>
                {% endif %}
            {% endif %}

            <!--Öffentliche Bestätigung-->
            <div class="modal fade" id="openModal" tabindex="-1" role="dialog" aria-labelledby="basicModal" aria-hidden="true">
                <div class="modal-dialog">
                    <div class="modal-content">
                        <div class="modal-header">
                            <h4><class="modal-title" id="myModalLabel">Bestätigungsbildschirm</h4></h4>
                        </div>
                        <div class="modal-body">
                            <label>Möchten Sie die Schicht veröffentlichen?</label>
                        </div>
                        <div class="modal-footer">
                            <button type="button" class="btn btn-default" data-dismiss="modal">schließen</button>
                            {% ifnotequal month 12 %}
                                <a href="{% url 'schedule:scheduleopen' year month %}" class="btn-info btn active">Veröffentlichung</a>
                            {% else %}
                            
                                <a href="{% url 'schedule:scheduleopen' year|add:'1' month %}" class="btn-info btn active">Veröffentlichung</a>
                            {% endifnotequal %}
                            
                        </div>
                    </div>
                </div>
            </div>

            <!--Private Bestätigung-->
            <div class="modal fade" id="closeModal" tabindex="-1" role="dialog" aria-labelledby="basicModal" aria-hidden="true">
                <div class="modal-dialog">
                    <div class="modal-content">
                        <div class="modal-header">
                            <h4><class="modal-title" id="myModalLabel">Bestätigungsbildschirm</h4></h4>
                        </div>
                        <div class="modal-body">
                            <label>Möchten Sie die Schicht privat halten?</label>
                        </div>
                        <div class="modal-footer">
                            <button type="button" class="btn btn-default" data-dismiss="modal">schließen</button>
                            {% ifnotequal month 12 %}
                                <a href="{% url 'schedule:scheduleclose' year month %}" class="btn-info btn active">Privat</a>
                            {% else %}
                            
                                <a href="{% url 'schedule:scheduleclose' year|add:'1' month %}" class="btn-info btn active">Privat</a>
                            {% endifnotequal %}
                            
                        </div>
                    </div>
                </div>
            </div>

        <div class="cole-md-2">
            {% for shift in shift_object %}
                {% if shift.name != "Geschlossen" and shift.name != "Ja" %}
                    {{ shift.name }} : {{ shift.start_time | date:"G"}}~{{ shift.end_time | date:"G"}} 
                {% endif %}
            {% endfor %}    
        </div>
        <p>
            <a href="{% url 'schedule:monthschedule' year month %}" button type="button" class="btn btn-outline-dark">alles</a>
            {% for shisetsu in shisetsu_object %}
                {% for UserShozoku in UserShozoku_list %}
                    {% if shisetsu.name|stringformat:"s" == UserShozoku.shisetsu_name|stringformat:"s" %}
                        <a href="{% url 'schedule:monthschedulefilter' year month shisetsu.pk %}" button type="button" class="btn btn-outline-dark" span style="background-color:{{ shisetsu.color }}">{{ shisetsu.name }}</span></a>
                    {% endif %}
                {% endfor %}
            {% endfor %}
        </p>
    </div> 

{% endblock header %}

{% block content %}
<table class="table">
    <thead>
        <tr>    <!--Datum-->
            <th class ="fixed00" rowspan="2">{{ kikan }}</th>
            {% for item in calender_object %}
            <th class ="fixed01">{{ item.date | date:"d" }}</th>
            {% endfor %}
        <tr>   <!--Tag-->
            {% for item in youbi_object %}
                <th class ="fixed02">{{ item }}</th>
            {% endfor %}
        </tr>
    </thead>
    <tbody>
    {% if perms.schedule.add_schedule or open_flag.open_flag == True %}<!--Behörde-->
        {% for profile in profile_list %}
            {% for staff in user_list %}
                {% if profile.user_id == staff.id %}
                    <tr align="center">
                    <th class ="fixed03" ><a href="{% url 'schedule:monthschedulekojin' year month staff.id %}">{{ staff.last_name }} {{ staff.first_name }}</a></th>  <!--staff_ID-Element, das in js verwendet wird-->
                    {% for item in object_list %}

                        {% if item.user|stringformat:"s" == staff.username|stringformat:"s" %}<!--Wenn der Benutzername der gleiche ist-->
                            
                            {% if item.kibou_shift == True %}
                                <td class="meisai03">
                            {% elif item.shift_name_1|stringformat:"s" == "Geschlossen"  %}
                                <td class="meisai01"> 
                            {% elif item.shift_name_1|stringformat:"s" == "Nicht"  %} 
                                <td class="meisai04">
                            {% else %}
                                <td class="meisai01"> 
                            {% endif %}
                            {% if item.shift_name_1 != None %}
                                {% if item.shift_name_1|stringformat:"s" == "Ja" %}
                                    {{ item.shift_name_1 }}
                                {% elif item.shift_name_1|stringformat:"s" == "Geschlossen" %}
                                
                                {% elif item.shift_name_1|stringformat:"s" == "Nicht" %}
                                    {{ item.shift_name_1 }}
                                {% else %}                   
                                    <span style="background-color:{{ item.shisetsu_name_1.color }}">{{ item.shift_name_1 }}</span>
                                {% endif %}    
                            {% endif %}
                        {% if item.shift_name_2 != None %}
                        {% if item.shift_name_2|stringformat:"s" == "Ja" or item.shift_name_2|stringformat:"s" == "Geschlossen" %}
                            {{ item.shift_name_2 }}
                        {% else %}                  
                            <span style="background-color:{{ item.shisetsu_name_2.color }}">{{ item.shift_name_2 }}</span>
                        {% endif %}    
                    {% endif %}
                    {% if item.shift_name_3 != None %}
                        {% if item.shift_name_3|stringformat:"s" == "Ja" or item.shift_name_3|stringformat:"s" == "Geschlossen" %}
                            {{ item.shift_name_3 }}
                        {% else %}                        
                            <span style="background-color:{{ item.shisetsu_name_3.color }}">{{ item.shift_name_3 }}</span>
                        {% endif %}    
                    {% endif %}
                    {% if item.shift_name_4 != None %}
                        {% if item.shift_name_4|stringformat:"s" == "Ja" or item.shift_name_4|stringformat:"s" == "Geschlossen" %}
                            {{ item.shift_name_4 }}
                        {% else %}                         
                            <span style="background-color:{{ item.shisetsu_name_4.color }}">{{ item.shift_name_4 }}</span>
                        {% endif %}    
                    {% endif %}                   
                {% endif %}            
            {% endfor %}
            </td>

            <tr align="center">
                {% for month in month_total %} 
                    {% if month.user == staff.id %}<!--Wenn der Benutzername der gleiche ist-->
                        {% if perms.schedule.add_schedule %}<!--Behörde-->
                            <td class="fixed04"><b>{{ month.month_total_worktime }}</b></td>
                        {% else %}
                            <td class="fixed04"><b>―</b></td>
                        {% endif %}
                    {% endif %}
                {% endfor %}
                {% for item in object_list %} 
                {% if item.user|stringformat:"s" == staff.username|stringformat:"s" %}<!--Wenn der Benutzername der gleiche ist-->
                        {% if perms.schedule.add_schedule %}<!--Behörde-->
                            <td  class="meisai02" id="s{{ staff.id }}d{{ item.date }}">
                                <a href="{% url 'schedule:update' item.pk %}">{{ item.day_total_worktime }} </a>
                            </td>
                        {% else %}
                            <td  class="meisai02" id="s{{ staff.id }}d{{ item.date }}">
                                {% if item.day_total_worktime != 0 %}
                                    {{ item.day_total_worktime }}
                                {% endif %}
                            </td>
                        {% endif %}
                    {% endif %}            
                {% endfor %}
            </tr>
            {% endif %}
            {% endfor %}
            {% endfor %}
            </tbody>
        </table>
    </div>
    </div>
    {% endif %}
{% endblock content %}



Mir wurde sehr klar, dass es wichtig ist, mit den Menschen zu kommunizieren, die es tatsächlich benutzen, und ihre Vorstellungskraft (Wahnkraft) zu nutzen, um darüber nachzudenken.

Recommended Posts

Unveröffentlichte Funktion in Django-Verschiebungstabelle implementiert Hintergrundsteuerung für die gewünschte Verschiebung hinzugefügt
Es wurde eine Funktion hinzugefügt, um gewünschte Verschiebungen in der Django-Verschiebungstabelle zu registrieren