UPC / goteo-nexus24

Nexus24 plugin for Goteo crowdfunding platform
GNU Affero General Public License v3.0
1 stars 1 forks source link

Fer dades personals opcionals #8

Closed perelosantos closed 6 years ago

perelosantos commented 6 years ago

No podem demanar DNI etc, goteo ho fa per les dades fiscals però no té sentit que ho fem ni crec que sigui legal. Podem fer que el camp no sigui obligatori?

perelosantos commented 6 years ago

image

alexm commented 6 years ago

Segurament aquestes mateixes dades cal treure-les també del formulari de confirmació d'un finançament.

Idealment, aquest pas de confirmació es podria eliminar per al Nexus24, però cal determinar primer com de difícil seria fer-ho sense modificar el motor de goteo.

microstudi commented 6 years ago

Poso cullerada aqui, aquest formularis (i tots els que anem introduint a partir d'ara). Son completament modificables per part dels plugins.

Els formularis per defecte els busca la clase Goteo\Util\Form\FormFinder, que está al servicecontainer i per tant es pot sobreescriure (algunes personalitzaciones les fem aixi nosaltres en un plugin privat).

Veureu que busca el formulari a Goteo\Library\Forms\Model, en aquest cas el ProjectPersonalForm que es el que voleu sobreescriure.

A mode de exemple, en el nostre plugin fem un "extend" de la clase FormFinder i canviem el servei:

plugin/start.php

<?php
// Autoload additional Classes
Config::addAutoloadDir(__DIR__ .'/src');

// Adding custom services to the service container:
$sc = App::getServiceContainer();

// replace form finder to add extra fields
$sc->register('app.forms.finder', 'Goteo\Library\PrivateFormFinder');

On PrivateFormFinder es la clase que vulgeu, la nostra es aquesta:

plugin/src/Goteo/Library/PrivateFormFinder.php

<?php

namespace Goteo\Library;

use Goteo\Util\Form\FormFinder;

class PrivateFormFinder extends FormFinder {
    public function resolve($form) {
        $class = '\Goteo\Library\Forms\\' . $form . 'FormAddons';
        if(class_exists($class)) {
            return $class;
        }
        return parent::resolve($form);
    }
}

Llavors a plugin/src/Goteo/Library/Forms sobreescribim els formularis que volem (normalment simplement extenent els antics i canviant alguna coseta).

alexm commented 6 years ago

@microstudi moltes gràcies per aquesta pista sobre com sobreescriure els serveis (m'he trobat que no es pot fer monkey patching de les classes i això que expliques ens pot ajudar a moure canvis al plugin).

De moment però, vaig fent els canvis al codi base i després, quan ja tingui més clar quins són, els moure al plugin.

alexm commented 6 years ago

El canvi https://github.com/UPC/goteo/commit/f1a622a539eb7f51f267214bf8ecf18af2dfb280 elimina l'opció de les dades personals del menú lateral.

alexm commented 6 years ago

El canvi https://github.com/UPC/goteo/commit/18336727b657584cc034112a7e422069e55a4c61 elimina la confirmació de les dades d'enviament de la recompensa, etc.

microstudi commented 6 years ago

Per passar aquest tipus de modificacions al plugin, podries canviar el controlador SettingsDashboardController per un altre que l'extengui, hi sobreescrius la funció createSettingsSidebar allà la modifiques. En el segons cas, de manera similar

alexm commented 6 years ago

@perelosantos hi ha algun lloc més on es demanin aquestes dades o amb aquests canvis ja podem donar per resolt el problema?

Evidentment queda pendent la integració d'aquests canvis en el plugin de nexus24, però això ho deixo per més endavant.

perelosantos commented 6 years ago

Crec que només aquí, pensava que al perfil personal (preferències) les demanava però ara veig que no, o no ho sé trobar.

alexm commented 6 years ago

He estat jo qui he amagat l'opció del perfil d'usuari per evitar haver de modificar el formulari corresponent per treure el DNI, l'adreça, etc.

Així doncs, dono per resolt aquest problema també.