diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
deleted file mode 100644
index 432f30f2332..00000000000
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ /dev/null
@@ -1,35 +0,0 @@
----
-name: Bug report
-about: Create a report to help us fix something that is broken
-title: ''
-labels: Bug
-assignees: ''
-
----
-
-# Instructions
-*This is a template to help you report good issues. You may use [Github Markdown](https://help.github.com/articles/getting-started-with-writing-and-formatting-on-github/) syntax to format your issue report.*
-*Please:*
-- *replace the bracket enclosed texts with meaningful information*
-- *remove any unused sub-section*
-
-
-# Bug
-[*Short description*]
-
-## Environment
-- **Version**: [*Affected Dolibarr version(s)*]
-- **OS**: [*Server OS type and version*]
-- **Web server**: [*Webserver type and version*]
-- **PHP**: [*PHP version*]
-- **Database**: [*Database type and version*]
-- **URL(s)**: [*Affected URL(s)*]
-
-## Expected and actual behavior
-[*Verbose description*]
-
-## Steps to reproduce the behavior
-[*Verbose description*]
-
-## [Attached files](https://help.github.com/articles/issue-attachments) (Screenshots, screencasts, dolibarr.log, debugging informations…)
-[*Files*]
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
new file mode 100644
index 00000000000..7e7a62c1e84
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -0,0 +1,80 @@
+name: Bug report
+description: Create a report to help us fix something that is broken
+labels: ["Bug"]
+
+body:
+ - type: markdown
+ attributes:
+ value: |
+ This is a template to help you report good issues. You may use [Github Markdown](https://help.github.com/articles/getting-started-with-writing-and-formatting-on-github/) syntax to format your issue report.
+
+ - type: textarea
+ id: bug
+ attributes:
+ label: Bug
+ description: Please give a short description of the bug
+ validations:
+ required: true
+
+ - type: input
+ id: environment-version
+ attributes:
+ label: Environment Version
+ description: Affected Dolibarr version(s)
+
+ - type: input
+ id: environment-os
+ attributes:
+ label: Environment OS
+ description: Server OS type and version
+
+ - type: input
+ id: environment-webserver
+ attributes:
+ label: Environment Web server
+ description: Webserver type and version
+
+ - type: input
+ id: environment-php
+ attributes:
+ label: Environment PHP
+ description: PHP version
+
+ - type: input
+ id: environment-database
+ attributes:
+ label: Environment Database
+ description: Database type and version
+
+ - type: input
+ id: environment-urls
+ attributes:
+ label: Environment URL(s)
+ description: Affected URL(s)
+
+ - type: textarea
+ id: expected-behaviour
+ attributes:
+ label: Expected and actual behavior
+ description: Verbose description
+
+ - type: textarea
+ id: reproduce
+ attributes:
+ label: Steps to reproduce the behavior
+ description: Verbose description
+
+ - type: textarea
+ id: files
+ attributes:
+ label: Attached files
+ description: Screenshots, screencasts, dolibarr.log, debugging informations
+
+ - type: checkboxes
+ id: terms
+ attributes:
+ label: Code of Conduct
+ description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/Dolibarr/dolibarr/blob/develop/.github/CODE_OF_CONDUCT.md)
+ options:
+ - label: I agree to follow this project's Code of Conduct
+ required: true
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
deleted file mode 100644
index 32e2deff2c1..00000000000
--- a/.github/ISSUE_TEMPLATE/feature_request.md
+++ /dev/null
@@ -1,27 +0,0 @@
----
-name: Feature request
-about: Suggest a new idea for this project
-title: ''
-labels: Feature request
-assignees: ''
-
----
-
-# Instructions
-*This is a template to help you report good issues. You may use [Github Markdown](https://help.github.com/articles/getting-started-with-writing-and-formatting-on-github/) syntax to format your issue report.*
-*Please:*
-- *replace the bracket enclosed texts with meaningful information*
-- *remove any unused sub-section*
-
-
-# Feature Request
-[*Short description*]
-
-## Use case
-[*Verbose description*]
-
-## Suggested implementation
-[*Verbose description*]
-
-## Suggested steps
-[*List of tasks to achieve goal*]
diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml
new file mode 100644
index 00000000000..f4975622a8f
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.yml
@@ -0,0 +1,44 @@
+name: Feature request
+description: Suggest a new idea for this project
+labels: ["Feature request"]
+
+body:
+ - type: markdown
+ attributes:
+ value: |
+ This is a template to help you report good issues. You may use [Github Markdown](https://help.github.com/articles/getting-started-with-writing-and-formatting-on-github/) syntax to format your issue report.
+
+ - type: textarea
+ id: feature-request
+ attributes:
+ label: Feature Request
+ description: Short description
+ validations:
+ required: true
+
+ - type: textarea
+ id: use-case
+ attributes:
+ label: Use case
+ description: Verbose description
+
+ - type: textarea
+ id: suggested-implementation
+ attributes:
+ label: Suggested implementation
+ description: Verbose description
+
+ - type: textarea
+ id: suggested-steps
+ attributes:
+ label: Suggested steps
+ description: List of tasks to achieve goal
+
+ - type: checkboxes
+ id: terms
+ attributes:
+ label: Code of Conduct
+ description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/Dolibarr/dolibarr/blob/develop/.github/CODE_OF_CONDUCT.md)
+ options:
+ - label: I agree to follow this project's Code of Conduct
+ required: true
diff --git a/htdocs/contact/project.php b/htdocs/contact/project.php
new file mode 100644
index 00000000000..b05709f019a
--- /dev/null
+++ b/htdocs/contact/project.php
@@ -0,0 +1,117 @@
+
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+/**
+ * \file htdocs/contact/project.php
+ * \ingroup contact
+ * \brief Page of third party projects
+ */
+
+require '../main.inc.php';
+require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
+
+$langs->loadLangs(array("contacts", "companies", "projects"));
+
+// Security check
+$id = GETPOST('id', 'int');
+$result = restrictedArea($user, 'contact', $id, 'socpeople&societe');
+
+// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
+$hookmanager->initHooks(array('projectcontact'));
+
+/*
+ * Actions
+ */
+
+$parameters = array('id' => $id);
+$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
+if ($reshook < 0) {
+ setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
+}
+
+/*
+ * View
+ */
+
+$form = new Form($db);
+
+if ($id) {
+ require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
+ require_once DOL_DOCUMENT_ROOT.'/core/lib/contact.lib.php';
+
+ $object = new Contact($db);
+
+ $result = $object->fetch($id);
+ if (empty($object->thirdparty)) {
+ $object->fetch_thirdparty();
+ }
+ $socid = $object->thirdparty->id;
+ $title = $langs->trans("Projects");
+ if (! empty($conf->global->MAIN_HTML_TITLE) && preg_match('/thirdpartynameonly/', $conf->global->MAIN_HTML_TITLE) && $object->name) {
+ $title = $object->name." - ".$title;
+ }
+ llxHeader('', $title);
+
+ if (! empty($conf->notification->enabled)) {
+ $langs->load("mails");
+ }
+ $head = contact_prepare_head($object);
+
+ print dol_get_fiche_head($head, 'project', $langs->trans("Contact"), -1, 'contact');
+
+ $linkback = ''.$langs->trans("BackToList").'';
+
+ $morehtmlref = '