Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improvements in templates #468

Open
wants to merge 6 commits into
base: live
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions Resources/mailing/es/face_to_face_event.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
group: tips
name: 'Face to face event'
purpose: 'Mail template to be sent to owner of a project to recommend creating a face to face event'
type: 'md'
title: "Convierte tu presencialidad a donaciones"
text: >
¡Hola de nuevo %USERNAME%!
¿Cómo está yendo todo?
Quizás has pensado en hacer difusión presencial: en tu local, en tu pueblo, en tu barrio,, o quizás aprovechar una feria, un evento o un espacio físico que te hayan cedido otros. ¡Es una oportunidad genial para difundir tu iniciativa y tu campaña de crowdfunding!
*Consejo 1*: Piensa que además de captar su interés en persona, tendrás también que *dirigirles a tu página de Goteo*. Cuanto más fácil les hagas ese camino, mejor. Piensa en imprimir cartelería, y sobre todo, incluye el enlace a tu página de Goteo o, mejor, directamente un *código QR*.
*Consejo 2*: Si te encuentras con el problema de que tu comunidad no está acostumbrada al entorno digital, tienes que ser muy didáctico y paciente. Puedes compartir nuestro [Tutorial Paso a Paso para donar](https://fundacion.goteo.org/blog/tutorial-paso-a-paso-para-aportar-a-un-proyecto), o incluso recorrer junto con esta(s) persona(s) tu página de Goteo y enséñales tú mismo, desde tu dispositivo, lo fácil que es donar a través de Goteo.
¡Ánimo!
El equipo de Goteo.
Empty file.
13 changes: 13 additions & 0 deletions Resources/mailing/es/online_event.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
group: tips
name: 'Online event'
purpose: 'Mail template to be sent to owner of a project to recommend creating an online event'
type: 'md'
title: "Convoca un evento online de recaudación"
text: >
¡Hola de nuevo %USERNAME%!
Ya son %AMOUNT% euros recaudados, ¡venga!
A estas alturas ya estamos más que acostumbradas a los eventos online, ¿has pensado en sacarle partido para tu crowdfunding?
*Consejo*: ¿Por qué no organizar una pequeña charla con varios invitados (beneficiarios, colaboradores, proyectos similares, expertos, etc.) para *dialogar de una problemática común relacionada con %PROJECTNAME%*, y hablar del compromiso social que os mueve? Funciona muy bien cuando se aprovecha la diversidad de experiencias y puntos de vista de los participantes, moderando el debate con unas preguntas abiertas. Es una *excusa perfecta* para presentar vuestro proyecto y seguir difundiendo vuestro crowdfunding ;-))
*Ejemplo*: La campaña de [Climática](https://www.goteo.org/project/climatica) por ejemplo, organizó en su recta final de campaña una [gala de remontada retransmitida en directo](https://www.youtube.com/watch?v=glgXJER_6ZY). ¡Por lo pelos celebran el mínimo en directo!
Una cita inspiradora: “El agua habla sin cesar y nunca se repite” (Octavio Paz).
El equipo de Goteo
Empty file added Resources/mailing/es/press.yml
Empty file.
92 changes: 23 additions & 69 deletions src/Goteo/Console/EventListener/ConsoleWatcherListener.php
Original file line number Diff line number Diff line change
Expand Up @@ -211,11 +211,8 @@ public function onProjectActive(FilterProjectEvent $event) {
// periodico condicional
case 6: // Publica novedades!
// y se repite cada 6 días (fechas libres) mientras no haya posts
case 12:
case 18:
case 24:
case 30:
case 36:
case 28:
// si ya hay novedades, nada
if (Blog::hasUpdates($project->id)) {
$this->info("Project already has blog updates", [$project, 'days_active' => $days_active, 'days_funded' => $days_funded]);
Expand All @@ -228,11 +225,7 @@ public function onProjectActive(FilterProjectEvent $event) {
// comprobación periódica pero solo un envío
case 7: // Apóyate en quienes te van apoyando, si más de 20 cofinanciadores
// o en cuanto llegue a 20 backers (en fechas libres)
case 14:
case 17:
case 21:
case 24:
case 27:
case 26:
davidbeig marked this conversation as resolved.
Show resolved Hide resolved
if ($project->num_investors >= 20) {
$this->send($project, "20_backers", ['owner']);
} else {
Expand Down Expand Up @@ -270,12 +263,7 @@ function ($a, $b) {


case 11: // Refresca tu mensaje de motivacion
// si no tiene video motivacional
if (empty($project->video)) {
$this->send($project, "tip_11", ['owner']);
} else {
$this->warning("Not sending message to project as already has motivational video", [$project, 'days_active' => $days_active, 'days_funded' => $days_funded]);
}
$this->send($project, "tip_11", ['owner']);
break;

case 15: // Sigue los avances y calcula lo que falta
Expand All @@ -287,7 +275,7 @@ function ($a, $b) {
}
break;

case 25: // No bajes la guardia!
case 20: // No bajes la guardia!
// si no ha llegado al mínimo
if ($project->amount < $project->mincost) {
$this->send($project, "two_weeks", ['owner']);
Expand All @@ -305,7 +293,7 @@ function ($a, $b) {
}
break;

case 38: // Al proyecto le faltan 2 días para archivarse
case 36: // Al proyecto le faltan 4 días para archivarse
// si no ha llegado al mínimo pero está por encima del 70%
if ($project->amount < $project->mincost && $project->percent >= 70) {
$this->send($project, "2_days", ['owner']);
Expand All @@ -316,59 +304,25 @@ function ($a, $b) {

// Extra
case 26: // Send information about contract in order to prepare documentacion
davidbeig marked this conversation as resolved.
Show resolved Hide resolved
$this->info("Sending information about contract", [$project, 'days_active' => $days_active, 'days_funded' => $days_funded]);
$this->send($project, "14_days", ['owner']);
break;
}
$this->info("Sending information about contract", [$project, 'days_active' => $days_active, 'days_funded' => $days_funded]);
$this->send($project, "14_days", ['owner']);
break;

// Avisos periodicos
// si lleva más de 15 días: si no se han publicado novedades en la última semana
// Ojo! que si no ha enviado ninguna no lanza este sino la de cada 6 días
if (!$blog_tip_sent && $days_active > 15) {
// veamos si ya le avisamos hace una semana
// Si ya se mandó esta plantilla (al llegar a los 20 por primera vez) no se envía de nuevo
$sql = "
SELECT
id,
DATE_FORMAT(
from_unixtime(unix_timestamp(now()) - unix_timestamp(date))
, '%j'
) as days
FROM mail
WHERE mail.email = :email
AND mail.template = 23
ORDER BY mail.date DESC
LIMIT 1";
$query = Project::query($sql, array(':email' => $project->getOwner()->email));
$lastsend = $query->fetchObject();
if (!$lastsend->id || $lastsend->days > 7) {
// veamos cuanto hace de la última novedad
$sql = "
SELECT
DATE_FORMAT(
from_unixtime(unix_timestamp(now()) - unix_timestamp(date))
, '%j'
) as days
FROM post
INNER JOIN blog
ON post.blog = blog.id
AND blog.type = 'project'
AND blog.owner = :project
WHERE post.publish = 1
ORDER BY post.date DESC
LIMIT 1";
$query = Project::query($sql, array(':project' => $project->id));
$lastUpdate = $query->fetchColumn(0);
if ($lastUpdate > 7) {
$this->send($project, "no_updates", ['owner']);
} elseif (is_numeric($lastUpdate)) {
$this->warning("Not sending message to project published news less than one week ago", [$project, 'days_active' => $days_active, 'days_funded' => $days_funded]);
} else {
$this->warning("Not sending message to project without any news", [$project, 'days_active' => $days_active, 'days_funded' => $days_funded]);
}
} else {
$this->warning("Not sending message to project already advised less than one week ago", [$project, 'days_active' => $days_active, 'days_funded' => $days_funded]);
}
case 17:
$this->send($project, "face_to_face_event", ['owner']);
break;

case 22:
$this->send($project, "online_event", ['owner']);
break;

case 24:
$this->send($project, "press", ['owner']);
break;

case 30:
$this->send($project, "invest_in_social_networks", ['owner']);
break;
}
}

Expand Down
Loading