sucresware / 4sucres

Parce qu'à 2 on était pas assez.
https://4sucres.org
9 stars 4 forks source link

Date de modification #82

Closed edoudev closed 5 years ago

edoudev commented 5 years ago

La date de modification remplace la date du topic, si je crée mon topic à 21h et que je le modifie à 22h, la date 22h va remplacer la première date ce qui ne devrait pas être le cas. >Exemple< Topic normalement créée hier, après sa modification, la date originale a été remplacée par la date de la modification.

innocenzi commented 5 years ago

Il y a bien un problème, mais c'est pas exactement celui que tu décris - c'est la date de création qui est utilisée des deux côtés :

innocenzi commented 5 years ago

@mgkprod

Bon ça se fait pas trop mais ma PR précédente est dans le master de mon fork, du coup si je fais une nouvelle PR ça va prendre les commit des succès ; j'ai vraiment la flemme de tout séparer du coup je te met un correctif potentiel ici :

// app/Helpers/SucresHelper.php

const NICEDATE_MINIMAL = 0;
const NICEDATE_WITH_HOURS = 1;

public static function niceDate(Carbon $date, $ret_type = self::NICEDATE_WITH_HOURS)
{
    // Je pense qu'on devrait utiliser ça, avec la date exacte
    // dans un attribut 'title' au passage de la souris.
    // $diff = $date->diffForHumans(['options' => Carbon::ONE_DAY_WORDS]);

    if ($date->isToday()) {
        $markup = 'aujourd\'hui';
    } elseif ($date->isLastDay()) {
        $markup = 'hier';
    } else {
        $markup = sprintf('le %s', $date->format('d/m/Y'));
    }

    switch ($ret_type) {
        case self::NICEDATE_WITH_HOURS:
            $markup .= sprintf(' à %s', $date->format('H:i:s'));

            break;

        case self::NICEDATE_MINIMAL:
        default:
            break;
    }

    return $markup;
}

Et une correction de simples erreurs de copier/coller :

// app/Models/Post.php

public function getPresentedDateAttribute()
{
    $markup = SucresHelper::niceDate($this->created_at);

    if ($this->deleted_at) {
        $markup .= ' (supprimé ' . SucresHelper::niceDate($this->deleted_at) . ')';
    } else {
        if ($this->created_at != $this->updated_at) {
            $markup .= ' (modifié ' . SucresHelper::niceDate($this->updated_at) . ')';
        }
    }

    return $markup;
}

Sachant que je pense qu'on devrait afficher une date complètement relative avec $date->diffForHumans(['options' => Carbon::ONE_DAY_WORDS]), et afficher la date complète au survol de la souris. C'est plus user-friendly, et on a quand même l'information complète si on la veut.