Skip to content

Commit

Permalink
Feature Values Module (#299)
Browse files Browse the repository at this point in the history
* change projects to be shown in map when a matcher is selected to use node configuration if available

* fix project filters in discover and use of inner joins in project get list function

* Fix user leave exceptions

* Create impact discover layout

* Test msg sass and js

* first steps for layout

* add filters js

* add ods icons behaviour

* fix grid

* add infinite scroll

* add ods images

* add icons

* fix desktop filters toggle

* move html to template

* add tab background images

* add home values module

* fix mobile layout for values module in home

* differentiate tabs backgrounds and fix mobile issues

* add class to tint images

* add home images

* support for short titles at project slider

* move lateral border in mobile to bottom

* fix layout to show footprint link at last block in mobile

* add real images of the real projects for impact discover and home values modules

* add last project home values images for testing

* add padding bottom to impact-discover

* update package-lock.json

* restore HTML & CSS

* delete comment

* Revert "update package-lock.json"

This reverts commit 5ae0c2d9e4d1de876a2c2deaf84fbe10830123f0.

* change use of footprint and sdgs assets from png to svg

* add dynamic footprints from database into home values and changes in footprint images

* add dynamic projects based on footprints and minimum amount and random selection

* add sdgs in home values based on footprint

* use of impact data in home values module

* add missing copies to home values

* change home values footprint info to be from model not from copies

* Create impact discover layout

* Test msg sass and js

* first steps for layout

* add filters js

* add ods icons behaviour

* fix grid

* add infinite scroll

* differentiate tabs backgrounds and fix mobile issues

* support for short titles at project slider

* add last project home values images for testing

* add padding bottom to impact-discover

* update package-lock.json

* restore HTML & CSS

* delete comment

* Revert "update package-lock.json"

This reverts commit 5ae0c2d9e4d1de876a2c2deaf84fbe10830123f0.

* change use of footprint and sdgs assets from png to svg

* add dynamic footprints from database into home values and changes in footprint images

* add dynamic projects based on footprints and minimum amount and random selection

* add sdgs in home values based on footprint

* use of impact data in home values module

* add missing copies to home values

* change home values footprint info to be from model not from copies

* Feature impact data (#213)

* fix route of poster in project dashboard

* Upgraded Symfony packages to v2.8.30 (last working version)

* Fix call to render method since it was renamed

(cherry picked from commit 5d93afab554e8211c59ed1f1ab21a2eb4ac75ad2)

* add composer.lock

* restore a early die if misconfiguration

* Updated Dockerfile to use an Ubuntu image that's not deprecated (#181)

* Updated Dockerfile to use an Ubuntu image that's not deprecated

* Removed Docker image based on date in favour of one that won't change

* fix/composer lock (#185)

* Fix call to render method since it was renamed

(cherry picked from commit 5d93afab554e8211c59ed1f1ab21a2eb4ac75ad2)

* remove lock to force deploy

Co-authored-by: Carlos Alberto Martínez Gadea <carlosmartinezgadea@gmail.com>

* Twitter card meta description fix

* change projects to be shown in map when a matcher is selected to use node configuration if available

* improve filters in discover and fix ajax query

(cherry picked from commit 0432ebb325b99d68c42e300493fca974a6142c0f)

* fix use of query parameters when they are not being used

* fix project filters in discover and use of inner joins in project get list function

* Add matcher completed status

* Fix icons size

* creation of impact data table to be used by different models using impactdatarelations trait

* add impact data admin module

* add impact data subtitle

* add impact data transformation model and api images endpoint

* add impact data test, still failing

* add permission to role

* fix on impact data tests

* fix impact data form  change description from markdown to textarea

* fix on impact data layouts and forms

* add missing labels

* change impact data model and add translation to model

* add translate action to impact data transformer

* change impact data form types to Symfony Form > 3 syntax

* rename impact data migration

* fix compatibility of tearDownAfterClass in ImpactDataTest

* rename impact data migration to new datetime

* add removed ImpactDataController from Config

* reset index

Co-authored-by: Carlos Alberto Martínez Gadea <carlosmartinezgadea@gmail.com>
Co-authored-by: Ivan Vergés <ivan@platoniq.net>
Co-authored-by: Javier <javicarrillo83@gmail.com>
Co-authored-by: Javier Carrillo <javier@goteo.org>

* fixes on migration test for footprint

* Upgrade to Symfony 3.4 (#232)

* fix install of grunt-cli to only install the 1.3.2 so that it does not brake with older versions of node

* Renew SSL certs until 2026

* Removed symfony/security-csrf package since it was colliding with symfony/security which replaces thr former one. Thanks to that, symfony/security can be safely updated to 2.8.52 .

* Removed enforcement to keep some Symfony package in v2.8.0 so they are now updatable to 2.8.52

* Added (un)zip packages to Dockerfile so we remove Composer warning (#170)

* Bug/fix unit tests (#171)

* Added missing PDO dependency which is in fact needed

* Fixed Sponsor model unit tests

* Removed pointless comments and deprecated method on Mail model

* Fixed Mail model unit tests

* Fixed TextTest translations tests due to missing and/or incorrect HTML tags/attributes

* Updated Matcher model tests

* Enforce PHP 7.1 as minimum PHP version in Composer

* Fixed HTML structure on newsletter template and removed commented CSS classes

* Improved readability, added parameter types and some small refactors on Mail model

* Improved readability and added parameter types on MatcherTest class

* Further cleanup on User and MatcherTest classes

* Downgraded minimum PHP version to the production one

* Reintroduced sqlWhere variable so we don't get errors since it's used in the code

* Fully reintroduced the Sponsor 'type' property and fixed related failing test

* Refactored call to obtain Sponsors list into a method

* Fix SQL query to obtain Sponsors list

* Fix Mail model tests along with issues on the HTML formatting with 2 related templates

* Changed method syntax so is PHP 7.0 compliant (it was using PHP 7.1 syntax)

* Fix Matcher model tests (some translations were missing when querying for them)

* Reduced tests verbosity (we don't need to know if users, projects, etc were removed when running tests)

* Ignored .idea (Jetbrains IDEs) folder

* Bumped PHPMailer to 6.x and fixed Mail model and test with related changes

* Bumped Mockery to 1.x

* Added OpenSSL extension, since it's used by AmazonSns and AuthListener classes

* Updated amazon-s3-php-class with many changes (last updated on 2015)

* Assure PHPMailer minimum version is 6.4

* Updated to PHPUnit 6.5

* Removed empty test along with unused imports

* Moved PHP extensions on composer file right after the PHP version for easy spotting

* Reduced verbosity on tests output so we can focus on seeing if the focus passed, failed, errored or were skipped

* Remove deprecated asserts and upgrade PHPUnit from 6.x to 7.x

* Bumped min PHP version to 7.1

* Upgrade PHP from 7.0/7.1 to 7.4

* Upgraded PHPUnit to 8.x (depends on PR that enforces PHP 7.4)

* Removed deprecated expectedException (will be removed on PHPUnit 9.x). Flipped assertEquals comparators to be compliant with expected/actual order.

* Removed deprecated class

* Got rid of last array curly braces access

* Removed duplicated key

* Removed deprecated (and unused) FlattenException import

* Removed last noisy message on PHPUnit so we only have test results status

* WIP Upgrade to Symfony 3.x

* Tidy index(_env).php files so they have less differences between them, for a future merge

* Got rid of index_dev.php in favor of index.php that read ENV DEBUG parameter

* Added import, rewritten some PHPDocs and added some return types

* Clean container.php

* Refactor getName() method from custom Symfony Form Types, so they just have getBlockPrefix() method

* Refactor to add Form Types as is required in Symfony 3

* Fix install of migrations on PHP 7.4 and latest Composer dependencies

* Fix RouteListener initialization. Fix DB setup.

* Use ::class to register services in the ServiceContainer instead of strings

* Fix composer.json so it reckognizes goteo-private tests

* Fix tests for App class (due to having renamed a property)

* Updated Omnipay dependency to the new one from league

* Grouped Composer dependencies

* Used Symfony HttpKernel class instead of HttpKernel\HttpKernel

* Removed unneeded package

* Cleanup Omnipay classes and fix some issues while initilizing the Payment Gateway

* Made final changes to support all Omnipay payment methods using Omnipay v3

* Deprecated static AbstractPaymentMethod::getId() method in favor of non static one

* Converted static calculateComission method into non-static calculateCommission

* Converted static AbstractPaymentMethod::isInternal() into a non-static method

* Add parameter / return types and import used classes

* Updated TelegramBot so it doesn't use deprecated code

* Reviewed controllers to ensure they follow Symfony 3 convention

* Add User property type

* Removed unused code

* Tidy up classes

* Removed unused parameters from PHPDoc

* Upgraded Symfony from 3.0 to 3.1

* Included some used classes

* Finalize migration to symfony/forms 3.x (there must be a getBlockPrefix() method on a new Type, even if their parents have the method

* Enforce getModelForm() & createFormBuilder() from controllers to return FormProcessorInterface & FormFactory respectively

* Fix return parameter of Controller::createFormBuilder() method and the controllers that inherit it

* Upgraded to Symfony 3.2

* Symfony packages upgraded to 3.3

* WIP Migration to Symfony 3.4 almost completed

* Fix call to Mail::renderEmailTemplate (got renamed recently)

* Fix Settings Dashboard form (ChoiceType elements had flipped key / values)

* Fix loading of ChoiceType and some minor refactors

* Fix ChoiceType for some forms related to Contract PersonDocumentTypes

* Revert BooleanType::getBlockPrefix() method so it returns 'boolean' which to match it's class name

* Refactor ProjectOverviewForm to fix it and to ease its reading

* Fix import of PDOException (it was written incorrectly)

* Fix ChoiceTypes on several Project related forms

* Refactor to use the new Controller:getModelForm() method that requires a class instead of just a string. Fixed some Symfony Forms due to incomplete migration when Symfony 3.0 upgrade.

* Refactored last controller that used the deprecated method to guess SymfonyForm class

* Tiny refactors

* Removed unnecessary EventDispatcher from Console class

* Clean up of some classes

* Change test to testLegacy, since the deprecation notice is due to Symfony code (and is due to expire on Symfony 4.3)

* Fix some Symfony Forms with unfinished migration to Symfony 3.x. Remove some unused code / comments.

* General cleanup of controllers

* Tiny cleanup

* Fix access to some admin pages

* Fix usage of DatepickerType so it actually replaces the Symfony type while keeping all it's parents features

* Fix admin blog add/edit form

* Fix behaviour of some custom Symfony Form Types

* Fix FilterForm so it conforms to Symfony 3.x standards

* Readd workshop_location table since it got removed sometime ago by mistake

* Fix Symfony Console (probably due to some incomplete step after migrating to Symfony 3.x)

* Fix admin workshop add/edit form

* Fix some translations

* Refactor Sponsors controller

* Fix broken CSS on Call edit form for rewards items

* Fix admin Stories add/edit form

* Fix CSS error while displaying TypeaheadType form elements

* Fix Controller::redirect() parameter types

* Fix admin Channel Questionnaire and Channel Section forms to add/edit

* Fix Admin Charts API controller

* Cleanup SessionListener

* Reformatted Filter and Project models

* Simplify public/index.php

* Cleanup main PHP classes

* Minor refactors on controllers

* Removed deprecated mcrypt PHP extension

* Removed deprecated mcrypt PHP extension from composer.lock

* Fix SQL migration

* Fix SQL migration related to mail table

* Fix SQL migration related to mail table

* Fix SQL migration related to mail table

* Improved Docker readme

* Moved Omnipay/Mock/Gateway class to goteo repository (is needed to run PHPUnits successfully)

* Feature/symfony upgrade to.3.4 (#222)

* fix install of grunt-cli to only install the 1.3.2 so that it does not brake with older versions of node

* Renew SSL certs until 2026

* Removed symfony/security-csrf package since it was colliding with symfony/security which replaces thr former one. Thanks to that, symfony/security can be safely updated to 2.8.52 .

* Removed enforcement to keep some Symfony package in v2.8.0 so they are now updatable to 2.8.52

* Added (un)zip packages to Dockerfile so we remove Composer warning (#170)

* Bug/fix unit tests (#171)

* Added missing PDO dependency which is in fact needed

* Fixed Sponsor model unit tests

* Removed pointless comments and deprecated method on Mail model

* Fixed Mail model unit tests

* Fixed TextTest translations tests due to missing and/or incorrect HTML tags/attributes

* Updated Matcher model tests

* Enforce PHP 7.1 as minimum PHP version in Composer

* Fixed HTML structure on newsletter template and removed commented CSS classes

* Improved readability, added parameter types and some small refactors on Mail model

* Improved readability and added parameter types on MatcherTest class

* Further cleanup on User and MatcherTest classes

* Downgraded minimum PHP version to the production one

* Reintroduced sqlWhere variable so we don't get errors since it's used in the code

* Fully reintroduced the Sponsor 'type' property and fixed related failing test

* Refactored call to obtain Sponsors list into a method

* Fix SQL query to obtain Sponsors list

* Fix Mail model tests along with issues on the HTML formatting with 2 related templates

* Changed method syntax so is PHP 7.0 compliant (it was using PHP 7.1 syntax)

* Fix Matcher model tests (some translations were missing when querying for them)

* Reduced tests verbosity (we don't need to know if users, projects, etc were removed when running tests)

* Ignored .idea (Jetbrains IDEs) folder

* Bumped PHPMailer to 6.x and fixed Mail model and test with related changes

* Bumped Mockery to 1.x

* Added OpenSSL extension, since it's used by AmazonSns and AuthListener classes

* Updated amazon-s3-php-class with many changes (last updated on 2015)

* Assure PHPMailer minimum version is 6.4

* Updated to PHPUnit 6.5

* Removed empty test along with unused imports

* Moved PHP extensions on composer file right after the PHP version for easy spotting

* Reduced verbosity on tests output so we can focus on seeing if the focus passed, failed, errored or were skipped

* Remove deprecated asserts and upgrade PHPUnit from 6.x to 7.x

* Bumped min PHP version to 7.1

* Upgrade PHP from 7.0/7.1 to 7.4

* Upgraded PHPUnit to 8.x (depends on PR that enforces PHP 7.4)

* Removed deprecated expectedException (will be removed on PHPUnit 9.x). Flipped assertEquals comparators to be compliant with expected/actual order.

* Removed deprecated class

* Got rid of last array curly braces access

* Removed duplicated key

* Removed deprecated (and unused) FlattenException import

* Removed last noisy message on PHPUnit so we only have test results status

* WIP Upgrade to Symfony 3.x

* Tidy index(_env).php files so they have less differences between them, for a future merge

* Got rid of index_dev.php in favor of index.php that read ENV DEBUG parameter

* Added import, rewritten some PHPDocs and added some return types

* Clean container.php

* Refactor getName() method from custom Symfony Form Types, so they just have getBlockPrefix() method

* Refactor to add Form Types as is required in Symfony 3

* Fix install of migrations on PHP 7.4 and latest Composer dependencies

* Fix RouteListener initialization. Fix DB setup.

* Use ::class to register services in the ServiceContainer instead of strings

* Fix composer.json so it reckognizes goteo-private tests

* Fix tests for App class (due to having renamed a property)

* Updated Omnipay dependency to the new one from league

* Grouped Composer dependencies

* Used Symfony HttpKernel class instead of HttpKernel\HttpKernel

* Removed unneeded package

* Cleanup Omnipay classes and fix some issues while initilizing the Payment Gateway

* Made final changes to support all Omnipay payment methods using Omnipay v3

* Deprecated static AbstractPaymentMethod::getId() method in favor of non static one

* Converted static calculateComission method into non-static calculateCommission

* Converted static AbstractPaymentMethod::isInternal() into a non-static method

* Add parameter / return types and import used classes

* Updated TelegramBot so it doesn't use deprecated code

* Reviewed controllers to ensure they follow Symfony 3 convention

* Add User property type

* Removed unused code

* Tidy up classes

* Removed unused parameters from PHPDoc

* Upgraded Symfony from 3.0 to 3.1

* Included some used classes

* Finalize migration to symfony/forms 3.x (there must be a getBlockPrefix() method on a new Type, even if their parents have the method

* Enforce getModelForm() & createFormBuilder() from controllers to return FormProcessorInterface & FormFactory respectively

* Fix return parameter of Controller::createFormBuilder() method and the controllers that inherit it

* Upgraded to Symfony 3.2

* Symfony packages upgraded to 3.3

* WIP Migration to Symfony 3.4 almost completed

* Fix call to Mail::renderEmailTemplate (got renamed recently)

* Fix Settings Dashboard form (ChoiceType elements had flipped key / values)

* Fix loading of ChoiceType and some minor refactors

* Fix ChoiceType for some forms related to Contract PersonDocumentTypes

* Revert BooleanType::getBlockPrefix() method so it returns 'boolean' which to match it's class name

* Refactor ProjectOverviewForm to fix it and to ease its reading

* Fix import of PDOException (it was written incorrectly)

* Fix ChoiceTypes on several Project related forms

* Refactor to use the new Controller:getModelForm() method that requires a class instead of just a string. Fixed some Symfony Forms due to incomplete migration when Symfony 3.0 upgrade.

* Refactored last controller that used the deprecated method to guess SymfonyForm class

* Tiny refactors

* Removed unnecessary EventDispatcher from Console class

* Clean up of some classes

* Change test to testLegacy, since the deprecation notice is due to Symfony code (and is due to expire on Symfony 4.3)

* Fix some Symfony Forms with unfinished migration to Symfony 3.x. Remove some unused code / comments.

* General cleanup of controllers

* Tiny cleanup

* Fix access to some admin pages

* Fix usage of DatepickerType so it actually replaces the Symfony type while keeping all it's parents features

* Fix admin blog add/edit form

* Fix behaviour of some custom Symfony Form Types

* Fix FilterForm so it conforms to Symfony 3.x standards

* Readd workshop_location table since it got removed sometime ago by mistake

* Fix Symfony Console (probably due to some incomplete step after migrating to Symfony 3.x)

* Fix admin workshop add/edit form

* Fix some translations

* Refactor Sponsors controller

* Fix broken CSS on Call edit form for rewards items

* Fix admin Stories add/edit form

* Fix CSS error while displaying TypeaheadType form elements

* Fix Controller::redirect() parameter types

* Fix admin Channel Questionnaire and Channel Section forms to add/edit

* Fix Admin Charts API controller

* Cleanup SessionListener

* Reformatted Filter and Project models

* Simplify public/index.php

* Cleanup main PHP classes

* Minor refactors on controllers

* Removed deprecated mcrypt PHP extension

* Removed deprecated mcrypt PHP extension from composer.lock

* Fix SQL migration

* Fix SQL migration related to mail table

* Fix SQL migration related to mail table

* Fix SQL migration related to mail table

* Improved Docker readme

* Moved Omnipay/Mock/Gateway class to goteo repository (is needed to run PHPUnits successfully)

Co-authored-by: Javier <javicarrillo83@gmail.com>
Co-authored-by: David Igón <david@goteo.org>
Co-authored-by: Ivan Vergés <ivan@platoniq.net>

* Feature/symfony upgrade to.3.4 (#231)

* fix install of grunt-cli to only install the 1.3.2 so that it does not brake with older versions of node

* Renew SSL certs until 2026

* Removed symfony/security-csrf package since it was colliding with symfony/security which replaces thr former one. Thanks to that, symfony/security can be safely updated to 2.8.52 .

* Removed enforcement to keep some Symfony package in v2.8.0 so they are now updatable to 2.8.52

* Added (un)zip packages to Dockerfile so we remove Composer warning (#170)

* Bug/fix unit tests (#171)

* Added missing PDO dependency which is in fact needed

* Fixed Sponsor model unit tests

* Removed pointless comments and deprecated method on Mail model

* Fixed Mail model unit tests

* Fixed TextTest translations tests due to missing and/or incorrect HTML tags/attributes

* Updated Matcher model tests

* Enforce PHP 7.1 as minimum PHP version in Composer

* Fixed HTML structure on newsletter template and removed commented CSS classes

* Improved readability, added parameter types and some small refactors on Mail model

* Improved readability and added parameter types on MatcherTest class

* Further cleanup on User and MatcherTest classes

* Downgraded minimum PHP version to the production one

* Reintroduced sqlWhere variable so we don't get errors since it's used in the code

* Fully reintroduced the Sponsor 'type' property and fixed related failing test

* Refactored call to obtain Sponsors list into a method

* Fix SQL query to obtain Sponsors list

* Fix Mail model tests along with issues on the HTML formatting with 2 related templates

* Changed method syntax so is PHP 7.0 compliant (it was using PHP 7.1 syntax)

* Fix Matcher model tests (some translations were missing when querying for them)

* Reduced tests verbosity (we don't need to know if users, projects, etc were removed when running tests)

* Ignored .idea (Jetbrains IDEs) folder

* Bumped PHPMailer to 6.x and fixed Mail model and test with related changes

* Bumped Mockery to 1.x

* Added OpenSSL extension, since it's used by AmazonSns and AuthListener classes

* Updated amazon-s3-php-class with many changes (last updated on 2015)

* Assure PHPMailer minimum version is 6.4

* Updated to PHPUnit 6.5

* Removed empty test along with unused imports

* Moved PHP extensions on composer file right after the PHP version for easy spotting

* Reduced verbosity on tests output so we can focus on seeing if the focus passed, failed, errored or were skipped

* Remove deprecated asserts and upgrade PHPUnit from 6.x to 7.x

* Bumped min PHP version to 7.1

* Upgrade PHP from 7.0/7.1 to 7.4

* Upgraded PHPUnit to 8.x (depends on PR that enforces PHP 7.4)

* Removed deprecated expectedException (will be removed on PHPUnit 9.x). Flipped assertEquals comparators to be compliant with expected/actual order.

* Removed deprecated class

* Got rid of last array curly braces access

* Removed duplicated key

* Removed deprecated (and unused) FlattenException import

* Removed last noisy message on PHPUnit so we only have test results status

* WIP Upgrade to Symfony 3.x

* Tidy index(_env).php files so they have less differences between them, for a future merge

* Got rid of index_dev.php in favor of index.php that read ENV DEBUG parameter

* Added import, rewritten some PHPDocs and added some return types

* Clean container.php

* Refactor getName() method from custom Symfony Form Types, so they just have getBlockPrefix() method

* Refactor to add Form Types as is required in Symfony 3

* Fix install of migrations on PHP 7.4 and latest Composer dependencies

* Fix RouteListener initialization. Fix DB setup.

* Use ::class to register services in the ServiceContainer instead of strings

* Fix composer.json so it reckognizes goteo-private tests

* Fix tests for App class (due to having renamed a property)

* Updated Omnipay dependency to the new one from league

* Grouped Composer dependencies

* Used Symfony HttpKernel class instead of HttpKernel\HttpKernel

* Removed unneeded package

* Cleanup Omnipay classes and fix some issues while initilizing the Payment Gateway

* Made final changes to support all Omnipay payment methods using Omnipay v3

* Deprecated static AbstractPaymentMethod::getId() method in favor of non static one

* Converted static calculateComission method into non-static calculateCommission

* Converted static AbstractPaymentMethod::isInternal() into a non-static method

* Add parameter / return types and import used classes

* Updated TelegramBot so it doesn't use deprecated code

* Reviewed controllers to ensure they follow Symfony 3 convention

* Add User property type

* Removed unused code

* Tidy up classes

* Removed unused parameters from PHPDoc

* Upgraded Symfony from 3.0 to 3.1

* Included some used classes

* Finalize migration to symfony/forms 3.x (there must be a getBlockPrefix() method on a new Type, even if their parents have the method

* Enforce getModelForm() & createFormBuilder() from controllers to return FormProcessorInterface & FormFactory respectively

* Fix return parameter of Controller::createFormBuilder() method and the controllers that inherit it

* Upgraded to Symfony 3.2

* Symfony packages upgraded to 3.3

* WIP Migration to Symfony 3.4 almost completed

* Fix call to Mail::renderEmailTemplate (got renamed recently)

* Fix Settings Dashboard form (ChoiceType elements had flipped key / values)

* Fix loading of ChoiceType and some minor refactors

* Fix ChoiceType for some forms related to Contract PersonDocumentTypes

* Revert BooleanType::getBlockPrefix() method so it returns 'boolean' which to match it's class name

* Refactor ProjectOverviewForm to fix it and to ease its reading

* Fix import of PDOException (it was written incorrectly)

* Fix ChoiceTypes on several Project related forms

* Refactor to use the new Controller:getModelForm() method that requires a class instead of just a string. Fixed some Symfony Forms due to incomplete migration when Symfony 3.0 upgrade.

* Refactored last controller that used the deprecated method to guess SymfonyForm class

* Tiny refactors

* Removed unnecessary EventDispatcher from Console class

* Clean up of some classes

* Change test to testLegacy, since the deprecation notice is due to Symfony code (and is due to expire on Symfony 4.3)

* Fix some Symfony Forms with unfinished migration to Symfony 3.x. Remove some unused code / comments.

* General cleanup of controllers

* Tiny cleanup

* Fix access to some admin pages

* Fix usage of DatepickerType so it actually replaces the Symfony type while keeping all it's parents features

* Fix admin blog add/edit form

* Fix behaviour of some custom Symfony Form Types

* Fix FilterForm so it conforms to Symfony 3.x standards

* Readd workshop_location table since it got removed sometime ago by mistake

* Fix Symfony Console (probably due to some incomplete step after migrating to Symfony 3.x)

* Fix admin workshop add/edit form

* Fix some translations

* Refactor Sponsors controller

* Fix broken CSS on Call edit form for rewards items

* Fix admin Stories add/edit form

* Fix CSS error while displaying TypeaheadType form elements

* Fix Controller::redirect() parameter types

* Fix admin Channel Questionnaire and Channel Section forms to add/edit

* Fix Admin Charts API controller

* Cleanup SessionListener

* Reformatted Filter and Project models

* Simplify public/index.php

* Cleanup main PHP classes

* Minor refactors on controllers

* Removed deprecated mcrypt PHP extension

* Removed deprecated mcrypt PHP extension from composer.lock

* Fix SQL migration

* Fix SQL migration related to mail table

* Fix SQL migration related to mail table

* Fix SQL migration related to mail table

* Improved Docker readme

* make loggin resilient to Gelf updates failures (#225)

* make loggin resilient to Gelf updates failures

* ignore redundant exception thrown

* fix on deprecated implode call (#229)

* update oauth library for linkedin (#226)

* add deployer script

* refactor subdomain processing and add test to it (#205)

* fix/var subs (#215)

* refactor subdomain processing and add test to it (#204)

* refactor subdomain processing and add test to it

* add other envs to deployment

* make config process deep ENV substitution

* fix/var subs (#216)

* refactor subdomain processing and add test to it (#204)

* refactor subdomain processing and add test to it

* add other envs to deployment

* make config process deep ENV substitution

* fix namespace

* update oauth library for linkedin

* update up to a working commit

* fix linkedin call

* remove orphan location stats (#230)

* Moved Omnipay/Mock/Gateway class to goteo repository (is needed to run PHPUnits successfully)

Co-authored-by: Javier <javicarrillo83@gmail.com>
Co-authored-by: David Igón <david@goteo.org>
Co-authored-by: Ivan Vergés <ivan@platoniq.net>
Co-authored-by: David <david.igon@riseup.net>

* Upgraded to PHPUnit 9

* Removed Rector file since it's no longer needed

* Minor fix to use constant instead of hardcoded text

* Renamed test file in order to comply with PSR-12 and PHPUnit 9

* Feature/symfony upgrade to.3.4 (#242)

* fix install of grunt-cli to only install the 1.3.2 so that it does not brake with older versions of node

* Renew SSL certs until 2026

* Removed symfony/security-csrf package since it was colliding with symfony/security which replaces thr former one. Thanks to that, symfony/security can be safely updated to 2.8.52 .

* Removed enforcement to keep some Symfony package in v2.8.0 so they are now updatable to 2.8.52

* Added (un)zip packages to Dockerfile so we remove Composer warning (#170)

* Bug/fix unit tests (#171)

* Added missing PDO dependency which is in fact needed

* Fixed Sponsor model unit tests

* Removed pointless comments and deprecated method on Mail model

* Fixed Mail model unit tests

* Fixed TextTest translations tests due to missing and/or incorrect HTML tags/attributes

* Updated Matcher model tests

* Enforce PHP 7.1 as minimum PHP version in Composer

* Fixed HTML structure on newsletter template and removed commented CSS classes

* Improved readability, added parameter types and some small refactors on Mail model

* Improved readability and added parameter types on MatcherTest class

* Further cleanup on User and MatcherTest classes

* Downgraded minimum PHP version to the production one

* Reintroduced sqlWhere variable so we don't get errors since it's used in the code

* Fully reintroduced the Sponsor 'type' property and fixed related failing test

* Refactored call to obtain Sponsors list into a method

* Fix SQL query to obtain Sponsors list

* Fix Mail model tests along with issues on the HTML formatting with 2 related templates

* Changed method syntax so is PHP 7.0 compliant (it was using PHP 7.1 syntax)

* Fix Matcher model tests (some translations were missing when querying for them)

* Reduced tests verbosity (we don't need to know if users, projects, etc were removed when running tests)

* Ignored .idea (Jetbrains IDEs) folder

* Bumped PHPMailer to 6.x and fixed Mail model and test with related changes

* Bumped Mockery to 1.x

* Added OpenSSL extension, since it's used by AmazonSns and AuthListener classes

* Updated amazon-s3-php-class with many changes (last updated on 2015)

* Assure PHPMailer minimum version is 6.4

* Updated to PHPUnit 6.5

* Removed empty test along with unused imports

* Moved PHP extensions on composer file right after the PHP version for easy spotting

* Reduced verbosity on tests output so we can focus on seeing if the focus passed, failed, errored or were skipped

* Remove deprecated asserts and upgrade PHPUnit from 6.x to 7.x

* Bumped min PHP version to 7.1

* Upgrade PHP from 7.0/7.1 to 7.4

* Upgraded PHPUnit to 8.x (depends on PR that enforces PHP 7.4)

* Removed deprecated expectedException (will be removed on PHPUnit 9.x). Flipped assertEquals comparators to be compliant with expected/actual order.

* Removed deprecated class

* Got rid of last array curly braces access

* Removed duplicated key

* Removed deprecated (and unused) FlattenException import

* Removed last noisy message on PHPUnit so we only have test results status

* WIP Upgrade to Symfony 3.x

* Tidy index(_env).php files so they have less differences between them, for a future merge

* Got rid of index_dev.php in favor of index.php that read ENV DEBUG parameter

* Added import, rewritten some PHPDocs and added some return types

* Clean container.php

* Refactor getName() method from custom Symfony Form Types, so they just have getBlockPrefix() method

* Refactor to add Form Types as is required in Symfony 3

* Fix install of migrations on PHP 7.4 and latest Composer dependencies

* Fix RouteListener initialization. Fix DB setup.

* Use ::class to register services in the ServiceContainer instead of strings

* Fix composer.json so it reckognizes goteo-private tests

* Fix tests for App class (due to having renamed a property)

* Updated Omnipay dependency to the new one from league

* Grouped Composer dependencies

* Used Symfony HttpKernel class instead of HttpKernel\HttpKernel

* Removed unneeded package

* Cleanup Omnipay classes and fix some issues while initilizing the Payment Gateway

* Made final changes to support all Omnipay payment methods using Omnipay v3

* Deprecated static AbstractPaymentMethod::getId() method in favor of non static one

* Converted static calculateComission method into non-static calculateCommission

* Converted static AbstractPaymentMethod::isInternal() into a non-static method

* Add parameter / return types and import used classes

* Updated TelegramBot so it doesn't use deprecated code

* Reviewed controllers to ensure they follow Symfony 3 convention

* Add User property type

* Removed unused code

* Tidy up classes

* Removed unused parameters from PHPDoc

* Upgraded Symfony from 3.0 to 3.1

* Included some used classes

* Finalize migration to symfony/forms 3.x (there must be a getBlockPrefix() method on a new Type, even if their parents have the method

* Enforce getModelForm() & createFormBuilder() from controllers to return FormProcessorInterface & FormFactory respectively

* Fix return parameter of Controller::createFormBuilder() method and the controllers that inherit it

* Upgraded to Symfony 3.2

* Symfony packages upgraded to 3.3

* WIP Migration to Symfony 3.4 almost completed

* Fix call to Mail::renderEmailTemplate (got renamed recently)

* Fix Settings Dashboard form (ChoiceType elements had flipped key / values)

* Fix loading of ChoiceType and some minor refactors

* Fix ChoiceType for some forms related to Contract PersonDocumentTypes

* Revert BooleanType::getBlockPrefix() method so it returns 'boolean' which to match it's class name

* Refactor ProjectOverviewForm to fix it and to ease its reading

* Fix import of PDOException (it was written incorrectly)

* Fix ChoiceTypes on several Project related forms

* Refactor to use the new Controller:getModelForm() method that requires a class instead of just a string. Fixed some Symfony Forms due to incomplete migration when Symfony 3.0 upgrade.

* Refactored last controller that used the deprecated method to guess SymfonyForm class

* Tiny refactors

* Removed unnecessary EventDispatcher from Console class

* Clean up of some classes

* Change test to testLegacy, since the deprecation notice is due to Symfony code (and is due to expire on Symfony 4.3)

* Fix some Symfony Forms with unfinished migration to Symfony 3.x. Remove some unused code / comments.

* General cleanup of controllers

* Tiny cleanup

* Fix access to some admin pages

* Fix usage of DatepickerType so it actually replaces the Symfony type while keeping all it's parents features

* Fix admin blog add/edit form

* Fix behaviour of some custom Symfony Form Types

* Fix FilterForm so it conforms to Symfony 3.x standards

* Readd workshop_location table since it got removed sometime ago by mistake

* Fix Symfony Console (probably due to some incomplete step after migrating to Symfony 3.x)

* Fix admin workshop add/edit form

* Fix some translations

* Refactor Sponsors controller

* Fix broken CSS on Call edit form for rewards items

* Fix admin Stories add/edit form

* Fix CSS error while displaying TypeaheadType form elements

* Fix Controller::redirect() parameter types

* Fix admin Channel Questionnaire and Channel Section forms to add/edit

* Fix Admin Charts API controller

* Cleanup SessionListener

* Reformatted Filter and Project models

* Simplify public/index.php

* Cleanup main PHP classes

* Minor refactors on controllers

* Removed deprecated mcrypt PHP extension

* Removed deprecated mcrypt PHP extension from composer.lock

* Fix SQL migration

* Fix SQL migration related to mail table

* Fix SQL migration related to mail table

* Fix SQL migration related to mail table

* Improved Docker readme

* make loggin resilient to Gelf updates failures (#225)

* make loggin resilient to Gelf updates failures

* ignore redundant exception thrown

* fix on deprecated implode call (#229)

* update oauth library for linkedin (#226)

* add deployer script

* refactor subdomain processing and add test to it (#205)

* fix/var subs (#215)

* refactor subdomain processing and add test to it (#204)

* refactor subdomain processing and add test to it

* add other envs to deployment

* make config process deep ENV substitution

* fix/var subs (#216)

* refactor subdomain processing and add test to it (#204)

* refactor subdomain processing and add test to it

* add other envs to deployment

* make config process deep ENV substitution

* fix namespace

* update oauth library for linkedin

* update up to a working commit

* fix linkedin call

* remove orphan location stats (#230)

* Moved Omnipay/Mock/Gateway class to goteo repository (is needed to run PHPUnits successfully)

* Upgraded to PHPUnit 9

* Removed Rector file since it's no longer needed

* Minor fix to use constant instead of hardcoded text

* fix on deprecated implode call in Check (#233)

* Feature: Project can share a url to a signature platform (#234)

* Add sign_url field to Project and to Project Forms

* Make new project fields not required

* Add signture button in project skin

* Fix signature css

* Fix css and target blank link

Co-authored-by: Javier Carrillo <javier@goteo.org>
Co-authored-by: David Igón <david@goteo.org>

* make new project sign fields not required in translate overview form (#236)

* update aws-sns script (#241)

* Display cursor at current tab projects' button on homepage (#237)

* Display cursor at current tab projects' button on homepage

* Display cursor at current tab projects' button on homepage

* Fix dropfiles type after symfony BC in 2.8.31 (#199)

* add deployer script

* update symfony to ^2.8

* remove url from dropfiles in forms

* make uploadimagetransformer save image so that it updates the file name

* some fixes

* fix user profile form to save avatar

* rework of dropfiles type and js

* rework of all forms with dropfiles

* small fixes in model transformers

* refactor subdomain processing and add test to it (#205)

* fix/var subs (#215)

* refactor subdomain processing and add test to it (#204)

* refactor subdomain processing and add test to it

* add other envs to deployment

* make config process deep ENV substitution

* fix/var subs (#216)

* refactor subdomain processing and add test to it (#204)

* refactor subdomain processing and add test to it

* add other envs to deployment

* make config process deep ENV substitution

* fix namespace

* update oauth library for linkedin

* fix/linkedin (#227)

* Update live base code with latest fixes (#218)

* add project name to project translate overview

* fix route of poster in project dashboard

* Upgraded Symfony packages to v2.8.30 (last working version)

* Fix call to render method since it was renamed

(cherry picked from commit 5d93afab554e8211c59ed1f1ab21a2eb4ac75ad2)

* add composer.lock

* restore a early die if misconfiguration

* Updated Dockerfile to use an Ubuntu image that's not deprecated (#181)

* Updated Dockerfile to use an Ubuntu image that's not deprecated

* Removed Docker image based on date in favour of one that won't change

* fix/composer lock (#185)

* Fix call to render method since it was renamed

(cherry picked from commit 5d93afab554e8211c59ed1f1ab21a2eb4ac75ad2)

* remove lock to force deploy

Co-authored-by: Carlos Alberto Martínez Gadea <carlosmartinezgadea@gmail.com>

* Twitter card meta description fix

* change projects to be shown in map when a matcher is selected to use node configuration if available

* improve filters in discover and fix ajax query

(cherry picked from commit 0432ebb325b99d68c42e300493fca974a6142c0f)

* fix use of query parameters when they are not being used

* fix project filters in discover and use of inner joins in project get list function

* Add matcher completed status

* Fix icons size

* Fix user leave exceptions

* remove comment on sql project name selects

* fix missing ) on fallback lang in Project published

* fix on config test yaml with env parameters

* add entries in docker settings to be used in yaml test

* change in config test to use real yaml instead of inserting env variables

* fix removing log in public index since its done via plugin

Co-authored-by: Carlos Alberto Martínez Gadea <carlosmartinezgadea@gmail.com>
Co-authored-by: Ivan Vergés <ivan@platoniq.net>
Co-authored-by: Javier <javicarrillo83@gmail.com>
Co-authored-by: Javier Carrillo <javier@goteo.org>

* specify region before connecting to s3 (#219)

* fix on deprecated parse_str without  variable (#221)

* make loggin resilient to Gelf updates failures (#225)

* make loggin resilient to Gelf updates failures

* ignore redundant exception thrown

* update oauth library for linkedin

Co-authored-by: David <david.igon@riseup.net>
Co-authored-by: Carlos Alberto Martínez Gadea <carlosmartinezgadea@gmail.com>
Co-authored-by: Javier <javicarrillo83@gmail.com>
Co-authored-by: Javier Carrillo <javier@goteo.org>

* update up to a working commit

* fix linkedin call

* remove unnecessary comments from Forms

* Fix AdminStoryEdit form so it can properly add, save and remove the 3 types of images it has

* Refactor to have a unique place where to handle additions, changes or removals of pictures on a form

* Fix ProjectPostForm so it adds, edits and removes pictures correctly

* add sign_url field to Project and to Project Forms

* make new project fields not required

* Add signture button in project skin

* [STAGING deploy] Feature: Project can share a url to a signature platform (#235)

* fix on deprecated implode call (#229)

* update oauth library for linkedin (#226)

* add deployer script

* refactor subdomain processing and add test to it (#205)

* fix/var subs (#215)

* refactor subdomain processing and add test to it (#204)

* refactor subdomain processing and add test to it

* add other envs to deployment

* make config process deep ENV substitution

* fix/var subs (#216)

* refactor subdomain processing and add test to it (#204)

* refactor subdomain processing and add test to it

* add other envs to deployment

* make config process deep ENV substitution

* fix namespace

* update oauth library for linkedin

* update up to a working commit

* fix linkedin call

* remove orphan location stats (#230)

* fix on deprecated implode call in Check (#233)

* add sign_url field to Project and to Project Forms

* make new project fields not required

* Add signture button in project skin

Co-authored-by: Ivan Vergés <ivan@platoniq.net>
Co-authored-by: Javier Carrillo <javier@goteo.org>

* Fix signature css

* Fix css and target blank link

* update composer.lock to symfony 2.8.52

* Fix AdminSdgEdit form in order to allow removing the Sdf icon

* Fix ProjectStory form, since it wasn't possible to upload, update or remove images to the ProjectStory

* Fix Questionnaire form so it saves the uploaded image ID as the answer for Dropfiles

* fixes on questionnaire form to handle upload of documents instead of images

* Refactor on DropfilesType to include constant and to separate the different view elements added as a DropfilesType

Co-authored-by: Ivan Vergés <ivan@platoniq.net>
Co-authored-by: Carlos Alberto Martínez Gadea <carlosmartinezgadea@gmail.com>
Co-authored-by: Javier <javicarrillo83@gmail.com>
Co-authored-by: Javier Carrillo <javier@goteo.org>

* Renamed test file in order to comply with PSR-12 and PHPUnit 9

Co-authored-by: Javier <javicarrillo83@gmail.com>
Co-authored-by: David Igón <david@goteo.org>
Co-authored-by: Ivan Vergés <ivan@platoniq.net>
Co-authored-by: David <david.igon@riseup.net>
Co-authored-by: Javier Carrillo <javier@goteo.org>

* Feature/symfony upgrade to.3.4 (#243)

* fix install of grunt-cli to only install the 1.3.2 so that it does not brake with older versions of node

* Renew SSL certs until 2026

* Removed symfony/security-csrf package since it was colliding with symfony/security which replaces thr former one. Thanks to that, symfony/security can be safely updated to 2.8.52 .

* Removed enforcement to keep some Symfony package in v2.8.0 so they are now updatable to 2.8.52

* Added (un)zip packages to Dockerfile so we remove Composer warning (#170)

* Bug/fix unit tests (#171)

* Added missing PDO dependency which is in fact needed

* Fixed Sponsor model unit tests

* Removed pointless comments and deprecated method on Mail model

* Fixed Mail model unit tests

* Fixed TextTest translations tests due to missing and/or incorrect HTML tags/attributes

* Updated Matcher model tests

* Enforce PHP 7.1 as minimum PHP version in Composer

* Fixed HTML structure on newsletter template and removed commented CSS classes

* Improved readability, added parameter types and some small refactors on Mail model

* Improved readability and added parameter types on MatcherTest class

* Further cleanup on User and MatcherTest classes

* Downgraded minimum PHP version to the production one

* Reintroduced sqlWhere variable so we don't get errors since it's used in the code

* Fully reintroduced the Sponsor 'type' property and fixed related failing test

* Refactored call to obtain Sponsors list into a method

* Fix SQL query to obtain Sponsors list

* Fix Mail model tests along with issues on the HTML formatting with 2 related templates

* Changed method syntax so is PHP 7.0 compliant (it was using PHP 7.1 syntax)

* Fix Matcher model tests (some translations were missing when querying for them)

* Reduced tests verbosity (we don't need to know if users, projects, etc were removed when running tests)

* Ignored .idea (Jetbrains IDEs) folder

* Bumped PHPMailer to 6.x and fixed Mail model and test with related changes

* Bumped Mockery to 1.x

* Added OpenSSL extension, since it's used by AmazonSns and AuthListener classes

* Updated amazon-s3-php-class with many changes (last updated on 2015)

* Assure PHPMailer minimum version is 6.4

* Updated to PHPUnit 6.5

* Removed empty test along with unused imports

* Moved PHP extensions on composer file right after the PHP version for easy spotting

* Reduced verbosity on tests output so we can focus on seeing if the focus passed, failed, errored or were skipped

* Remove deprecated asserts and upgrade PHPUnit from 6.x to 7.x

* Bumped min PHP version to 7.1

* Upgrade PHP from 7.0/7.1 to 7.4

* Upgraded PHPUnit to 8.x (depends on PR that enforces PHP 7.4)

* Removed deprecated expectedException (will be removed on PHPUnit 9.x). Flipped assertEquals comparators to be compliant with expected/actual order.

* Removed deprecated class

* Got rid of last array curly braces access

* Removed duplicated key

* Removed deprecated (and unused) FlattenException import

* Removed last noisy message on PHPUnit so we only have test results status

* WIP Upgrade to Symfony 3.x

* Tidy index(_env).php files so they have less differences between them, for a future merge

* Got rid of index_dev.php in favor of index.php that read ENV DEBUG parameter

* Added import, rewritten some PHPDocs and added some return types

* Clean container.php

* Refactor getName() method from custom Symfony Form Types, so they just have getBlockPrefix() method

* Refactor to add Form Types as is required in Symfony 3

* Fix install of migrations on PHP 7.4 and latest Composer dependencies

* Fix RouteListener initialization. Fix DB setup.

* Use ::class to register services in the ServiceContainer instead of strings

* Fix composer.json so it reckognizes goteo-private tests

* Fix tests for App class (due to having renamed a property)

* Updated Omnipay dependency to the new one from league

* Grouped Composer dependencies

* Used Symfony HttpKernel class instead of HttpKernel\HttpKernel

* Removed unneeded package

* Cleanup Omnipay classes and fix some issues while initilizing the Payment Gateway

* Made final changes to support all Omnipay payment methods using Omnipay v3

* Deprecated static AbstractPaymentMethod::getId() method in favor of non static one

* Converted static calculateComission method into non-static calculateCommission

* Converted static AbstractPaymentMethod::isInternal() into a non-static method

* Add parameter / return types and import used classes

* Updated TelegramBot so it doesn't use deprecated code

* Reviewed controllers to ensure they follow Symfony 3 convention

* Add User property type

* Removed unused code

* Tidy up classes

* Removed unused parameters from PHPDoc

* Upgraded Symfony from 3.0 to 3.1

* Included some used classes

* Finalize migration to symfony/forms 3.x (there must be a getBlockPrefix() method on a new Type, even if their parents have the method

* Enforce getModelForm() & createFormBuilder() from controllers to return FormProcessorInterface & FormFactory respectively

* Fix return parameter of Controller::createFormBuilder() method and the controllers that inherit it

* Upgraded to Symfony 3.2

* Symfony packages upgraded to 3.3

* WIP Migration to Symfony 3.4 almost completed

* Fix call to Mail::renderEmailTemplate (got renamed recently)

* Fix Settings Dashboard form (ChoiceType elements had flipped key / values)

* Fix loading of ChoiceType and some minor refactors

* Fix ChoiceType for some forms related to Contract PersonDocumentTypes

* Revert BooleanType::getBlockPrefix() method so it returns 'boolean' which to match it's class name

* Refactor ProjectOverviewForm to fix it and to ease its reading

* Fix import of PDOException (it was written incorrectly)

* Fix ChoiceTypes on several Project related forms

* Refactor to use the new Controller:getModelForm() method that requires a class instead of just a string. Fixed some Symfony Forms due to incomplete migration when Symfony 3.0 upgrade.

* Refactored last controller that used the deprecated method to guess SymfonyForm class

* Tiny refactors

* Removed unnecessary EventDispatcher from Console class

* Clean up of some classes

* Change test to testLegacy, since the deprecation notice is due to Symfony code (and is due to expire on Symfony 4.3)

* Fix some Symfony Forms with unfinished migration to Symfony 3.x. Remove some unused code / comments.

* General cleanup of controllers

* Tiny cleanup

* Fix access to some admin pages

* Fix usage of DatepickerType so it actually replaces the Symfony type while keeping all it's parents features

* Fix admin blog add/edit form

* Fix behaviour of some custom Symfony Form Types

* Fix FilterForm so it conforms to Symfony 3.x standards

* Readd workshop_location table since it got removed sometime ago by mistake

* Fix Symfony Console (probably due to some incomplete step after migrating to Symfony 3.x)

* Fix admin workshop add/edit form

* Fix some translations

* Refactor Sponsors controller

* Fix broken CSS on Call edit form for rewards items

* Fix admin Stories add/edit form

* Fix CSS error while displaying TypeaheadType form elements

* Fix Controller::redirect() parameter types

* Fix admin Channel Questionnaire and Channel Section forms to add/edit

* Fix Admin Charts API controller

* Update live base code with latest fixes (#218)

* add project name to project translate overview

* fix route of poster in project dashboard

* Upgraded Symfony packages to v2.8.30 (last working version)

* Fix call to render method since it was renamed

(cherry picked from commit 5d93afab554e8211c59ed1f1ab21a2eb4ac75ad2)

* add composer.lock

* restore a early die if misconfiguration

* Updated Dockerfile to use an Ubuntu image that's not deprecated (#181)

* Updated Dockerfile to use an Ubuntu image that's not deprecated

* Removed Docker image based on date in favour of one that won't change

* fix/composer lock (#185)

* Fix call to render method since it was renamed

(cherry picked from commit 5d93afab554e8211c59ed1f1ab21a2eb4ac75ad2)

* remove lock to force deploy

Co-authored-by: Carlos Alberto Martínez Gadea <carlosmartinezgadea@gmail.com>

* Twitter card meta description fix

* change projects to be shown in map when a matcher is selected to use node configuration if available

* improve filters in discover and fix ajax query

(cherry picked from commit 0432ebb325b99d68c42e300493fca974a6142c0f)

* fix use of query parameters when they are not being used

* fix project filters in discover and use of inner joins in project get list function

* Add matcher completed status

* Fix icons size

* Fix user leave exceptions

* remove comment on sql project name selects

* fix missing ) on fallback lang in Project published

* fix on config test yaml with env parameters

* add entries in docker settings to be used in yaml test

* change in config test to use real yaml instead of inserting env variables

* fix removing log in public index since its done via plugin

Co-authored-by: Carlos Alberto Martínez Gadea <carlosmartinezgadea@gmail.com>
Co-authored-by: Ivan Vergés <ivan@platoniq.net>
Co-authored-by: Javier <javicarrillo83@gmail.com>
Co-authored-by: Javier Carrillo <javier@goteo.org>

* specify region before connecting to s3 (#219)

* fix on deprecated parse_str without  variable (#221)

* Cleanup SessionListener

* Reformatted Filter and Project models

* Simplify public/index.php

* Cleanup main PHP classes

* Minor refactors on controllers

* Removed deprecated mcrypt PHP extension

* Removed deprecated mcrypt PHP extension from composer.lock

* Fix SQL migration

* Fix SQL migration related to mail table

* Fix SQL migration related to mail table

* Fix SQL migration related to mail table

* Improved Docker readme

* make loggin resilient to Gelf updates failures (#225)

* make loggin resilient to Gelf updates failures

* ignore redundant exception thrown

* fix on deprecated implode call (#229)

* update oauth library for linkedin (#226)

* add deployer script

* refactor subdomain processing and add test to it (#205)

* fix/var subs (#215)

* refactor subdomain processing and add test to it (#204)

* refactor subdomain processing and add test to it

* add other envs to deployment

* make config process deep ENV substitution

* fix/var subs (#216)

* refactor subdomain processing and add test to it (#204)

* refactor subdomain processing and add test to it

* add other envs to deployment

* make config process deep ENV substitution

* fix namespace

* update oauth library for linkedin

* update up to a working commit

* fix linkedin call

* remove orphan location stats (#230)

* Moved Omnipay/Mock/Gateway class to goteo repository (is needed to run PHPUnits successfully)

* Feature/symfony upgrade to.3.4 (#222)

* fix install of grunt-cli to only install the 1.3.2 so that it does not brake with older versions of node

* Renew SSL certs until 2026

* Removed symfony/security-csrf package since it was colliding with symfony/security which replaces thr former one. Thanks to that, symfony/security can be safely updated to 2.8.52 .

* Removed enforcement to keep some Symfony package in v2.8.0 so they are now updatable to 2.8.52

* Added (un)zip packages to Dockerfile so we remove Composer warning (#170)

* Bug/fix unit tests (#171)

* Added missing PDO dependency which is in fact needed

* Fixed Sponsor model unit tests

* Removed pointless comments and deprecated method on Mail model

* Fixed Mail model unit tests

* Fixed TextTest translations tests due to missing and/or incorrect HTML tags/attributes

* Updated Matcher model tests

* Enforce PHP 7.1 as minimum PHP version in Composer

* Fixed HTML structure on newsletter template and removed commented CSS classes

* Improved readability, added parameter types and some small refactors on Mail model

* Improved readability and added parameter types on MatcherTest class

* Further cleanup on User and MatcherTest classes

* Downgraded minimum PHP version to the production one

* Reintroduced sqlWhere variable so we don't get errors since it's used in the code

* Fully reintroduced the Sponsor 'type' property and fixed related failing test

* Refactored call to obtain Sponsors list into a method

* Fix SQL query to obtain Sponsors list

* Fix Mail model tests along with issues on the HTML formatting with 2 related templates

* Changed method syntax so is PHP 7.0 compliant (it was using PHP 7.1 syntax)

* Fix Matcher model tests (some translations were missing when querying for them)

* Reduced tests verbosity (we don't need to know if users, projects, etc were removed when running tests)

* Ignored .idea (Jetbrains IDEs) folder

* Bumped PHPMailer to 6.x and fixed Mail model and test with related changes

* Bumped Mockery to 1.x

* Added OpenSSL extension, since it's used by AmazonSns and AuthListener classes

* Updated amazon-s3-php-class with many changes (last updated on 2015)

* Assure PHPMailer minimum version is 6.4

* Updated to PHPUnit 6.5

* Removed empty test along with unused imports

* Moved PHP extensions on composer file right after the PHP version for easy spotting

* Reduced verbosity on tests output so we can focus on seeing if the focus passed, failed, errored or were skipped

* Remove deprecated asserts and upgrade PHPUnit from 6.x to 7.x

* Bumped min PHP version to 7.1

* Upgrade PHP from 7.0/7.1 to 7.4

* Upgraded PHPUnit to 8.x (depends on PR that enforces PHP 7.4)

* Removed deprecated expectedException (will be removed on PHPUnit 9.x). Flipped assertEquals comparators to be compliant with expected/actual order.

* Removed deprecated class

* Got rid of last array curly braces access

* Removed duplicated key

* Removed deprecated (and unused) FlattenException import

* Removed last noisy message on PHPUnit so we only have test results status

* WIP Upgrade to Symfony 3.x

* Tidy index(_env).php files so they have less differences between them, for a future merge

* Got rid of index_dev.php in favor of index.php that read ENV DEBUG parameter

* Added import, rewritten some PHPDocs and added some return types

* Clean container.php

* Refactor getName() method from custom Symfony Form Types, so they just have getBlockPrefix() method

* Refactor to add Form Types as is required in Symfony 3

* Fix install of migrations on PHP 7.4 and latest Composer dependencies

* Fix RouteListener initialization. Fix DB setup.

* Use ::class to register services in the ServiceContainer instead of strings

* Fix composer.json so it reckognizes goteo-private tests

* Fix tests for App class (due to having renamed a property)

* Updated Omnipay dependency to the new one from league

* Grouped Composer dependencies

* Used Symfony HttpKernel class instead of HttpKernel\HttpKernel

* Removed unneeded package

* Cleanup Omnipay classes and fix some issues while initilizing the Payment Gateway

* Made final changes to support all Omnipay payment methods using Omnipay v3

* Deprecated static AbstractPaymentMethod::getId() method in favor of non static one

* Converted static calculateComission method into non-static calculateCommission

* Converted static AbstractPaymentMethod::isInternal() into a non-static method

* Add parameter / return types and import used classes

* Updated TelegramBot so it doesn't use deprecated code

* Reviewed controllers to ensure they follow Symfony 3 convention

* Add User property type

* Removed unused code

* Tidy up classes

* Removed unused parameters from PHPDoc

* Upgraded Symfony from 3.0 to 3.1

* Included some used classes

* Finalize migration to symfony/forms 3.x (there must be a getBlockPrefix() method on a new Type, even if their parents have the method

* Enforce getModelForm() & createFormBuilder() from controllers to return FormProcessorInterface & FormFactory respectively

* Fix return parameter of Controller::createFormBuilder() method and the controllers that inherit it

* Upgraded to Symfony 3.2

* Symfony packages upgraded to 3.3

* WIP Migration to Symfony 3.4 almost completed

* Fix call to Mail::renderEmailTemplate (got renamed recently)

* Fix Settings Dashboard form (ChoiceType elements had flipped key / values)

* Fix loading of ChoiceType and some minor refactors

* Fix ChoiceType for some forms related to Contract PersonDocumentTypes

* Revert BooleanType::getBlockPrefix() method so it returns 'boolean' which to match it's class name

* Refactor ProjectOverviewForm to fix it and to ease its reading

* Fix import of PDOException (it was written incorrectly)

* Fix ChoiceTypes on several Project related forms

* Refactor to use the new Controller:getModelForm() method that requires a class instead of just a string. Fixed some Symfony Forms due to incomplete migration when Symfony 3.0 upgrade.

* Refactored last controller that used the deprecated method to guess SymfonyForm class

* Tiny refactors

* Removed unnecessary EventDispatcher from Console class

* Clean up of some classes

* Change test to testLegacy, since the deprecation notice is due to Symfony code (and is due to expire on Symfony 4.3)

* Fix some Symfony Forms with unfinished migration to Symfony 3.x. Remove some unused code / comments.

* General cleanup of controllers

* Tiny cleanup

* Fix access to some admin pages

* Fix usage of DatepickerType so it actually replaces the Symfony type while keeping all it's parents features

* Fix admin blog add/edit form

* Fix behaviour of some custom Symfony Form Types

* Fix FilterForm so it conforms to Symfony 3.x standards

* Readd workshop_location table sinc…
  • Loading branch information
6 people committed Nov 26, 2021
1 parent 3f16d22 commit 5d94693
Show file tree
Hide file tree
Showing 104 changed files with 2,663 additions and 326 deletions.
2 changes: 2 additions & 0 deletions Resources/templates/responsive/home/index.php
Expand Up @@ -33,6 +33,8 @@

<?= $this->insert('home/partials/projects') ?>

<?= $this->insert('home/partials/values') ?>

<?= $this->insertif('home/partials/call_to_action') ?>

<?= $this->insertif('home/partials/advantages') ?>
Expand Down
71 changes: 71 additions & 0 deletions Resources/templates/responsive/home/partials/values.php
@@ -0,0 +1,71 @@
<?php
if ($this->home['values']):
?>

<div class="fluid-container data-container goteo-values">
<div class="container">
<div><h1 class="title text-center">Valores de Goteo</h1></div>
<div class="text-center footprint-tabs">
<ul>
<?php foreach($this->footprints as $index => $footprint): ?>
<li>
<a href="" data-footprint="<?= $footprint->id ?>" class="<?= ($index == 0)? "active" : '' ?>" ></a></li>
<?php endforeach; ?>
</ul>
</div>
<?php foreach($this->footprints as $index => $footprint): ?>
<div class="row <?= ($index != 0)? "hidden" : '' ?>" id="goteo-values-<?= $footprint->id ?>">
<div class="col footprint-briefing">
<img src="assets/img/footprint/<?= $footprint->id ?>.svg" heigh="70" width="70" alt="<?= $footprint->name ?>" class="footprint" />
<p><span class="footprint-label"><?= $footprint->name ?></span></p>
<h2><?= $footprint->title ?></h2>
<p><?= $this->markdown($footprint->description) ?></p>
<h3><?= $this->t('home-footprint-values-related-sdgs') ?>:</h3>
<p><?= $this->t('regular-click-more') ?></p>
<ul>
<?php foreach($this->sdg_by_footprint[$footprint->id] as $sdg): ?>
<li><a href="/impact-discover?sdgs=<?= $sdg->id ?>" target="_blank"><img src="assets/img/ods/ods<?= $sdg->id ?>.svg" width="75" height="75" alt="<?= $sdg->name ?>"/></a></li>
<?php endforeach; ?>
</ul>
</div>
<div class="col footprint-info">
<div class="slider slider-footprint-data">
<?php foreach($footprint->getAllImpactData() as $impact_data): ?>
<div class="">
<?php if ($impact_data->image): ?>
<img
src="<?= $impact_data->getImage()->getLink(165,240,true) ?>"
alt="<?= $footprint->title ?>"
height="240"
width="165"
>
<?php endif; ?>
<div class="footprint-data-info">
<h2><?= $impact_data->title ?></h2>
<h3><span><?= $impact_data->data ?></span> <?= $impact_data->data_unit?></h3>
<p><?= $impact_data->description ?></p>
</div>
</div>
<?php endforeach ?>
</div>
<div class="slider slider-footprint-projects">
<?php foreach($this->projects_by_footprint[$footprint->id] as $index => $project): ?>
<div class="footprint-project">
<img src="<?= $project->image->getLink(600, 416, true); ?>" class="bg-project" data-footprint=<?= $footprint->id ?>>
<div class="project-footprint">
<img src="assets/img/footprint/<?= $footprint->id ?>.svg" height="70" width="70" alt="<?= $footprint->name ?>" class="footprint" />
</div>
<h2><a target="_blank" href="/project/<?= $project->id ?>"><?= $this->text_truncate($this->ee($project->name), 80); ?></a></h2>
<p><a href="/user/profile/<?= $project->user->id ?>"><?= $this->text('regular-by') . ' ' . $project->user->name ?></a></p>
</div>
<?php endforeach; ?>
</div>
</div>
<div class="footprint-action">
<a href="/impact-discover?footprints=<?= $footprint->id ?>"><?= $this->t('home-footprint-values-see-projects') ?> <span class="icon glyphicon glyphicon glyphicon-menu-right" aria-hidden="true"></span></a>
</div>
</div>
<?php endforeach; ?>
</div>
</div>
<?php endif; ?>
19 changes: 19 additions & 0 deletions Resources/templates/responsive/impact_discover/index.php
@@ -0,0 +1,19 @@
<?php $this->layout('impact_discover/layout') ?>

<?php $this->section('impact-discover-content') ?>

<?= $this->insert('impact_discover/partials/filters') ?>

<?= $this->insert('impact_discover/partials/sdg_list', ['sdgSelected' => $this->sdgSelected]) ?>

<?= $this->insert('impact_discover/partials/list_projects') ?>

<?php
$projects = is_array($this->projects)? $this->projects : [];
?>

<div class="spacer-20 spacer-bottom text-center more-projects-button <?= $this->total > count($projects) ? '' : ' hidden' ?>">
<button class="btn btn-link"><?= $this->text('regular-load-more') ?> &nbsp; &nbsp; <i class="fa fa-chevron-right"></i></button>
</div>

<?php $this->replace() ?>
33 changes: 33 additions & 0 deletions Resources/templates/responsive/impact_discover/layout.php
@@ -0,0 +1,33 @@
<?php

$this->layout('layout', [
'bodyClass' => 'impact_discover',
'title' => 'Descubre proyectos por ODS y Huella',
'meta_description' => $this->text('meta-description-discover')
]);

$this->section('content');

?>

<div class="impact-discover">

<?= $this->supply('impact-discover-content') ?>

</div>

<?php $this->replace() ?>


<?php $this->section('footer') ?>
<?= $this->insert('impact_discover/partials/javascript') ?>

<?php if ($this->view = 'map'): ?>
<?= $this->insert('map/partials/javascript'); ?>

<link rel="stylesheet" type="text/css" href="<?= SRC_URL ?>/assets/vendor/leaflet/dist/leaflet.css"/>
<link rel="stylesheet" type="text/css" href="<?= SRC_URL ?>/assets/vendor/leaflet.markercluster/dist/MarkerCluster.css"/>
<link rel="stylesheet" type="text/css" href="<?= SRC_URL ?>/assets/vendor/leaflet.markercluster/dist/MarkerCluster.Default.css"/>
<link rel="stylesheet" type="text/css" href="<?= SRC_URL ?>/assets/vendor/leaflet.fullscreen/Control.FullScreen.css"/>
<?php endif; ?>
<?php $this->append() ?>
15 changes: 15 additions & 0 deletions Resources/templates/responsive/impact_discover/list.php
@@ -0,0 +1,15 @@
<?php $this->layout('impact_discover/layout') ?>

<?php $this->section('impact-discover-content') ?>

<?= $this->insert('impact_discover/partials/filters') ?>

<?= $this->insert('impact_discover/partials/sdg_list') ?>

<?= $this->insertIf('impact_discover/partials/list_projects') ?>

<div class="spacer-20 spacer-bottom text-center more-projects-button <?= $this->total > count($this->projects) ? '' : ' hidden' ?>">
<button class="btn btn-link"><?= $this->text('regular-load-more') ?> &nbsp; &nbsp; <i class="fa fa-chevron-right"></i></button>
</div>

<?php $this->replace() ?>
11 changes: 11 additions & 0 deletions Resources/templates/responsive/impact_discover/map.php
@@ -0,0 +1,11 @@
<?php $this->layout('impact_discover/layout') ?>

<?php $this->section('impact-discover-content') ?>

<?= $this->insert('impact_discover/partials/filters') ?>

<?= $this->insert('impact_discover/partials/sdg_list') ?>

<?= $this->insert('impact_discover/partials/map'); ?>

<?php $this->replace() ?>
15 changes: 15 additions & 0 deletions Resources/templates/responsive/impact_discover/mosaic.php
@@ -0,0 +1,15 @@
<?php $this->layout('impact_discover/layout') ?>

<?php $this->section('impact-discover-content') ?>

<?= $this->insert('impact_discover/partials/filters') ?>

<?= $this->insert('impact_discover/partials/sdg_list') ?>

<?= $this->insert('impact_discover/partials/mosaic') ?>

<div class="spacer-20 spacer-bottom text-center more-projects-button <?= $this->total > count($this->projects) ? '' : ' hidden' ?>">
<button class="btn btn-link"><?= $this->text('regular-load-more') ?> &nbsp; &nbsp; <i class="fa fa-chevron-right"></i></button>
</div>

<?php $this->replace() ?>
@@ -0,0 +1,78 @@
<div class="section impact-discover-filters active">
<div class="container">
<div class="row">
<div class="col-xs-12 col-sm-9" id="filters-mobile">
<a href="" class="filter"><img src="./assets/img/icons/funnel.svg" /> FILTRAR</a>
<a class="close flip" href="#"><i class="icon icon-close"></i></a>
</div>
<div class="col-xs-12 col-sm-6 col-md-6" id="filters-footprints">
<p><?= $this->t('impact-discover-filter-by-footprints') ?></p>
<ul>
<li><a href="" data-footprint="all" class="<? ('all' == $this->footprintSelected)? 'active' : '' ?>">Todas</a></li>
<?php foreach($this->footprints as $footprint): ?>
<li>
<a href="" data-footprint="<?= $footprint->id ?>" class="<?= in_array($footprint->id, $this->footprintsSelected)? 'active' : '' ?>">
<img src="/assets/img/<?= $footprint->getIcon() ?>" alt="<?= $footprint->name ?>">
</a>
</li>
<?php endforeach; ?>
</ul>
</div>
<div class="col-xs-12 col-sm-3" id="filters-sdg-list">
<p><?= $this->t('impact-discover-filter-by-sdg') ?></p>
<ul>
<?php foreach($this->sdgs as $sdg): ?>
<li>
<label>
<input type="checkbox" name="<?= $sdg->id ?>" />
<img src="/assets/img/sdg/sdg<?= $sdg->id ?>.svg" alt="<?= $sdg->name ?>"/>
<?= $sdg->name ?>
</label>
</li>
<?php endforeach; ?>
</ul>
<p>
<a href="" id="reset-sdg"><?= $this->t('regular-delete') ?></a>
<button><?= $this->t('regular-apply') ?></button>
</p>
</div>
<div class="col-xs-12 col-sm-3 col-md-4 text-center" id="filters-channel">
<?php if ($this->selectedChannel) : ?>
<select class="form-control" name="channel" disabled>
<option value="<?= $this->selectedChannel ?>" selected> <?= $this->channels[$this->selectedChannel] ?> </option>
</select>
<?php else: ?>
<select class="form-control" name="channel" >
<option value="" selected disabled hidden><?= $this->t('regular-channel') ?></option>

<?php foreach($this->channels as $cid => $cname): ?>
<option value="<?= $cid ?>"> <?= $cname ?></option>
<?php endforeach; ?>
</select>
<?php endif; ?>
</div>
<div class="col-xs-12 col-sm-3 col-md-4 text-center" id="filters-sdg-select">
<select class="form-control" name="footprints">
<option><?= $this->t('impact-discover-filter-by-sdg') ?></option>

<?php foreach($this->sdgs as $sdg): ?>
<option data-footprints="<?= implode(',',array_column($sdg->getFootprints(), 'id'))?>" value="<?= $sdg->id ?>"> <?= $sdg->name ?></option>
<?php endforeach; ?>
</select>
</div>
<div class="col-xs-12 col-sm-3 col-md-2 text-right" id="filters-view-as">
<ul>
<li>
<a id="activate-mosaic" class="<?= ($this->view == 'mosaic') ? 'active' : '' ?>" href="/impact-discover/mosaic"> <img src="/assets/img/icons/mosaic.svg"> </a>
</li>
<li>
<a id="activate-projects" class="<?= ($this->view == 'list_projects')? 'active' : '' ?>" href="/impact-discover"><img src="/assets/img/icons/lists.svg"></a>
</li>
<li>
<a id="activate-map" class="<?= ($this->view == 'map')? 'active' : '' ?>" href="/impact-discover/map"><img src="/assets/img/icons/map.svg"></a>
</li>
</ul>
</div>
</div>
</div>
</div>
@@ -0,0 +1,9 @@
<?php
$projects = $this->projects;

if (is_array($projects)):
?>
<?= $this->insert('impact_discover/partials/projects_first_row', ['projects' => array_slice($projects, 0, 3)]) ?>
<?= $this->insert('impact_discover/partials/projects_second_row', ['projects' => array_slice($projects, 3, 3)]) ?>
<?= $this->insert('impact_discover/partials/projects_third_row', ['projects' => array_slice($projects, 6, 3)]) ?>
<?php endif; ?>
@@ -0,0 +1,9 @@
<?php
$projects = $this->projects;
?>

<div id="impact-discover-projects" class="section impact-discover-projects" data-view="<?= $this->view ?>">
<div class="container">
<?= $this->insert('impact_discover/partials/list_project_rows', ['project' => $projects]) ?>
</div>
</div>
18 changes: 18 additions & 0 deletions Resources/templates/responsive/impact_discover/partials/map.php
@@ -0,0 +1,18 @@
<?php
$map = $this->map;
?>

<div id="impact-discover-map" class="section impact-discover-map" data-view=<?= $this->view ?>>
<div class="container">

<div id="map" class="osm-map"
<?php if ($map->getHeight() && $map->getWidth()): ?>
style="height:<?= $map->getHeight() ?>px; width:<?= $map->getWidth() ?>;"
<?php endif; ?>
data-tile-layer='<?= $this->map->getTileLayer() ?>'
data-zoom='<?= $this->map->getZoom() ?>'
data-center='<?= json_encode($this->map->getCenter()) ?>'
>
</div>
</div>
</div>
@@ -0,0 +1,7 @@
<div id="impact-discover-mosaic" class="section impact-discover-mosaic" data-view="<?= $this->view ?>">
<div class="container">
<div class="row">
<?= $this->insert('dashboard/partials/projects_widgets_list', ['projects' => $this->projects ]); ?>
</div>
</div>
</div>
@@ -0,0 +1,28 @@
<?php
$project = $this->project;
$sdgs = $project->getSdgs();

$footprints = [];

foreach($sdgs as $sdg) {
$footprints = array_merge($footprints, array_column($sdg->getFootprints(), null, 'id'));
}

$footprints = array_unique($footprints, SORT_REGULAR);
?>

<a href="/project/<?= $project->id ?>" target="_blank">
<img src="<?= ($project->image)? $project->image->getLink(700,0,true) : '' ?>" class="bg-project" data-footprint="<?= (current($footprints))? current($footprints)->id : '' ?>">
</a>

<?php if (!empty($footprints)): ?>
<div class="project-footprint">
<?php foreach($footprints as $footprint): ?>
<img src="assets/img/footprint/<?= $footprint->id ?>.svg" alt="<?= $footprint->name ?>" class="footprint" />
<?php endforeach; ?>
</div>
<?php endif; ?>
<div class="project-description">
<h2><?= $project->title ?></h2>
<p><?= $this->text('regular-by') ?> <a href="/user/profile/<?= $project->user->id ?>" target="_blank"> <?= $project->user->name ?></a></p>
</div>
@@ -0,0 +1,26 @@
<?php
$projects = $this->projects
?>
<div class="row">
<?php if(current($projects)): ?>
<div class="col col-xs-12 col-sm-8">
<?= $this->insert('impact_discover/partials/project.php', ['project' => current($projects)]) ?>
</div>
<?php endif; ?>
<div class="col col-xs-12 col-sm-4">
<?php if (next($projects)): ?>
<div class="row">
<div class="col col-xs-12 col-sm-12">
<?= $this->insert('impact_discover/partials/project.php', ['project' => current($projects)]) ?>
</div>
</div>
<?php endif; ?>
<?php if (next($projects)): ?>
<div class="row">
<div class="col col-xs-12 col-sm-12">
<?= $this->insert('impact_discover/partials/project.php', ['project' => current($projects)]) ?>
</div>
</div>
<?php endif; ?>
</div>
</div>
@@ -0,0 +1,23 @@
<?php
$projects = $this->projects
?>

<div class="row">
<?php if (current($projects)): ?>
<div href="/project/<?= current($projects)->id ?>" class="col col-xs-12 col-sm-4">
<?= $this->insert('impact_discover/partials/project.php', ['project' => current($projects)]) ?>
</div>
<?php endif; ?>

<?php if (next($projects)): ?>
<div href="/project/<?= current($projects)->id ?>" class="col col-xs-12 col-sm-4">
<?= $this->insert('impact_discover/partials/project.php', ['project' => current($projects)]) ?>
</div>
<?php endif; ?>

<?php if (next($projects)): ?>
<div href="/project/<?= current($projects)->id ?>" class="col col-xs-12 col-sm-4">
<?= $this->insert('impact_discover/partials/project.php', ['project' => current($projects)]) ?>
</div>
<?php endif; ?>
</div>

0 comments on commit 5d94693

Please sign in to comment.