We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Faciliter la programmation des Unes en modifiant le type de la date de publication.
À ce jour, quand on créer une Unes il faut remplir le champ "Date de publication" avec un format texte de style "2023/08/21 10:00". C'est assez désagréable à remplir. 

![image](https://github.com/zestedesavoir/zds-site/assets/8135797/c256ac28-bd4b-4c04-a701-5c4455f742f1)
Les propositions sont des Unes que j'ai déjà faite.

En ajoutant le type "datetime-local" à cette input on pourrait accèder aux interfaces natives des navigateurs/OS pour ce genre d'input.
![Exemple avec Firefox](https://github.com/zestedesavoir/zds-site/assets/8135797/f6516bdc-1416-44fc-8150-f94885ad4b28)


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `zds/featured/forms.py`
Content:
```
1 from crispy_forms.bootstrap import StrictButton
2 from crispy_forms.helper import FormHelper
3 from crispy_forms.layout import Layout, Field, ButtonHolder
4 from django import forms
5 from django.urls import reverse
6 from django.utils.translation import gettext_lazy as _
7 
8 from zds.featured.models import FeaturedResource, FeaturedMessage
9 
10 
11 class FeaturedResourceForm(forms.ModelForm):
12     class Meta:
13         model = FeaturedResource
14 
15         fields = ["title", "type", "authors", "image_url", "url"]
16 
17         widgets = {
18             "title": forms.TextInput(attrs={"placeholder": _("Titre de la Une")}),
19             "type": forms.TextInput(attrs={"placeholder": _("ex: Un projet, Un article, Un tutoriel...")}),
20             "authors": forms.TextInput(attrs={"placeholder": _("Des auteurs (ou pas) ?")}),
21             "image_url": forms.URLInput(
22                 attrs={"placeholder": _("Lien vers l'image de la Une (dimensions: 228x228px).")}
23             ),
24             "url": forms.URLInput(attrs={"placeholder": _("Lien vers la ressource.")}),
25         }
26 
27     major_update = forms.BooleanField(
28         label=_("Mise à jour majeure (fera passer la Une en première position lors d'un changement)"),
29         initial=False,
30         required=False,
31     )
32 
33     pubdate = forms.DateTimeField(
34         label=_("Date de publication (exemple: 25/12/2015 15:00 ou 2015-12-25T15:00)"),
35         input_formats=[
36             "%d/%m/%Y %H:%M:%S",
37             "%Y-%m-%d %H:%M:%S",  # full format with second
38             "%Y-%m-%dT%H:%M",  # datetime field format
39             "%Y-%m-%d %H:%M",
40             "%d/%m/%Y %H:%M",  # without second
41             "%Y-%m-%d",
42             "%d/%m/%Y",  # day only
43         ],
44         widget=forms.DateTimeInput(
45             attrs={"placeholder": _("Exemple : 25/12/2016 10:00"), "type": "text"},
46             format="%d/%m/%Y %H:%M",  # datetime field format
47         ),
48     )
49 
50     request = forms.IntegerField(widget=forms.HiddenInput(), required=False)
51 
52     def __init__(self, *args, **kwargs):
53         hide_major_update_field = kwargs.pop("hide_major_update_field", False)
54 
55         super().__init__(*args, **kwargs)
56         self.helper = FormHelper()
57         self.helper.form_class = "content-wrapper"
58         self.helper.form_method = "post"
59         self.helper.form_action = reverse("featured:resource-create")
60 
61         fields = [Field("request"), Field("title"), Field("type"), Field("authors"), Field("image_url"), Field("url")]
62 
63         if not hide_major_update_field:
64             fields.append(Field("major_update"))
65 
66         fields.extend(
67             [
68                 Field("pubdate"),
69                 ButtonHolder(
70                     StrictButton(_("Enregistrer"), type="submit"),
71                 ),
72             ]
73         )
74 
75         self.helper.layout = Layout(*fields)
76 
77 
78 class FeaturedMessageForm(forms.ModelForm):
79     class Meta:
80         model = FeaturedMessage
81 
82         fields = ["hook", "message", "url"]
83 
84         widgets = {
85             "hook": forms.TextInput(attrs={"placeholder": _('Mot d\'accroche court ("Nouveau !")')}),
86             "message": forms.TextInput(attrs={"placeholder": _("Message à afficher")}),
87             "url": forms.URLInput(attrs={"placeholder": _("Lien vers la description de la ressource")}),
88         }
89 
90     def __init__(self, *args, **kwargs):
91         super().__init__(*args, **kwargs)
92         self.helper = FormHelper()
93         self.helper.form_class = "content-wrapper"
94         self.helper.form_method = "post"
95         self.helper.form_action = reverse("featured:message-create")
96 
97         self.helper.layout = Layout(
98             Field("hook"),
99             Field("message"),
100             Field("url"),
101             ButtonHolder(
102                 StrictButton(_("Enregistrer"), type="submit"),
103             ),
104         )
105
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/zds/featured/forms.py b/zds/featured/forms.py
--- a/zds/featured/forms.py
+++ b/zds/featured/forms.py
@@ -31,20 +31,8 @@
     )
 
     pubdate = forms.DateTimeField(
-        label=_("Date de publication (exemple: 25/12/2015 15:00 ou 2015-12-25T15:00)"),
-        input_formats=[
-            "%d/%m/%Y %H:%M:%S",
-            "%Y-%m-%d %H:%M:%S",  # full format with second
-            "%Y-%m-%dT%H:%M",  # datetime field format
-            "%Y-%m-%d %H:%M",
-            "%d/%m/%Y %H:%M",  # without second
-            "%Y-%m-%d",
-            "%d/%m/%Y",  # day only
-        ],
-        widget=forms.DateTimeInput(
-            attrs={"placeholder": _("Exemple : 25/12/2016 10:00"), "type": "text"},
-            format="%d/%m/%Y %H:%M",  # datetime field format
-        ),
+        label=_("Date de publication (exemple: 25/12/2015 15:00)"),
+        widget=forms.DateTimeInput(attrs={"type": "datetime-local"}),
     )
 
     request = forms.IntegerField(widget=forms.HiddenInput(), required=False)

{"golden_diff": "diff --git a/zds/featured/forms.py b/zds/featured/forms.py\n--- a/zds/featured/forms.py\n+++ b/zds/featured/forms.py\n@@ -31,20 +31,8 @@\n     )\n \n     pubdate = forms.DateTimeField(\n-        label=_(\"Date de publication (exemple: 25/12/2015 15:00 ou 2015-12-25T15:00)\"),\n-        input_formats=[\n-            \"%d/%m/%Y %H:%M:%S\",\n-            \"%Y-%m-%d %H:%M:%S\",  # full format with second\n-            \"%Y-%m-%dT%H:%M\",  # datetime field format\n-            \"%Y-%m-%d %H:%M\",\n-            \"%d/%m/%Y %H:%M\",  # without second\n-            \"%Y-%m-%d\",\n-            \"%d/%m/%Y\",  # day only\n-        ],\n-        widget=forms.DateTimeInput(\n-            attrs={\"placeholder\": _(\"Exemple : 25/12/2016 10:00\"), \"type\": \"text\"},\n-            format=\"%d/%m/%Y %H:%M\",  # datetime field format\n-        ),\n+        label=_(\"Date de publication (exemple: 25/12/2015 15:00)\"),\n+        widget=forms.DateTimeInput(attrs={\"type\": \"datetime-local\"}),\n     )\n \n     request = forms.IntegerField(widget=forms.HiddenInput(), required=False)\n", "issue": "Faciliter la programmation des Unes en modifiant le type de la date de publication.\n\u00c0 ce jour, quand on cr\u00e9er une Unes il faut remplir le champ \"Date de publication\" avec un format texte de style \"2023/08/21 10:00\". C'est assez d\u00e9sagr\u00e9able \u00e0 remplir. \r\n\r\n![image](https://github.com/zestedesavoir/zds-site/assets/8135797/c256ac28-bd4b-4c04-a701-5c4455f742f1)\r\nLes propositions sont des Unes que j'ai d\u00e9j\u00e0 faite.\r\n\r\nEn ajoutant le type \"datetime-local\" \u00e0 cette input on pourrait acc\u00e8der aux interfaces natives des navigateurs/OS pour ce genre d'input.\r\n![Exemple avec Firefox](https://github.com/zestedesavoir/zds-site/assets/8135797/f6516bdc-1416-44fc-8150-f94885ad4b28)\r\n\n", "before_files": [{"content": "from crispy_forms.bootstrap import StrictButton\nfrom crispy_forms.helper import FormHelper\nfrom crispy_forms.layout import Layout, Field, ButtonHolder\nfrom django import forms\nfrom django.urls import reverse\nfrom django.utils.translation import gettext_lazy as _\n\nfrom zds.featured.models import FeaturedResource, FeaturedMessage\n\n\nclass FeaturedResourceForm(forms.ModelForm):\n    class Meta:\n        model = FeaturedResource\n\n        fields = [\"title\", \"type\", \"authors\", \"image_url\", \"url\"]\n\n        widgets = {\n            \"title\": forms.TextInput(attrs={\"placeholder\": _(\"Titre de la Une\")}),\n            \"type\": forms.TextInput(attrs={\"placeholder\": _(\"ex: Un projet, Un article, Un tutoriel...\")}),\n            \"authors\": forms.TextInput(attrs={\"placeholder\": _(\"Des auteurs (ou pas)\u00a0?\")}),\n            \"image_url\": forms.URLInput(\n                attrs={\"placeholder\": _(\"Lien vers l'image de la Une (dimensions: 228x228px).\")}\n            ),\n            \"url\": forms.URLInput(attrs={\"placeholder\": _(\"Lien vers la ressource.\")}),\n        }\n\n    major_update = forms.BooleanField(\n        label=_(\"Mise \u00e0 jour majeure (fera passer la Une en premi\u00e8re position lors d'un changement)\"),\n        initial=False,\n        required=False,\n    )\n\n    pubdate = forms.DateTimeField(\n        label=_(\"Date de publication (exemple: 25/12/2015 15:00 ou 2015-12-25T15:00)\"),\n        input_formats=[\n            \"%d/%m/%Y %H:%M:%S\",\n            \"%Y-%m-%d %H:%M:%S\",  # full format with second\n            \"%Y-%m-%dT%H:%M\",  # datetime field format\n            \"%Y-%m-%d %H:%M\",\n            \"%d/%m/%Y %H:%M\",  # without second\n            \"%Y-%m-%d\",\n            \"%d/%m/%Y\",  # day only\n        ],\n        widget=forms.DateTimeInput(\n            attrs={\"placeholder\": _(\"Exemple : 25/12/2016 10:00\"), \"type\": \"text\"},\n            format=\"%d/%m/%Y %H:%M\",  # datetime field format\n        ),\n    )\n\n    request = forms.IntegerField(widget=forms.HiddenInput(), required=False)\n\n    def __init__(self, *args, **kwargs):\n        hide_major_update_field = kwargs.pop(\"hide_major_update_field\", False)\n\n        super().__init__(*args, **kwargs)\n        self.helper = FormHelper()\n        self.helper.form_class = \"content-wrapper\"\n        self.helper.form_method = \"post\"\n        self.helper.form_action = reverse(\"featured:resource-create\")\n\n        fields = [Field(\"request\"), Field(\"title\"), Field(\"type\"), Field(\"authors\"), Field(\"image_url\"), Field(\"url\")]\n\n        if not hide_major_update_field:\n            fields.append(Field(\"major_update\"))\n\n        fields.extend(\n            [\n                Field(\"pubdate\"),\n                ButtonHolder(\n                    StrictButton(_(\"Enregistrer\"), type=\"submit\"),\n                ),\n            ]\n        )\n\n        self.helper.layout = Layout(*fields)\n\n\nclass FeaturedMessageForm(forms.ModelForm):\n    class Meta:\n        model = FeaturedMessage\n\n        fields = [\"hook\", \"message\", \"url\"]\n\n        widgets = {\n            \"hook\": forms.TextInput(attrs={\"placeholder\": _('Mot d\\'accroche court (\"Nouveau\u00a0!\")')}),\n            \"message\": forms.TextInput(attrs={\"placeholder\": _(\"Message \u00e0 afficher\")}),\n            \"url\": forms.URLInput(attrs={\"placeholder\": _(\"Lien vers la description de la ressource\")}),\n        }\n\n    def __init__(self, *args, **kwargs):\n        super().__init__(*args, **kwargs)\n        self.helper = FormHelper()\n        self.helper.form_class = \"content-wrapper\"\n        self.helper.form_method = \"post\"\n        self.helper.form_action = reverse(\"featured:message-create\")\n\n        self.helper.layout = Layout(\n            Field(\"hook\"),\n            Field(\"message\"),\n            Field(\"url\"),\n            ButtonHolder(\n                StrictButton(_(\"Enregistrer\"), type=\"submit\"),\n            ),\n        )\n", "path": "zds/featured/forms.py"}], "after_files": [{"content": "from crispy_forms.bootstrap import StrictButton\nfrom crispy_forms.helper import FormHelper\nfrom crispy_forms.layout import Layout, Field, ButtonHolder\nfrom django import forms\nfrom django.urls import reverse\nfrom django.utils.translation import gettext_lazy as _\n\nfrom zds.featured.models import FeaturedResource, FeaturedMessage\n\n\nclass FeaturedResourceForm(forms.ModelForm):\n    class Meta:\n        model = FeaturedResource\n\n        fields = [\"title\", \"type\", \"authors\", \"image_url\", \"url\"]\n\n        widgets = {\n            \"title\": forms.TextInput(attrs={\"placeholder\": _(\"Titre de la Une\")}),\n            \"type\": forms.TextInput(attrs={\"placeholder\": _(\"ex: Un projet, Un article, Un tutoriel...\")}),\n            \"authors\": forms.TextInput(attrs={\"placeholder\": _(\"Des auteurs (ou pas)\u00a0?\")}),\n            \"image_url\": forms.URLInput(\n                attrs={\"placeholder\": _(\"Lien vers l'image de la Une (dimensions: 228x228px).\")}\n            ),\n            \"url\": forms.URLInput(attrs={\"placeholder\": _(\"Lien vers la ressource.\")}),\n        }\n\n    major_update = forms.BooleanField(\n        label=_(\"Mise \u00e0 jour majeure (fera passer la Une en premi\u00e8re position lors d'un changement)\"),\n        initial=False,\n        required=False,\n    )\n\n    pubdate = forms.DateTimeField(\n        label=_(\"Date de publication (exemple: 25/12/2015 15:00)\"),\n        widget=forms.DateTimeInput(attrs={\"type\": \"datetime-local\"}),\n    )\n\n    request = forms.IntegerField(widget=forms.HiddenInput(), required=False)\n\n    def __init__(self, *args, **kwargs):\n        hide_major_update_field = kwargs.pop(\"hide_major_update_field\", False)\n\n        super().__init__(*args, **kwargs)\n        self.helper = FormHelper()\n        self.helper.form_class = \"content-wrapper\"\n        self.helper.form_method = \"post\"\n        self.helper.form_action = reverse(\"featured:resource-create\")\n\n        fields = [Field(\"request\"), Field(\"title\"), Field(\"type\"), Field(\"authors\"), Field(\"image_url\"), Field(\"url\")]\n\n        if not hide_major_update_field:\n            fields.append(Field(\"major_update\"))\n\n        fields.extend(\n            [\n                Field(\"pubdate\"),\n                ButtonHolder(\n                    StrictButton(_(\"Enregistrer\"), type=\"submit\"),\n                ),\n            ]\n        )\n\n        self.helper.layout = Layout(*fields)\n\n\nclass FeaturedMessageForm(forms.ModelForm):\n    class Meta:\n        model = FeaturedMessage\n\n        fields = [\"hook\", \"message\", \"url\"]\n\n        widgets = {\n            \"hook\": forms.TextInput(attrs={\"placeholder\": _('Mot d\\'accroche court (\"Nouveau\u00a0!\")')}),\n            \"message\": forms.TextInput(attrs={\"placeholder\": _(\"Message \u00e0 afficher\")}),\n            \"url\": forms.URLInput(attrs={\"placeholder\": _(\"Lien vers la description de la ressource\")}),\n        }\n\n    def __init__(self, *args, **kwargs):\n        super().__init__(*args, **kwargs)\n        self.helper = FormHelper()\n        self.helper.form_class = \"content-wrapper\"\n        self.helper.form_method = \"post\"\n        self.helper.form_action = reverse(\"featured:message-create\")\n\n        self.helper.layout = Layout(\n            Field(\"hook\"),\n            Field(\"message\"),\n            Field(\"url\"),\n            ButtonHolder(\n                StrictButton(_(\"Enregistrer\"), type=\"submit\"),\n            ),\n        )\n", "path": "zds/featured/forms.py"}]}