Overview
Comment: | Merge de trunk dans dev |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | dev |
Files: | files | file ages | folders |
SHA1: |
8c1152a27b84867bb7220995c6ae1d53 |
User & Date: | bohwaz on 2018-11-08 11:24:46 |
Other Links: | branch diff | manifest | tags |
Context
2018-11-08
| ||
11:26 | Ajout d'une catégorie et compte pour les licences fédérales check-in: b773d9d766 user: bohwaz tags: dev | |
11:24 | Merge de trunk dans dev check-in: 8c1152a27b user: bohwaz tags: dev | |
2018-11-07
| ||
10:56 | Correction typo check-in: f8de9226ce user: bohwaz tags: trunk, stable | |
2018-10-27
| ||
22:05 | Ne vider le cache statique que lors d'événements type mise à jour check-in: 52e2bcee25 user: bohwaz tags: dev | |
Changes
Modified debian/makedeb.sh from [6b1badb692] to [b70d32f694].
1 2 3 4 5 6 7 8 9 10 | #!/bin/bash # Ripped from fossil makdedeb.sh DEB_REV=${1-1} # .deb package build/revision number. PACKAGE_DEBNAME=garradin THISDIR=${PWD} DEB_ARCH_NAME=all SRCDIR=$(cd ..; pwd)/src | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #!/bin/bash # Ripped from fossil makdedeb.sh DEB_REV=${1-1} # .deb package build/revision number. PACKAGE_DEBNAME=garradin THISDIR=${PWD} DEB_ARCH_NAME=all SRCDIR=$(cd ..; pwd)/src SRCDIR='/tmp/garradin-0.9.0' test -e ${SRCDIR} || { echo "This script must be run from a BUILT copy of the source tree." exit 1 } DEBROOT=$PWD/deb.tmp test -d ${DEBROOT} && rm -fr ${DEBROOT} |
︙ | ︙ | |||
94 95 96 97 98 99 100 | echo "Generating ${CONTROL}..." cat <<EOF > ${CONTROL} Package: ${PACKAGE_DEBNAME} Section: web Priority: optional Maintainer: Garradin <garradin@kd2.org> Architecture: ${DEB_ARCH_NAME} | | | | 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | echo "Generating ${CONTROL}..." cat <<EOF > ${CONTROL} Package: ${PACKAGE_DEBNAME} Section: web Priority: optional Maintainer: Garradin <garradin@kd2.org> Architecture: ${DEB_ARCH_NAME} Depends: dash | bash, php5-cli (>=5.6) | php-cli (>=7.0), php5-sqlite | php-sqlite3 Version: ${PACKAGE_DEB_VERSION} Suggests: www-browser, php-gd Homepage: http://dev.kd2.org/garradin/ Description: Garradin is a tool to manage non-profit organizations. It's only available in french. Description-fr: Gestionnaire d'association en interface web ou CLI. Garradin est un gestionnaire d'association à but non lucratif. Il permet de gérer les membres, leur adhésion et leurs contributions financières. Les membres peuvent se connecter eux-même et modifier leurs informations |
︙ | ︙ |
Modified src/Makefile from [c2bdd03499] to [78b3f7812f].
1 2 3 4 5 6 7 | KD2_FILE := https://fossil.kd2.org/kd2fw/uv/KD2-5.6.zip deps: $(eval TMP_KD2=$(shell mktemp -d)) #cd ${TMP_KD2} wget ${KD2_FILE} -O ${TMP_KD2}/kd2.zip | > | 1 2 3 4 5 6 7 8 | .PHONY: dev-server release deps publish check-dependencies KD2_FILE := https://fossil.kd2.org/kd2fw/uv/KD2-5.6.zip deps: $(eval TMP_KD2=$(shell mktemp -d)) #cd ${TMP_KD2} wget ${KD2_FILE} -O ${TMP_KD2}/kd2.zip |
︙ | ︙ |
Modified src/VERSION from [f8bcdfe8a5] to [37225f3c32].
|
| | | 1 | 0.9.0 |
Modified src/include/lib/Garradin/Compta/Comptes.php from [88f96751dc] to [8786b38bca].
︙ | ︙ | |||
87 88 89 90 91 92 93 94 95 96 97 98 99 100 | { throw new UserException('Nombre de sous-comptes maximal atteint pour ce compte parent-ci.'); } } else { $new_id = strtoupper($data['id']); } if (isset($data['position'])) { $position = (int) $data['position']; } else | > > > > > > > > > > > > > > > > > > > > > > > | 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 | { throw new UserException('Nombre de sous-comptes maximal atteint pour ce compte parent-ci.'); } } else { $new_id = strtoupper($data['id']); $parent = false; $id = $new_id; // Vérification que c'est bien le bon parent ! // Sinon risque par exemple d'avoir parent = 5 et id = 512A ! while (!$parent && strlen($id)) { // On enlève un caractère à la fin jusqu'à trouver un compte parent $id = substr($id, 0, -1); $parent = $db->firstColumn('SELECT id FROM compta_comptes WHERE id = ?;', $id); } if (!$parent || $parent != $data['parent']) { throw new UserException('Le compte parent sélectionné est incorrect, par exemple pour créer un compte 512A il faut sélectionner 512 comme compte parent.'); } } // Vérification que le compte n'existe pas déjà if ($db->test('compta_comptes', 'id = ?', $new_id)) { throw new UserException('Ce numéro de compte existe déjà dans le plan comptable : ' . $new_id); } if (isset($data['position'])) { $position = (int) $data['position']; } else |
︙ | ︙ |
Modified src/include/lib/Garradin/Membres.php from [c01bb47300] to [3d4bebf63e].
︙ | ︙ | |||
201 202 203 204 205 206 207 | if (!empty($data[$champ_id]) && $db->firstColumn('SELECT 1 FROM membres WHERE '.$champ_id.' = ? COLLATE NOCASE AND id != ? LIMIT 1;', $data[$champ_id], (int)$id)) { throw new UserException('La valeur du champ '.$champ_id.' est déjà utilisée par un autre membre, hors ce champ doit être unique à chaque membre.'); } | | > > > > | 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 | if (!empty($data[$champ_id]) && $db->firstColumn('SELECT 1 FROM membres WHERE '.$champ_id.' = ? COLLATE NOCASE AND id != ? LIMIT 1;', $data[$champ_id], (int)$id)) { throw new UserException('La valeur du champ '.$champ_id.' est déjà utilisée par un autre membre, hors ce champ doit être unique à chaque membre.'); } if (isset($data['numero'])) { if (!preg_match('/^\d+$/', $data['numero'])) { throw new UserException('Le numéro de membre ne doit contenir que des chiffres.'); } elseif ($data['numero'] == 0) { throw new UserException('Le numéro de membre ne peut être vide.'); } if ($db->test('membres', 'numero = ? AND id != ?', (int)$data['numero'], $id)) { throw new UserException('Ce numéro est déjà attribué à un autre membre.'); } } |
︙ | ︙ |
Modified src/include/lib/Garradin/Membres/Cotisations.php from [a0fca4e3fd] to [07c3d844f4].
︙ | ︙ | |||
265 266 267 268 269 270 271 | { case 'a_jour': break; case 'date': $order = 'cm.date'; break; case 'identite': | | | 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 | { case 'a_jour': break; case 'date': $order = 'cm.date'; break; case 'identite': $order = 'transliterate_to_ascii(m.'.$champ_id.') COLLATE NOCASE'; break; default: $order = 'cm.id_membre'; break; } $desc = $desc ? 'DESC' : 'ASC'; |
︙ | ︙ |
Modified src/templates/admin/config/site.tpl from [04150e10c9] to [c6ae555354].
︙ | ︙ | |||
62 63 64 65 66 67 68 | </dd> </dl> </fieldset> <fieldset> <legend>Gérer le contenu du site public</legend> <p class="help"> | | | 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | </dd> </dl> </fieldset> <fieldset> <legend>Gérer le contenu du site public</legend> <p class="help"> Le contenu affiché sur le site est celui présent dans le wiki, il suffit de sélectionner « Cette page est visible sur le site de l'association » à l'édition d'une page wiki. Il est également possible de <a href="{$admin_url}wiki/creer.php?public">créer une nouvelle page publique sur le wiki</a>. </p> </fieldset> <form method="post" action="{$self_url}"> <fieldset class="templatesList"> <legend>Squelettes du site</legend> |
︙ | ︙ |
Modified src/www/admin/membres/import.php from [b710d208b2] to [06d138ee5f].
︙ | ︙ | |||
17 18 19 20 21 22 23 | elseif (qg('export') == 'ods') { $import->toODS(); exit; } $champs = $config->get('champs_membres')->getAll(); | < | 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | elseif (qg('export') == 'ods') { $import->toODS(); exit; } $champs = $config->get('champs_membres')->getAll(); $csv_file = false; if (f('csv_encoded')) { $form->check('membres_import', [ 'csv_encoded' => 'required|json', |
︙ | ︙ |
Modified src/www/admin/static/admin.css from [c451b4a60c] to [2dd14f5041].
︙ | ︙ | |||
26 27 28 29 30 31 32 | } ol, ul { list-style: none; } caption, th { text-align: left; } | | | 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | } ol, ul { list-style: none; } caption, th { text-align: left; } article, aside, figure, section, header, footer, main { display: block; } span { display: inline-block; } h1 { font-size: 2em; } h2 { font-size: 1.5em; } h3 { font-size: 1.2em; } h4 { font-size: 1em; } |
︙ | ︙ |