Compare commits

..

3 Commits

Author SHA1 Message Date
220d1fd928 add changie 2025-11-18 14:06:13 +01:00
8878efdc47 Retroactively associate activity creators as participants
- Added a migration to backfill activity-user associations for creators.
- Introduced a temporary `by_migration` column for tracking and future cleanup.
2025-11-18 14:01:45 +01:00
845a794b74 Associate activity's creator as a participant by default
- Added `addUser` call to automatically include the activity creator as a participant.
2025-11-18 13:35:17 +01:00
11 changed files with 63 additions and 39 deletions

View File

@@ -0,0 +1,7 @@
kind: Fixed
body: |
Associate activity's creator as a participant by default, and retro-actively append the creator to each activity
time: 2025-11-18T14:05:59.904993123+01:00
custom:
Issue: "466"
SchemaChange: Add columns or tables

View File

@@ -1,6 +0,0 @@
kind: Fixed
body: Insert name of file as the document title when uploading
time: 2025-11-19T13:33:24.778116633+01:00
custom:
Issue: ""
SchemaChange: No schema change

View File

@@ -1,6 +0,0 @@
kind: Fixed
body: Add missing path paramater 'id' for editing multiple participations
time: 2025-11-19T13:48:02.078949572+01:00
custom:
Issue: ""
SchemaChange: No schema change

View File

@@ -1,6 +0,0 @@
kind: UX
body: Display whether doc generation template is active or not in admin and order templates alphabetically
time: 2025-11-03T16:19:10.051947925+01:00
custom:
Issue: "456"
SchemaChange: No schema change

View File

@@ -382,6 +382,7 @@ final class ActivityController extends AbstractController
$entity = new Activity();
$entity->setUser($this->security->getUser());
$entity->addUser($this->security->getUser());
if ($person instanceof Person) {
$entity->setPerson($person);

View File

@@ -0,0 +1,50 @@
<?php
declare(strict_types=1);
/*
* Chill is a software for social workers
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*/
namespace Chill\Migrations\Activity;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
/**
* Migration fixing the automatic association of users to activities (exchanges).
*
* Originally, the user who created an exchange was not automatically associated
* to it (the "TMS" column), which led to incomplete data and biased statistics.
*
* This migration:
* - retroactively associates the creator of each exchange to the corresponding
* activity;
* - flags these backfilled associations with a temporary column so it is clear
* they were added by this data correction and can be safely cleaned up later.
*/
final class Version20251118124241 extends AbstractMigration
{
public function getDescription(): string
{
return 'Insert the creator of activity into the activity_user table';
}
public function up(Schema $schema): void
{
$this->addSql('ALTER TABLE activity_user ADD COLUMN by_migration BOOL DEFAULT FALSE');
$this->addSql("COMMENT ON COLUMN activity_user.by_migration IS 'For backup purpose - can be safely deleted after a while. See migration \\Chill\\Migrations\\Activity\\Version20251118124241'");
$this->addSql('INSERT INTO activity_user (activity_id, user_id, by_migration)
SELECT id, user_id, true FROM activity
ON CONFLICT DO NOTHING');
}
public function down(Schema $schema): void
{
$this->addSql('ALTER TABLE activity_user DROP COLUMN by_migration');
}
}

View File

@@ -87,7 +87,7 @@ class AdminDocGeneratorTemplateController extends CRUDController
*/
protected function orderQuery(string $action, $query, Request $request, PaginatorInterface $paginator)
{
return $query->addSelect('REPLACE(JSON_EXTRACT(e.name, :lang), \' \', \'~\') AS HIDDEN name_lang')
return $query->addSelect('JSON_EXTRACT(e.name, :lang) AS HIDDEN name_lang')
->setParameter('lang', $request->getLocale())
->addOrderBy('name_lang', 'ASC');
}

View File

@@ -25,24 +25,12 @@
<div class="item-bloc">
<div class="item-row">
<div class="item-col" style="flex-basis:100%;">
<h2>{{ entity.name|localize_translatable_string }} </h2>
<p style="margin-left: 1rem;"><span class="badge bg-chill-gray">
{% if entity.active %}
{{ 'admin.active'|trans }}
{% else %}
{{ 'admin.not active'|trans }}
{% endif %}
</span></p>
<h2>{{ entity.name|localize_translatable_string }}</h2>
</div>
</div>
<div class="item-row">
<p><span class="badge bg-chill-green-dark">{{ contextManager.getContextByKey(entity.context).name|trans }}</span></p>
</div>
{# <div class="item-row">#}
{# <div class="item-col" style="flex-basis:100%;">#}
{##}
{# </div>#}
{# </div>#}
<div class="item-row">
<div class="item-col"></div>
<ul class="record_actions item-col flex-shrink-1">

View File

@@ -49,7 +49,3 @@ crud:
Template file: Fichier modèle
admin:
active: Actif
not active: Non-actif

View File

@@ -50,7 +50,7 @@
<ul class="record_actions">
<li>
<a href="{{ path('chill_event__event_show', { 'id' : event.id } ) }}" class="btn btn-cancel">
<a href="{{ path('chill_event__event_show', { 'event_id' : event.id } ) }}" class="btn btn-cancel">
{{ 'Back to the event'|trans }}
</a>
</li>

View File

@@ -293,11 +293,11 @@ function onInputDocumentTitle(event) {
});
}
function addDocument({ stored_object, stored_object_version, file_name }) {
function addDocument({ stored_object, stored_object_version }) {
let document = {
type: "accompanying_period_work_evaluation_document",
storedObject: stored_object,
title: file_name,
title: "Nouveau document",
};
store.commit("addDocument", {
key: props.evaluation.key,