J'ai demandé à un ami d'utiliser la table de travail une fois. Il y a eu quelques demandes.
① Table de décalage: seul l'administrateur peut modifier l'heure. (2) Tableau des équipes: je veux que vous copiez la création de l'équipe par jour ③ Quart de travail souhaité: le 5 de chaque mois, nous demandons une demande de quart et la créons et la distribuons avant le 10, donc les restrictions d'entrée pour l'entrée par 5 ④ Tableau d'affichage: informez chaque établissement ⑤ Tâche Il est préférable que vous puissiez reprendre ce que vous avez à faire
Jusqu'à présent, j'ai créé des objets en mouvement comme objectifs pour le moment. De là, j'aimerais en savoir plus sur les restrictions d'entrée et les contrôles d'autorité afin qu'ils puissent vraiment être utilisés.
Tout d'abord, cliquez sur les heures de travail dans le tableau des équipes pour accéder à l'écran d'enregistrement des équipes, mais modifiez-la pour que seuls les super utilisateurs puissent le faire et les autres utilisateurs ne le puissent pas.
En html,
{% if perms.schedule.add_schedule %}
Ajout de l'instruction conditionnelle de.
Perms. Fait référence au paramètre d'autorité lui-même et détermine si la table de nomenclature qu'elle contient a des droits supplémentaires.
C'était juste une ligne, mais cela a pris presque deux heures. Il y aura probablement quelque chose à apprendre sur les paramètres d'autorisation.
html ressemble à ceci
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 des équipes souhaitées</a></p>
{% ifnotequal month 1 %}
<a href="{% url 'schedule:monthschedule' year month|add:'-1' %}" class="btn-info btn active">le mois dernier</a>
{% else %}
<a href="{% url 'schedule:monthschedule' year|add:'-1' 12 %}" class="btn-info btn active">le mois dernier</a>
{% endifnotequal %}
{% ifnotequal month 12 %}
<a href="{% url 'schedule:monthschedule' year month|add:'1' %}" class="btn-info btn active">Le mois prochain</a>
{% else %}
<a href="{% url 'schedule:monthschedule' year|add:'1' 1 %}" class="btn-info btn active">Le mois prochain</a>
{% endifnotequal %}
{% if perms.schedule.add_schedule %}<!--Autorité-->
<a href="{% url 'schedule:schedulecreate' year month %}" class="btn-info btn active">Créer un changement</a>
{% endif %}
</div>
<div class="cole-md-2">
{% for shift in shift_object %}
{% if shift.name != "Fermé" and shift.name != "Oui" %}
{{ 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">tout</a>
{% for shisetsu in shisetsu_object %}
<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>
{% endfor %}
</p>
</div>
{% endblock header %}
{% block content %}
<table class="table">
<thead>
<tr> <!--Date-->
<th class ="fixed00" rowspan="2">{{ kikan }}</th>
{% for item in calender_object %}
<th class ="fixed01">{{ item.date | date:"d" }}</th>
{% endfor %}
<tr> <!--journée-->
{% for item in youbi_object %}
<th class ="fixed02">{{ item }}</th>
{% endfor %}
</tr>
</thead>
<tbody>
{% for profile in profile_list %}
{% for staff in user_list %}
{% if profile.user_id == staff.id %}
<tr align="center">
<th class ="fixed03" >{{ staff.last_name }} {{ staff.first_name }}</th> <!--staff_Élément id utilisé dans js-->
{% for item in object_list %}
{% if item.user|stringformat:"s" == staff.username|stringformat:"s" %}<!--Si le nom d'utilisateur est le même-->
<td class="meisai">
{% if item.shift_name_1 != None %}
{% if item.shift_name_1|stringformat:"s" == "Oui" or item.shift_name_1|stringformat:"s" == "Fermé" %}
{{ item.shift_name_1 }}
{% else %}
{% for shisetsu in shisetsu_object %}
{% if item.shisetsu_name_1|stringformat:"s" == shisetsu.name|stringformat:"s" %}
<span style="background-color:{{ shisetsu.color }}">{{ item.shift_name_1 }}</span>
{% endif %}
{% endfor %}
{% endif %}
{% endif %}
{% if item.shift_name_2 != None %}
{% if item.shift_name_2|stringformat:"s" == "Oui" or item.shift_name_2|stringformat:"s" == "Fermé" %}
{{ item.shift_name_2 }}
{% else %}
{% for shisetsu in shisetsu_object %}
{% if item.shisetsu_name_2|stringformat:"s" == shisetsu.name|stringformat:"s" %}
<span style="background-color:{{ shisetsu.color }}">{{ item.shift_name_2 }}</span>
{% endif %}
{% endfor %}
{% endif %}
{% endif %}
{% if item.shift_name_3 != None %}
{% if item.shift_name_3|stringformat:"s" == "Oui" or item.shift_name_3|stringformat:"s" == "Fermé" %}
{{ item.shift_name_3 }}
{% else %}
{% for shisetsu in shisetsu_object %}
{% if item.shisetsu_name_3|stringformat:"s" == shisetsu.name|stringformat:"s" %}
<span style="background-color:{{ shisetsu.color }}">{{ item.shift_name_3 }}</span>
{% endif %}
{% endfor %}
{% endif %}
{% endif %}
{% if item.shift_name_4 != None %}
{% if item.shift_name_4|stringformat:"s" == "Oui" or item.shift_name_4|stringformat:"s" == "Fermé" %}
{{ item.shift_name_4 }}
{% else %}
{% for shisetsu in shisetsu_object %}
{% if item.shisetsu_name_4|stringformat:"s" == shisetsu.name|stringformat:"s" %}
<span style="background-color:{{ shisetsu.color }}">{{ item.shift_name_4 }}</span>
{% endif %}
{% endfor %}
{% endif %}
{% endif %}
{% endif %}
{% endfor %}
</td>
<tr align="center">
{% for month in month_total %}
{% if month.user == staff.id %}<!--Si le nom d'utilisateur est le même-->
<td class="fixed04"><b>{{ month.month_total_worktime }}</b></td>
{% endif %}
{% endfor %}
{% for item in object_list %}
{% if item.user|stringformat:"s" == staff.username|stringformat:"s" %}<!--Si le nom d'utilisateur est le même-->
{% if perms.schedule.add_schedule %}<!--Autorité-->
<td class="meisai" id="s{{ staff.id }}d{{ item.date }}">
<a href="{% url 'schedule:update' item.pk %}">{{ item.day_total_worktime }} </a>
</td>
{% else %}
<td class="meisai" id="s{{ staff.id }}d{{ item.date }}">
{{ item.day_total_worktime }}
</td>
{% endif %}
{% endif %}
{% endfor %}
</tr>
{% endif %}
{% endfor %}
{% endfor %}
</tbody>
</table>
</div>
</div>
{% endblock content %}
Le bouton de création d'équipe n'est plus affiché sans autorisation. Et l'heure est également non cliquable.
① Table de décalage: seul l'administrateur peut modifier l'heure. Cela a résolu le problème.
(2) Tableau des équipes: je veux que vous copiez la création de l'équipe par jour ⇒ Pensez à quoi faire de la copie le jour même. Je pense qu'il est plus facile de l'avoir dans votre profil et de le copier à partir de là.
③ Quart de travail souhaité: le 5 de chaque mois, nous demandons une demande de quart et la créons et la distribuons avant le 10, donc les restrictions d'entrée pour l'entrée par 5 ⇒ Je fais cela depuis environ 2 heures maintenant, mais je n'ai pas été en mesure de le résoudre. Le code actuel est ici
schedule.views
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')
def date(self):
date = self.cleaned_date.get('date')
now = datetime.now()
print(now.date)
#Entrez seulement après le 20 au 5e
if now.day > 5:
startdate = datetime.date(now.year,now.month,20)
if date < startdate:
raise ValidationError(
"C'est une date qui ne peut pas être saisie",
params={'value': value},
)
else:
startdate = datetime.date(now.year,now.month,20)
startdate = enddate + relativedelta(months=1)
if date < startdate:
raise ValidationError(
"C'est une date qui ne peut pas être saisie",
params={'value': value},
)
return date
success_url = reverse_lazy('schedule:KibouList')
Avec cela, s'il dépasse 5 jours, il ne peut être mis à jour qu'après le 20 du mois suivant. Je peux le faire du tout (rires)
Cela peut ne pas être résolu immédiatement
④ Tableau d'affichage: informez chaque établissement ⇒ Cela semble possible à implémenter, je vais donc le faire
⑤ Tâche Il est préférable que vous puissiez reprendre ce que vous avez à faire ⇒J'étudierai l'utilisabilité de redmine ou todoist et envisagerai différentes manières de créer des tâches régulières. Je pense que ce sera une application, je prévois donc de la reporter
Recommended Posts