Compare commits

..

21 Commits

Author SHA1 Message Date
llaniau a93d58e119 Bug push git 2020-10-05 23:58:07 +02:00
llaniau 6babd6976c Amélioration employmentType 2020-10-05 17:55:50 +02:00
llaniau 468f5baed6 Changement stat page accueil recruteur 2020-10-05 15:18:11 +02:00
llaniau 6a1c231fcb Ajout unpublished dans le groupe ad_detail 2020-10-05 14:05:01 +02:00
llaniau 6b25e5b5e7 Correction de fautes d'orthographe 2020-10-01 17:01:44 +02:00
llaniau bb231fbeb3 Ajout d'un commentaire dans Answerrepo 2020-09-29 11:02:19 +02:00
llaniau cae04bc8d7 Modification de libellés 2020-09-29 09:58:40 +02:00
llaniau 4fa83f1c51 Envoi de mail apres candidature 2020-09-24 17:10:16 +02:00
llaniau 15c9e8811d MEP 21 sept 2020-09-21 16:08:35 +02:00
llaniau be62f29fb9 version stabilisé pre prod avant mise en prod 2020-09-21 15:52:14 +02:00
llaniau 439362bda4 Recette avant mise en prod 2020-09-21 13:16:16 +02:00
llaniau 1866008c84 Redirection vers web app lors de message 2020-09-21 11:38:19 +02:00
llaniau 4e8d3b8a9d mediaController 2020-09-21 11:02:39 +02:00
llaniau b21946500a Correction bug offre d'emploi sur la crea 2020-09-21 10:49:10 +02:00
llaniau 8808da8af1 params pre prod 2020-09-21 08:46:15 +02:00
llaniau 6ba0c4744e param prod 2020-09-21 08:38:17 +02:00
llaniau f8a03f317b parameter pre prod erreur 2020-09-21 08:36:25 +02:00
llaniau 8de926b22f Modif param mail et resolution de bugs mineur 2020-09-19 11:46:29 +02:00
llaniau eb70757671 Suppression d'un user (correction d'un bug) 2020-09-17 16:35:50 +02:00
llaniau 0c82a72da5 oubli de mdp 2020-09-16 18:08:01 +02:00
llaniau 719c6ae0ee erreur 404 2020-09-15 17:43:41 +02:00
56 changed files with 499 additions and 230 deletions
@@ -1,6 +1,9 @@
{% extends "base.html.twig" %}
{% extends "basev2.html.twig" %}
{% block menu %}
{% endblock %}
{% block content %}
<main id="content">
<div class="container contentWrapper">
<div class="row">
<div class="col push-s3 s6">
@@ -8,8 +11,10 @@
</div>
</div>
</div>
</div>
{% endblock %}
{% block metarobot %}
<meta name="robots" content="noindex,nofollow">
<meta http-equiv="refresh" content="1;URL=/">
{% endblock %}
@@ -1,6 +1,7 @@
{% trans_default_domain 'FOSUserBundle' %}
<div class="fos_user_user_show">
Votre mot de passe a bien été modifié<br/>
<p>{{ 'profile.show.username'|trans }}: {{ user.username }}</p>
<p>{{ 'profile.show.email'|trans }}: {{ user.email }}</p>
</div>
@@ -1,7 +1,9 @@
{% extends "base.html.twig" %}
{% trans_default_domain 'FOSUserBundle' %}
{% block menu %}
{% endblock %}
{% block content %}
<div class="container contentWrapper">
<div class="row">
@@ -2,6 +2,9 @@
{% block title %}Talents Tube : Le 1er job board 100% vidéo{% endblock %}
{% trans_default_domain 'FOSUserBundle' %}
{% block menu %}
{% endblock %}
{% block content %}
<main id="content">
<div class="container space-2 ">
@@ -1,7 +1,9 @@
{% extends "basetemporaire.html.twig" %}
{% trans_default_domain 'FOSUserBundle' %}
{% block menu %}
{% endblock %}
{% block content %}
<div class="container contentWrapper">
@@ -51,7 +51,7 @@
</div>
<div class="js-form-message mb-3">
<div class="input-field col s12">
<a href="/mentions-legales">Lire les conditions générales d'utilisations</a>
<a href="/cgu">Lire les conditions générales d'utilisations</a>
<br /><br />
</div>
</div>
@@ -22,7 +22,9 @@
content="{{ url(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) }}" />
{% endblock %}
{% block menu %}
{% endblock %}
{% block content %}
<main id="content">
@@ -1,4 +1,4 @@
{% extends 'base.html.twig' %}
{% extends 'basetemporaire.html.twig' %}
{% block urlCanonical %}
#!
@@ -1,5 +1,6 @@
{% extends 'baseV2.html.twig' %}
{% extends 'basev2.html.twig' %}
{% block content %}
<main id="content">
<div class="row">
<div class="col s12">
<h2 class="center-align m-t-100">Page introuvable</h2>
@@ -9,4 +10,5 @@
</p>
</div>
</div>
</main>
{% endblock %}
@@ -1,6 +1,15 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<!-- Global site tag (gtag.js) - Google Analytics -->
{# <script async src="https://www.googletagmanager.com/gtag/js?id=UA-98246968-7"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-98246968-7');
</script> #}
<!-- Title -->
<title>{% block title %}{% endblock %}</title>
@@ -47,5 +56,6 @@
{% endblock %}
{# {% include 'defaultv2/footer.html.twig' %} #}
{{ include('FairlaneCookieConsentBundle::cookie-info.html.twig') }}
</body>
</html>
@@ -90,6 +90,11 @@ Afin de créer votre annonce, renseignez lensemble des champs relatifs au pos
{{ form_row(form.contract_type) }}
</td>
</tr>
<tr>
<td class="col-lg-12 col-md-12 col-sm-12">
{{ form_row(form.temps_type) }}
</td>
</tr>
<tr>
<td class="col-lg-12 col-md-12 col-sm-12">
{{ form_row(form.status) }}
@@ -90,6 +90,11 @@ Afin de créer votre annonce, renseignez lensemble des champs relatifs au pos
{{ form_row(form.contract_type) }}
</td>
</tr>
<tr>
<td class="col-lg-12 col-md-12 col-sm-12">
{{ form_row(form.temps_type) }}
</td>
</tr>
<tr>
<td class="col-lg-12 col-md-12 col-sm-12">
{{ form_row(form.publicTag) }}
@@ -1,8 +1,8 @@
{% extends 'company/base_dashboard_company.html.twig' %}
{% extends 'company/base_dashboard_company_V2.html.twig' %}
{% block dashContent %}
<div class="row bg-bordered p-0">
{% include 'company/ad_steps.html.twig' with {'tab':3} %}
{# {% include 'company/ad_steps.html.twig' with {'tab':3} %} #}
<div class="p-20">
<form>
<p>
@@ -82,8 +82,8 @@
-->
<th style="width:15%">Objet</th>
<th style="width:15%">Message</th>
<th style="width:70%">Envoyé le</th>
<th style="width:15%">Envoyé le</th>
<th style="width:70%">Message</th>
</tr>
</thead>
<tbody>
@@ -1,4 +1,4 @@
{% extends 'base.html.twig' %}
{% extends 'basetemporaire.html.twig' %}
{% block title %}Offres d'emploi et recrutement {{ company.brandName }} | TalentsTube{% endblock %}
@@ -46,11 +46,7 @@
<i class="fa fa-search"></i>
{{ 'company.menu.users.label'|trans }}</a></li>
<li>
<a href="{{ path('company_media') }}">
<i class="fa fa-play"></i>
{{ 'company.menu.videotheque.label'|trans }}</a>
</li>
<li>
<a href="{{ path('company_my_account') }}">
<i class="fa fa-cog"></i>
@@ -21,8 +21,10 @@
<p class="profil-city">{{ company.addresses.billing.city }}
- {{ company.addresses.billing.country|country }}</p>
{% endif %}
{# <p class="profil-job"><a
href="{{ path("company_show",{"alias":company.alias}) }}">{{ company.brandname }}</a></p> #}
<p class="profil-job"><a
href="{{ path("company_show",{"alias":company.alias}) }}">{{ company.brandname }}</a></p>
href="https://www.talentstube.com/Entreprise/{{company.alias}}" target="_blank">{{ company.brandname }}</a></p>
</div>
<div class="profil-nav">
<ul class="font-2">
@@ -33,55 +33,56 @@
<div class=" container-fluid container-fixed-lg bg-white">
<!-- START card -->
<div class="row">
<div class="col-lg-6">
<div class="col-lg-12s">
<div class="card card-transparent">
{{ form_start(form, { 'action': path('company_my_account'), 'attr': { 'class': 'fos_user_profile_edit' } }) }}
<div class="card-body">
{% if form_errors(form) %}
<span class="red-text text-darken-2">{{ form_errors(form) }}</span>
{% endif %}
<div class="row">
<div class="col-md-6">
<div class="form-group form-group-default required">
<div class="card-body">
{% if form_errors(form) %}
<span class="red-text text-darken-2">{{ form_errors(form) }}</span>
{% endif %}
{{ form_row(form.firstname) }}
<div class="row">
<div class="col-md-6">
<div class="form-group form-group-default required">
{{ form_row(form.firstname) }}
</div>
</div>
<div class="col-md-6">
<div class="form-group form-group-default">
{{ form_row(form.lastname) }}
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group form-group-default">
{# <div class="row">
<div class="col-md-12">
{{ form_row(form.lastname) }}
<div class="form-group ">
{{ form_row(form.gender) }}
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="form-group ">
<br /> #}
<div style="text-align: right;">
<button class="btn btn-default" type="submit">Sauvegarde</button>
{{ form_row(form.gender) }}
</div>
</div>
</div>
<br />
<div style="text-align: right;">
<button class="btn btn-default" type="submit">Sauvegarde</button>
</div>
{{ form_end(form) }}
</div>
{{ form_end(form) }}
</div>
<!-- END card -->
</div>
<!-- END card -->
<div class="col-lg-6">
<div class="card card-transparent">
</div>
<div class="col-lg-12">
{# <div class="card card-transparent">
{{ form_start(formPw) }}
<div class="card-body">
{% if form_errors(formPw) %}
@@ -99,7 +100,17 @@
</div>
</div>
</div>
{{ form_end(formPw) }}
{{ form_end(formPw) }} #}
<div class="card card-transparent">
<div class="card-body">
<div class="row">
<div class="col-md-12">
<a href="/resetting/request" target="_blank">Réinitialisation de mot de passe</a>
</div>
</div>
</div>
</div>
</div>
<!-- END card -->
@@ -9,7 +9,7 @@
<!-- START BREADCRUMB -->
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="#">Accueil</a></li>
<li class="breadcrumb-item active">Utilisateurss</li>
<li class="breadcrumb-item active">Utilisateurs</li>
</ol>
<!-- END BREADCRUMB -->
<div class="row">
@@ -72,7 +72,7 @@
</div>
</div>
<div class="row">
{# <div class="row">
<div class="col-md-12">
<div class="form-group ">
@@ -80,7 +80,7 @@
{{ form_row(form.gender) }}
</div>
</div>
</div>
</div> #}
{% if form.password is defined%}
<div class="row">
<div class="col-md-12">
@@ -28,9 +28,12 @@
{% if company.presentationVideo is defined %}
{% if company.presentationVideo.thumbnails.0.sizes is defined %}
<a href="{{ path('company_show',{'alias': company.alias }) }}" title="{{ company.brandName }}">
{% if company.presentationVideo.thumbnails.0.sizes.4.link is defined %}
<img src="{{ company.presentationVideo.thumbnails.0.sizes.4.link }}"
alt="{{ company.brandName }}"/>
<span class="playerbtn"></span>
{% endif %}
</a>
{% endif %}
{% endif %}
@@ -11,8 +11,8 @@
<div class="media">
<div class="media-body px-4">
<h2 class="statChiffre">1500+</h2>
<p class="statTexte">Talents connectés</p>
<h2 class="statChiffre">10000+</h2>
<p class="statTexte">Visiteurs par mois</p>
</div>
</div>
</div>
@@ -24,7 +24,7 @@
<div class="card-body p-4">
<div class="media">
<div class="media-body px-4">
<h2 class="statChiffre">900+</h2>
<h2 class="statChiffre">1050+</h2>
<p class="statTexte">Vues par vidéo</p>
</div>
</div>
@@ -38,7 +38,7 @@
<div class="media">
<div class="media-body px-4">
<h2 class="statChiffre">350</h2>
<h2 class="statChiffre">550+</h2>
<p class="statTexte">Candidatures vidéo</p>
</div>
</div>
@@ -19,7 +19,7 @@
<!-- Title -->
<header class="text-center mb-5">
<h2 class="h4 mb-0">Connexion</h2>
<p>Connecter vous pour gérer votre compte</p>
<p>Connectez-vous pour gérer votre compte</p>
</header>
@@ -35,7 +35,7 @@
aria-label="Email" data-msg="Please enter a valid email address." data-error-class="u-has-error"
data-success-class="u-has-success"> #}
<input type="text" id="username" name="_username" value="{{ last_username }}" required="required" class="form-control"/>
<input type="text" id="username" name="_username" value="{{ last_username }}" required="required" class="form-control" placeholder="Saisissez votre adresse email"/>
</div>
</div>
<!-- End Input -->
@@ -51,7 +51,7 @@
{# <input type="password" class="form-control form__input" name="password" required placeholder="Password"
aria-label="Password" data-msg="Your password is invalid. Please try again."
data-error-class="u-has-error" data-success-class="u-has-success"> #}
<input type="password" id="password" name="_password" required="required" class="form-control" />
<input type="password" id="password" name="_password" required="required" class="form-control" placeholder="Saisissez votre mot de passe" />
</div>
</div>
<!-- End Input -->
@@ -75,9 +75,9 @@
<div class="mb-3">
<input type="hidden" name="_target_path" value="redirect_dashboard" />
<input type="hidden" name="_target_path" value="redirect_dashboard" />
<input type="submit" id="_submit" name="_submit" class="btn btn-block btn-primary"/>
<input type="submit" id="_submit" name="_submit" class="btn btn-block btn-primary" value="Se connecter"/>
</div>
<div class="text-center mb-3">
@@ -25,10 +25,10 @@
<div class="list-group list-group-flush list-group-transparent">
<!-- Links -->
<ul class="list-unstyled">
<li><a class="list-group-item list-group-item-action" href="mentions-legales" target="_blank">Mentions légales</a></li>
<li><a class="list-group-item list-group-item-action" href="cgu" target="_blank">CGU</a></li>
<li><a class="list-group-item list-group-item-action" href="politique-confidentialite" target="_blank">Politique de confidentialité</a></li>
<li><a class="list-group-item list-group-item-action" href="abonnement" >Tarifs</a></li>
<li><a class="list-group-item list-group-item-action" href="{{ path('mentions-legales') }}" target="_blank">Mentions légales</a></li>
<li><a class="list-group-item list-group-item-action" href="{{ path('cgu') }}" target="_blank">CGU</a></li>
<li><a class="list-group-item list-group-item-action" href="{{ path('politique-confidentialite') }}" target="_blank">Politique de confidentialité</a></li>
<li><a class="list-group-item list-group-item-action" href="{{ path('abonnement') }}" >Tarifs</a></li>
<li><a class="list-group-item list-group-item-action" href="https://blog.talentstube.com/contact" target="_blank"
">Contact</a></li>
</ul>
@@ -72,7 +72,7 @@
<div class="col-lg-4 order-lg-1 d-flex align-items-start flex-column">
<!-- Logo -->
<a class="d-inline-block mb-5" href="index.html" aria-label="Space">
<a class="d-inline-block mb-5" href="/" aria-label="Space">
<img src="{{ asset('v2/svg/logos/talentstube-logo-mobile.svg') }}" alt="Logo" style="width: 40px; max-width: 100%;">
</a>
<!-- End Logo -->
@@ -12,7 +12,7 @@ La candidature en vidéo ou vidéo de motivation savère être un outil perfo
En plus des savoirs et savoir-faire, la candidature vidéo met en lumière le savoir-être et le savoir devenir des candidats. Vous pouvez cerner la personnalité du candidat et son projet professionnel en quelques instants.
</p>
<a class="btn btn-sm btn-primary btn-wide" href="#">Voir la plateforme</a>
<a class="btn btn-sm btn-primary btn-wide" href="https://www.talentstube.com">Voir la plateforme</a>
</div>
</div>
@@ -1,6 +1,6 @@
{% extends 'basev2.html.twig' %}
{% block title %}Offres demploi - Recrutez des candidats en vidéo - Talents Tube{% endblock %}
{% block title %}Tarifs - Talents Tube{% endblock %}
{% block meta %}
<meta name="description" content="Attirez les meilleurs candidats avec des offres demploi en vidéo. Présentez le poste recherché, les missions, les locaux et les collaborateurs de votre entreprise.">
@@ -194,7 +194,7 @@
</div>
<!-- End Title -->
<div class="w-md-80 w-lg-60 text-center mx-md-auto mb-9">
<button type="button" class="btn btn-block btn-primary" href="https://blog.talentstube.com/contact" target="_blank">Contactez-nous</button>
<a href="https://blog.talentstube.com/contact" target="_blank"><button type="button" class="btn btn-block btn-primary" >Contactez-nous</button></a>
</div>
</div>
@@ -65,7 +65,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="600" align="center" style="width:600px;"><tr><td>
<![endif]--><div style="margin:0 auto;max-width:600px;background:#F2F2F2;"><table class="" cellpadding="0" cellspacing="0" style="width:100%;font-size:0px;background:#F2F2F2;" align="center"><tbody><tr><td style="text-align:center;vertical-align:top;font-size:0;padding:22px 0;"><!--[if mso]>
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:600px;">
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:0px;" align="center"><table cellpadding="0" cellspacing="0" style="border-collapse:collapse;border-spacing:0px;" align="center"><tbody><tr><td><a href="http://www.talentstube.com/"><img alt="Talents Tube" src="{{ absolute_url(asset('img/mail/logo-talents-tube.png')) }}" style="border:none;display:block;outline:none;text-decoration:none;width:100%;max-width:150px;height:auto;" width="150" height="auto"></a></td></tr></tbody></table></td></tr></tbody></table></div><!--[if mso]>
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:0px;" align="center"><table cellpadding="0" cellspacing="0" style="border-collapse:collapse;border-spacing:0px;" align="center"><tbody><tr><td><a href="http://www.talentstube.com/"><img alt="Talents Tube" src="https://recruteur.talentstube.com/img/mail/logo-talents-tube.png" style="border:none;display:block;outline:none;text-decoration:none;width:100%;max-width:150px;height:auto;" width="150" height="auto"></a></td></tr></tbody></table></td></tr></tbody></table></div><!--[if mso]>
</td></tr></table>
<![endif]--></td></tr></tbody></table></div><!--[if mso]>
</td></tr></table>
@@ -88,9 +88,9 @@
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:600px;">
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:0px 35px 0px 35px;" align="center"><div class="mj-content" style="cursor:auto;color:#534F4F;font-family:Raleway;font-size:14px;line-height:22px;"><p>Suivez-nous&nbsp;!</p>
<p>
<a style="margin:10px 20px 22px 20px;" href="https://www.facebook.com/TalentsTuber/"><img src="{{ absolute_url(asset('img/mail/facebook.png')) }}" alt="Facebook"></a>
<a style="margin:10px 20px 22px 20px;" href="https://twitter.com/TalentsTuber"><img src="{{ absolute_url(asset('img/mail/twitter.png')) }}" alt="Twitter"></a>
<a style="margin:10px 20px 22px 20px;" href="https://www.linkedin.com/company/talentstube"><img src="{{ absolute_url(asset('img/mail/linkedin.png')) }}" alt="LinkedIn"></a>
<a style="margin:10px 20px 22px 20px;" href="https://www.facebook.com/TalentsTuber/"><img src="https://recruteur.talentstube.com/img/mail/facebook.png" alt="Facebook"></a>
<a style="margin:10px 20px 22px 20px;" href="https://twitter.com/TalentsTuber"><img src="https://recruteur.talentstube.com/img/mail/twitter.png" alt="Twitter"></a>
<a style="margin:10px 20px 22px 20px;" href="https://www.linkedin.com/company/talentstube"><img src="https://recruteur.talentstube.com/img/mail/linkedin.png" alt="LinkedIn"></a>
</p></div></td></tr></tbody></table></div><!--[if mso]>
</td></tr></table>
<![endif]--></td></tr></tbody></table></div><!--[if mso]>
@@ -101,7 +101,7 @@
<![endif]--><div style="margin:0 auto;max-width:600px;background:#F2F2F2;"><table class="" cellpadding="0" cellspacing="0" style="width:100%;font-size:0px;background:#F2F2F2;" align="center"><tbody><tr><td style="text-align:center;vertical-align:top;font-size:0;padding:0px;"><!--[if mso]>
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:600px;">
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:20px 35px 20px 35px;" align="center"><div class="mj-content" style="cursor:auto;color:#7E7878;font-family:Raleway;font-size:14px;line-height:22px;"><p style="font-weight:bold;">Talents Tube</p>
<p>Place Albert Einstein 6 Le Prisme CP60 PIBS 6 CS 72001 - 56038 VANNES</p>
<p>Village By CA - 3 rue Louis de Broglie - PIBS - 56000 VANNES</p>
<p><a style="text-decoration:none;color:#7E7878;font-weight:bold;" href="mailto:contact@talentstube.com">contact@talentstube.com</a></p></div></td></tr></tbody></table></div><!--[if mso]>
</td></tr></table>
<![endif]--></td></tr></tbody></table></div><!--[if mso]>
@@ -12,28 +12,32 @@
<br />
Bonjour {{ user.firstname }} {{ user.lastname }},<br /><br />
<strong>Vous avez reçu une réponse vidéo de lentreprise {{ message.sender.company.brandname }}.</strong><br />
Découvez la réponse vidéo en cliquant sur le bouton ci-dessous.
Découvrez la réponse vidéo en cliquant sur le bouton ci-dessous.
<br/>
<br/>
<div style="text-align:center;">
{% if answer.ad.alias is null %}
<a class="btn btn-default" href="{{ absolute_url(path('talent_ad_detail',{'alias': aliasCompany,'id': answer.id })) }}">Visionner la réponse</a>
{# <a class="btn btn-default" href="{{ absolute_url(path('talent_ad_detail',{'alias': aliasCompany,'id': answer.id })) }}">Visionner la réponse</a> #}
<a class="btn btn-default" href="https://www.talentstube.com">Consulter la réponse</a>
{% else %}
<a class="btn btn-default" href="{{ absolute_url(path('talent_ad_detail',{'alias': answer.ad.alias,'id': answer.id })) }}">Visionner la réponse</a>
{# <a class="btn btn-default" href="{{ absolute_url(path('talent_ad_detail',{'alias': answer.ad.alias,'id': answer.id })) }}">Visionner la réponse</a> #}
<a class="btn btn-default" href="https://www.talentstube.com">Consulter la réponse</a>
{% endif %}
</div>
{% else %}
<br />
Bonjour {{ user.firstname }} {{ user.lastname }},<br /><br />
<strong>Vous avez reçu une réponse de lentreprise {{ message.sender.company.brandname }}.</strong><br />
Découvez la réponse en cliquant sur le bouton ci-dessous.
Découvrez la réponse en cliquant sur le bouton ci-dessous.
<br/>
<br/>
<div style="text-align:center;">
{% if answer.ad.alias is null %}
<a class="btn btn-default" href="{{ absolute_url(path('talent_ad_detail',{'alias': aliasCompany,'id': answer.id })) }}">Consulter la réponse</a>
{# <a class="btn btn-default" href="{{ absolute_url(path('talent_ad_detail',{'alias': aliasCompany,'id': answer.id })) }}">Consulter la réponse</a> #}
<a class="btn btn-default" href="https://www.talentstube.com">Consulter la réponse</a>
{% else %}
<a class="btn btn-default" href="{{ absolute_url(path('talent_ad_detail',{'alias': answer.ad.alias,'id': answer.id })) }}">Consulter la réponse</a>
{# <a class="btn btn-default" href="{{ absolute_url(path('talent_ad_detail',{'alias': answer.ad.alias,'id': answer.id })) }}">Consulter la réponse</a> #}
<a class="btn btn-default" href="https://www.talentstube.com">Consulter la réponse</a>
{% endif %}
</div>
{% endif %}
@@ -40,13 +40,13 @@ votre entreprise et attirer de nouveaux talents.</p>
width="100%" height="550" frameborder="0" webkitallowfullscreen
mozallowfullscreen allowfullscreen></iframe>
</div>
{% else %}
{# {% else %}
<div class="no-presentation-video">
<strong>
Vous ne disposez pas de vidéo de présentation !
</strong><br/>
Cliquez sur le bouton ci-dessous pour la sélectionner dans votre bibliothèque.
</div>
</div> #}
{% endif %}
</div>
@@ -72,11 +72,12 @@ votre entreprise et attirer de nouveaux talents.</p>
{% endif %}
<a class="btn btn-cancel-premier red tooltipped btn-round right" href="#!"
data-position="top" data-tooltip="Annuler">Annuler</a>
<a class="btn btn-default btn-video-premier right btn-orange">
{% if app.user.company.presentationVideo %}
Remplacer ma vidéo marque employeur
{% else %}
Ajouter une vidéo marque employeur
Choisir une vidéo marque employeur
{% endif %}
</a>
@@ -87,9 +88,9 @@ votre entreprise et attirer de nouveaux talents.</p>
<strong>
Guide
</strong><br/>
Pour remplacer votre vidéo marque employeur, cliquer sur le bouton remplacer et choisissez une vidéo dans la liste ci dessous </div>
Pour choisir votre vidéo marque employeur, cliquer sur le bouton remplacer et choisissez une vidéo dans la liste ci dessous </div>
{# {% endif %} #}
</p>
</div>
</div>
{% endif %}
@@ -247,9 +247,9 @@
<div class="col s6">
{{ form_row(formProfile.birthday) }}
</div>
<div class="col s6">
{# <div class="col s6">
{{ form_row(formProfile.gender) }}
</div>
</div> #}
<div class="col s12">
{{ form_row(formProfile.company.address) }}
{{ form_row(formProfile.company.addressComp) }}
@@ -35,8 +35,8 @@ monolog:
# type: chromephp
# level: info
swiftmailer:
delivery_addresses: ['%delivery_addresses%']
# swiftmailer:
# delivery_addresses: ['%delivery_addresses%']
# Twig Configuration
twig:
View File
@@ -4,7 +4,7 @@ parameters:
mailer_transport: smtp
mailer_host: mail.gandi.net
mailer_user: noreply@talentstube.io
mailer_password: zfYwOGBHweCQ8OI9ghF6lUyo
mailer_password: eaV76D3AEhRbLxNVwfuz9
secret: 416157a2389cec970df2a46fa8ffd361b76516d1
database_host: tt-website.postgres.dev
database_port: '5432'
@@ -1,15 +1,17 @@
parameters:
mailer_transport: smtp
mailer_host: mail.gandi.net
# mailer_user: noreply@talentstube.io
# mailer_password: zfYwOGBHweCQ8OI9ghF6lUyo
mailer_user: noreply@talentstube.io
mailer_password: zfYwOGBHweCQ8OI9ghF6lUyo
mailer_password: eaV76D3AEhRbLxNVwfuz9
secret: 416157a2389cec970df2a46fa8ffd361b76516d1
database_host: 'tt-website.postgres.preprod'
database_port: '5432'
database_name: database
database_user: user
database_password: 7C|Uk2B[.>"6{QO{
#database_password: b|RN:iR<g,TNMqM6
#database_password: 7C|Uk2B[.>"6{QO{
database_password: b|RN:iR<g,TNMqM6
#Mongo
mongodb_server: "mongodb://tt-website.mongo.preprod:27017"
#Prestashop
@@ -1,8 +1,10 @@
parameters:
mailer_transport: smtp
mailer_host: mail.gandi.net
#mailer_user: noreply@talentstube.com
#mailer_password: zfYwOGBHweCQ8OI9ghF6lUyo
mailer_user: noreply@talentstube.io
mailer_password: zfYwOGBHweCQ8OI9ghF6lUyo
mailer_password: eaV76D3AEhRbLxNVwfuz9
secret: 416157a2389cec970df2a46fa8ffd361b76516d1
database_host: 'tt-website.postgres.prod'
database_port: '5432'
@@ -29,13 +31,13 @@ parameters:
elastic_port: 9200
delivery_addresses: l.laniau@talentstube.com
push_params:
push_notification_file_path: '%kernel.root_dir%/../web/push/'
push_network_config:
public_key: '%push_params.public_key%'
private_key: g2Yimi3AK1ppvRqwikPyTTWcEEsTdRPxoBJ2Vi9bOWw
service_mail_subject: 'mailto:looping@talentstube.com'
ttl: 300
urgency: high
topic: Emploi
push_notification_file_path: '%kernel.root_dir%/../web/push/'
push_network_config:
public_key: '%push_params.public_key%'
private_key: g2Yimi3AK1ppvRqwikPyTTWcEEsTdRPxoBJ2Vi9bOWw
service_mail_subject: 'mailto:looping@talentstube.com'
ttl: 300
urgency: high
topic: Emploi
push_params.public_key: BG2lV673DvB67dzEwX9GKfds3sXaEdtZo2oWO1cO2xUdTJAFZ_rV_UrP1nHQz-F8LJNO9HxG0kmQRIb54JL1ZCA
@@ -55,9 +55,12 @@ class AdController extends Controller
$form = $this->createForm(AdType::class, $ad);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$type_contract = $form['contract_type']->getData();
$arrayExtra = $ad->getExtra();
$type_contract = $form['contract_type']->getData();
$arrayExtra['contract_type'] = $type_contract;
//LLAN Ajout de la notion de temps partiel, plein temps (5 oct 2020)
$temps_type = $form['temps_type']->getData();
$arrayExtra['temps_type'] = $temps_type;
$ad->setExtra($arrayExtra);
$adManager = $this->get('app.ad_manager');
$adManager->updateAd($ad);
@@ -105,8 +108,10 @@ class AdController extends Controller
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$type_contract = $form['contract_type']->getData();
$temps_type = $form['temps_type']->getData();
$arrayExtra = $ad->getExtra();
$arrayExtra['contract_type'] = $type_contract;
$arrayExtra['temps_type'] = $temps_type;
$ad->setExtra($arrayExtra);
$adManager = $this->get('app.ad_manager');
$adManager->updateAd($ad);
@@ -128,8 +133,10 @@ class AdController extends Controller
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$type_contract = $form['contract_type']->getData();
$temps_type = $form['temps_type']->getData();
$arrayExtra = $ad->getExtra();
$arrayExtra['contract_type'] = $type_contract;
$arrayExtra['temps_type'] = $temps_type;
$ad->setExtra($arrayExtra);
$adManager = $this->get('app.ad_manager');
$adManager->updateAd($ad);
@@ -209,7 +216,7 @@ class AdController extends Controller
$em->flush();
$em->clear();
return $this->redirectToRoute('company_ad_validation', array('id' => $ad->getId()));
return $this->redirectToRoute('company_ad', array('id' => $ad->getId()));
}
return $this->render('company/ad_edit_date.html.twig', [
@@ -108,19 +108,19 @@ class UserController extends Controller
}
\assert(!\is_null($user));
$company = $user->getCompany();
if ($company) {
$company->setPresentationVideo(null);
$em->persist($company);
$em->flush();
}
// $company = $user->getCompany();
// if ($company) {
// $company->setPresentationVideo(null);
// $em->persist($company);
// $em->flush();
// }
$this->deleteRelation($user);
$em->remove($user);
$em->flush();
if ($company) {
$em->remove($company);
$em->flush();
}
// if ($company) {
// $em->remove($company);
// $em->flush();
// }
// if ($company) {
// $em->remove($company);
@@ -376,8 +376,8 @@ class AnswerController extends Controller
));
$email = \Swift_Message::newInstance()
->setSubject('Candidature : ' . $title)
->setFrom($this->getParameter('mailer_user'), $user->getEmail())
->setReplyTo($user->getEmail())
->setFrom($this->getParameter('mailer_user'))
->setReplyTo($this->getParameter('mailer_user'))
->setTo($answer->getUser()->getEmail())
->setBody($htmlView, 'text/html')
->addPart($plainView, 'text/plain');
@@ -105,9 +105,13 @@ class AnswerController extends FOSRestController
$existCompanyAnswer = null;
// Verify if users have already posted answers
if (isset($adId) && $adId != null) {
$existAdAnswer = $em->getRepository('AppBundle:Answer')->findOneBy(array('user' => $usr, 'ad' => $adId));
$dateJour = new \DateTime('NOW');
// $existAdAnswer = $em->getRepository('AppBundle:Answer')->findOneBy(array('user' => $usr, 'ad' => $adId));
$existAdAnswer = $em->getRepository('AppBundle:Answer')->findExistAdAnswer($usr, $adId);
} else {
$existCompanyAnswer = $em->getRepository('AppBundle:Answer')->findOneBy(array('user' => $usr, 'company' => $companyId));
// $existCompanyAnswer = $em->getRepository('AppBundle:Answer')->findOneBy(array('user' => $usr, 'company' => $companyId));
$existCompanyAnswer = $em->getRepository('AppBundle:Answer')->findExistEntrepriseAnswer($usr, $companyId);
}
if (!isset($mediaId) || !isset($companyId) || $mediaId == null || $companyId == null) {
@@ -115,11 +119,11 @@ class AnswerController extends FOSRestController
$status = 'failure';
throw new ResourceValidationException($message, $status);
} else if ($existAdAnswer) {
$message = 'Vous avez déja postulé pour cette offre';
$message = "Tu as déjà postulé aujourdhui !";
$status = 'failure';
throw new ResourceValidationException($message, $status);
} else if ($existCompanyAnswer) {
$message = 'Vous avez déja postulé pour cette entreprise.';
$message = "Tu as déjà postulé aujourdhui pour cette entreprise !";
$status = 'failure';
throw new ResourceValidationException($message, $status);
} else {
@@ -144,13 +148,45 @@ class AnswerController extends FOSRestController
$em->persist($answer);
$em->flush();
$userCompany = $company->getUsers();
$usersCompany = $company->getUsers();
$mediaManager = $this->get('media_manager');
$mediaManager->getThumbnails($answer);
$thumbnailsArray = $answer->getVideo()->getThumbnails();
$img = $thumbnailsArray[0]['sizes'][3]['link'];
$title = $company->getBrandName();
/*$message = new Message('Candidature', 'Video', $usr, $userCompany{
0}, 'CONTACT_TALENT', $answer);
$message->setVideo($video);
$em->persist($message);
$em->flush();*/
$mailManager = $this->get('app.mail_manager');
foreach ($usersCompany as $user){
$link = $this->generateUrl('company_answer_show', array('id' => $answer->getId()), UrlGeneratorInterface::ABSOLUTE_URL);
$mailManager->sendMail(
'Candidature TalentsTube ',
'<div style="margin:0 auto;max-width:600px;background:#FFFFFF;"><table class="" cellpadding="0" cellspacing="0" style="width:100%;font-size:0px;background:#FFFFFF;" align="center"><tbody><tr><td style="text-align:center;vertical-align:top;font-size:0;padding:0px;"><!--[if mso]>
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:600px;">
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:0px;" align="center"><table cellpadding="0" cellspacing="0" style="border-collapse:collapse;border-spacing:0px;" align="center"><tbody><tr><td><img alt="" src="' . $img . '" style="border:none;display:block;outline:none;text-decoration:none;width:100%;max-width:600px;height:auto;" width="600" height="auto"></td></tr></tbody></table></td></tr></tbody></table></div><!--[if mso]>
</td></tr></table>
<![endif]--></td></tr></tbody></table></div>
<div style="margin:0 auto;max-width:600px;background:#FFFFFF;"><table class="" cellpadding="0" cellspacing="0" style="width:100%;font-size:0px;background:#FFFFFF;" align="center"><tbody><tr><td style="text-align:center;vertical-align:top;font-size:0;padding:0px;"><!--[if mso]>
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:600px;">
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:20px 35px 20px 35px;" align="left"><div class="mj-content" style="cursor:auto;color:#534F4F;font-family:Trebuchet,Helvetica,sans-serif;font-size:14px;line-height:22px;"><p>Bonjour ' . $user->getLastname() . ' ' . $user->getFirstname() . ',</p>
<p>Le talent ' . $answer->getUser()->getFirstname() . ' ' . $answer->getUser()->getLastname() . ' a répondu à votre annonce ' . $title . '.</p></div></td></tr></tbody></table></div><!--[if mso]>
</td></tr></table>
<![endif]--></td></tr></tbody></table></div>
<div style="margin:0 auto;max-width:600px;background:#FFFFFF;"><table class="" cellpadding="0" cellspacing="0" style="width:100%;font-size:0px;background:#FFFFFF;" align="center"><tbody><tr><td style="text-align:center;vertical-align:top;font-size:0;padding:0px 0px 40px 0px;"><!--[if mso]>
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:600px;">
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:15px 30px;" align="center"><table cellpadding="0" cellspacing="0" style="border:none;border-radius:30px;" align="center"><tbody><tr><td style="background:#1689FB;border-radius:30px;color:#FFFFFF;cursor:auto;" align="center" valign="middle" bgcolor="#1689FB"><a class="mj-content" href="' . $link . '" style="display:inline-block;text-decoration:none;background:#1689FB;border:1px solid #1689FB;border-radius:30px;color:#FFFFFF;font-family:Trebuchet,Helvetica,sans-serif;font-size:14px;font-weight:normal;padding:15px 30px;" target="_blank">Découvrir le talent</a></td></tr></tbody></table></td></tr></tbody></table></div><!--[if mso]>
</td></tr></table>
<![endif]--></td></tr></tbody></table></div>',
$user,
'contact_default'
);
}
$status = array('status' => "success", "idAnswer" => $answer->getId()/*, "idMessage" => $message->getId()*/);
}
} else {
@@ -334,6 +370,49 @@ class AnswerController extends FOSRestController
$em->persist($message);
$em->flush();
$usersCompany = $existAnswer->getCompany()->getUsers();
$mediaManager = $this->get('media_manager');
$mediaManager->getThumbnails($existAnswer);
$thumbnailsArray = $existAnswer->getVideo()->getThumbnails();
$img = $thumbnailsArray[0]['sizes'][3]['link'];
$title = $existAnswer->getCompany()->getBrandName();
/*$message = new Message('Candidature', 'Video', $usr, $userCompany{
0}, 'CONTACT_TALENT', $answer);
$message->setVideo($video);
$em->persist($message);
$em->flush();*/
$mailManager = $this->get('app.mail_manager');
foreach ($usersCompany as $user){
$link = $this->generateUrl('company_answer_show', array('id' => $existAnswer->getId()), UrlGeneratorInterface::ABSOLUTE_URL);
$mailManager->sendMail(
'Message sur la plateforme Talents Tube ',
'<div style="margin:0 auto;max-width:600px;background:#FFFFFF;"><table class="" cellpadding="0" cellspacing="0" style="width:100%;font-size:0px;background:#FFFFFF;" align="center"><tbody><tr><td style="text-align:center;vertical-align:top;font-size:0;padding:0px;"><!--[if mso]>
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:600px;">
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:0px;" align="center"><table cellpadding="0" cellspacing="0" style="border-collapse:collapse;border-spacing:0px;" align="center"><tbody><tr><td><img alt="" src="' . $img . '" style="border:none;display:block;outline:none;text-decoration:none;width:100%;max-width:600px;height:auto;" width="600" height="auto"></td></tr></tbody></table></td></tr></tbody></table></div><!--[if mso]>
</td></tr></table>
<![endif]--></td></tr></tbody></table></div>
<div style="margin:0 auto;max-width:600px;background:#FFFFFF;"><table class="" cellpadding="0" cellspacing="0" style="width:100%;font-size:0px;background:#FFFFFF;" align="center"><tbody><tr><td style="text-align:center;vertical-align:top;font-size:0;padding:0px;"><!--[if mso]>
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:600px;">
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:20px 35px 20px 35px;" align="left"><div class="mj-content" style="cursor:auto;color:#534F4F;font-family:Trebuchet,Helvetica,sans-serif;font-size:14px;line-height:22px;"><p>Bonjour ' . $user->getLastname() . ' ' . $user->getFirstname() . ',</p>
<p>Le talent ' . $existAnswer->getUser()->getFirstname() . ' ' . $existAnswer->getUser()->getLastname() . ' a laissé un message à votre annonce ' . $title . '.</p></div></td></tr></tbody></table></div><!--[if mso]>
</td></tr></table>
<![endif]--></td></tr></tbody></table></div>
<div style="margin:0 auto;max-width:600px;background:#FFFFFF;"><table class="" cellpadding="0" cellspacing="0" style="width:100%;font-size:0px;background:#FFFFFF;" align="center"><tbody><tr><td style="text-align:center;vertical-align:top;font-size:0;padding:0px 0px 40px 0px;"><!--[if mso]>
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:600px;">
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:15px 30px;" align="center"><table cellpadding="0" cellspacing="0" style="border:none;border-radius:30px;" align="center"><tbody><tr><td style="background:#1689FB;border-radius:30px;color:#FFFFFF;cursor:auto;" align="center" valign="middle" bgcolor="#1689FB"><a class="mj-content" href="' . $link . '" style="display:inline-block;text-decoration:none;background:#1689FB;border:1px solid #1689FB;border-radius:30px;color:#FFFFFF;font-family:Trebuchet,Helvetica,sans-serif;font-size:14px;font-weight:normal;padding:15px 30px;" target="_blank">Découvrir le talent</a></td></tr></tbody></table></td></tr></tbody></table></div><!--[if mso]>
</td></tr></table>
<![endif]--></td></tr></tbody></table></div>',
$user,
'contact_default'
);
}
$status = array('status' => "success");
return new JsonResponse($status);
}
@@ -365,4 +444,4 @@ class AnswerController extends FOSRestController
return new JsonResponse($data, 200, [], true);
}
}
}
@@ -111,20 +111,20 @@ class CompanyController extends Controller
);
}
$formFactory = $this->container->get('fos_user.change_password.form.factory');
$formPw = $formFactory->createForm();
$formPw->setData($user);
$formPw->handleRequest($request);
if ($formPw->isSubmitted() && $formPw->isValid()) {
$userManager->updateUser($user);
$this->addFlash(
'notice',
$this->get('translator')->trans('company.account.save.title')
);
}
// $formFactory = $this->container->get('fos_user.change_password.form.factory');
// $formPw = $formFactory->createForm();
// $formPw->setData($user);
// $formPw->handleRequest($request);
// if ($formPw->isSubmitted() && $formPw->isValid()) {
// $userManager->updateUser($user);
// $this->addFlash(
// 'notice',
// $this->get('translator')->trans('company.account.save.title')
// );
// }
return $this->render('company/my_account.html.twig', [
'form' => $form->createView(),
'formPw' => $formPw->createView(),
// 'formPw' => $formPw->createView(),
]);
}
@@ -51,7 +51,8 @@ class DefaultController extends Controller
}
$form = $this->createForm(AdSearchType::class);
return $this->render(
'default/index.html.twig', [
'ads' => $ads,
@@ -110,6 +111,8 @@ class DefaultController extends Controller
$csrfToken = $params["csrfToken"];
$error = $params["error"];
$destination_login = "admin/dashboard";
//var_dump($mailManager);
return $this->render(
'defaultv2/accueil/index.html.twig', [
'last_username' => $usename,
@@ -23,7 +23,7 @@ use Symfony\Component\HttpFoundation\Session\Session;
class MediaController extends Controller
{
/**
* @Route("/entreprise/me/videotheque", name="company_media")
* @Route("/entreprise/me/videotheque", name="company_marque")
*/
public function companyMediaAction(Request $request)
{
@@ -41,35 +41,7 @@ class MediaController extends Controller
$em->persist($media);
$em->flush();
return $this->redirectToRoute('company_media');
}
return $this->render('media/media_list.html.twig', array(
'form' => $form->createView(),
'medias' => $medias,
));
}
/**
* @Route("/entreprise/me/video-marque-employeur", name="company_marque")
*/
public function companyMarqueAction(Request $request)
{
$event = new UserEvent($this->getUser());
$this->get('event_dispatcher')->dispatch(PrestashopBridgeEvents::USER_PROD_UPDATE, $event);
$em = $this->getDoctrine()->getManager();
$medias = $em->getRepository('AppBundle:Media')->findBy(array('creator' => $this->getUser()));
$form = $this->createForm(MediaType::class);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$title = $form['title']->getData();
$idMedia = $form['media']->getData();
$media = $em->getRepository('AppBundle:Media')->findOneBy(array('id' => $idMedia, 'creator' => $this->getUser()));
$media->setTitle($title);
$em->persist($media);
$em->flush();
return $this->redirectToRoute('company_marque');
return $this->redirectToRoute('company_ad');
}
return $this->render('media/media_list.html.twig', array(
@@ -133,7 +105,7 @@ class MediaController extends Controller
/**
* @Route("/media/create/{id}", name="create_media")
* @Security("ad.getStatus() == 'DRAFT' or ad.getStatus() == 'TO_PUBLISH' or ad.getStatus() == 'DECLINED'")
* @Security("ad.getStatus() == 'DRAFT' or ad.getStatus() == 'DECLINED' or ad.getStatus() == 'TO_PUBLISH'")
*/
public function createMediaAction(Request $request, Ad $ad)
{
@@ -150,9 +122,6 @@ class MediaController extends Controller
->add('title', TextType::class, array(
'label' => 'Titre de la vidéo',
'required' => true,
'attr' => array(
'class' => 'form-control'
)
))
->getForm();
$form->handleRequest($request);
@@ -170,7 +139,6 @@ class MediaController extends Controller
$ad->setUnpublishedAt($unpublishedDate);
$em->persist($ad);
$em->flush();
//return $this->redirectToRoute('company_ad_step3', array('id' => $ad->getId()));
}
return $this->render('company/createMedia.html.twig', array(
@@ -210,13 +178,7 @@ class MediaController extends Controller
$mediaManager = $this->get('media_manager');
$message = $mediaManager->upload($ad, $uploadedFile, $ad->getCreator());
}
$em = $this->getDoctrine()->getManager();
$ad->setIsVerified(true);
$ad->setPrivate(false);
$ad->setPromoted(true);
$em->persist($ad);
dump($ad);
$em->flush();
return new JsonResponse($message);
}
@@ -321,7 +283,7 @@ class MediaController extends Controller
$user = $em->getRepository('AppBundle:User')->findOneBy(array('id' => $idUser));
$video = $em->getRepository('AppBundle:Media')->findOneBy(array('id' => $idVideo));
$company = $user->getCompany();
if ($user->hasRole('ROLE_TALENT') || $user->hasRole('ROLE_TERRITORY') || ($user->hasRole('ROLE_COMPANY') && $company->hasCompanyVideo())) {
if ($user->hasRole('ROLE_TALENT') || $user->hasRole('ROLE_TERRITORY') || ($user->hasRole('ROLE_COMPANY') )) {
$company->setPresentationVideo($video);
}
}
@@ -417,4 +379,4 @@ class MediaController extends Controller
return $res;
}
}
}
@@ -123,6 +123,7 @@ class Ad
* @var \DateTime
*
* @ORM\Column(name="unpublished_at", type="datetime", nullable=true)
* @Groups({"ad_detail", "answer_detail"})
*/
private $unpublishedAt;
@@ -375,6 +376,24 @@ class Ad
return $contract_type;
}
/**
* @return array|null
*
* Search temps type in the extra field
*/
public function getTempstType()
{
$temps_type = null;
$extra = $this->extra;
if ($extra) {
if (array_key_exists('temps_type', $extra)) {
$temps_type = $extra['temps_type'];
}
}
return $temps_type;
}
/**
* @return array|null
*
@@ -178,6 +178,7 @@ class Company
/**
* @ORM\OneToMany(targetEntity="AppBundle\Entity\User", mappedBy="company", cascade={"persist"})
* @Groups({"company_detail", "company_list", "ad_detail"})
*/
private $users;
@@ -36,7 +36,7 @@ class User extends BaseUser
*
* @ORM\Column(name="firstname", type="string", length=255, nullable=true)
* @Expose
* @Groups({"answer_detail"})
* @Groups({"answer_detail", "company_detail", "ad_detail"})
*/
private $firstname;
@@ -45,7 +45,7 @@ class User extends BaseUser
*
* @ORM\Column(name="lastname", type="string", length=255, nullable=true)
* @Expose
* @Groups({"answer_detail"})
* @Groups({"answer_detail", "company_detail", "ad_detail"})
*/
private $lastname;
@@ -69,6 +69,7 @@ class User extends BaseUser
*
* @ORM\Column(name="gender", type="string", length=255, nullable=true)
* @Expose
* @Groups({"answer_detail", "company_detail"})
*/
private $gender;
@@ -29,9 +29,10 @@ class AdSearchType extends AbstractType
'CDI' => 'CDI',
'CDD' => 'CDD',
'Apprentissage' => 'Apprentissage',
'Professionnalisation' => 'Professionnalisation',
'Professionnalisation' => 'Contrat de professionnalisation',
'Stage' => 'Stage',
'Indépendant' => 'Indépendant'
'Indépendant' => 'Indépendant',
'Interim' => 'Interim'
)
))
->add('location_gmap', TextType::class, array(
@@ -20,10 +20,15 @@ class AdSoftType extends AbstractType
}
}
$contract_type = "";
$temps_type = "";
$extra = $options['data']->getExtra();
if ($extra != null) {
if(is_array($extra)){
$contract_type = $extra['contract_type'];
if (array_key_exists("temps_type",$extra)){
$temps_type = $extra['temps_type'];
}
}
}
@@ -61,7 +66,7 @@ class AdSoftType extends AbstractType
)
))
->add('beneficiaire', TextType::class, array(
'label' => 'Organisation cliente ',
'label' => 'Organisation cliente (facultatif)',
'required' => false,
'attr' => array(
'placeholder' => 'Indiquer une organisation',
@@ -76,22 +81,37 @@ class AdSoftType extends AbstractType
'CDI' => 'CDI',
'CDD' => 'CDD',
'Apprentissage' => 'Apprentissage',
'Professionalisation' => 'Professionalisation',
'Contrat de professionnalisation' => 'professionnalisation',
'Stage' => 'Stage',
'Indépendant' => 'Indépendant'
'Indépendant' => 'Indépendant',
'Interim' => 'Interim'
),
'attr' => array(
'class' => 'form-control'
'class' => 'cs-select cs-skin-slide'
)
))
->add('temps_type', ChoiceType::class, array(
'mapped' => false,
'label' => 'Type d emploi',
'data' => $temps_type,
'choices' => array(
'Temps plein ' => 'FULL_TIME',
'Temps partiel ' => 'PART_TIME',
'Temps plein ou temps partiel' => 'MIX_TIME',
),
'attr' => array(
'class' => 'cs-select cs-skin-slide',
)
))
->add('status', ChoiceType::class, array(
'label' =>'Statut',
'choices' => array(
'Brouillon' => 'DRAFT',
'A publier' => 'TO_PUBLISH',
'A publier (Validation par Talents Tube)' => 'TO_PUBLISH',
),
'attr' => array(
'class' => 'form-control'
'class' => 'cs-select cs-skin-slide',
)
))
@@ -20,10 +20,12 @@ class AdType extends AbstractType
}
}
$contract_type = "";
$temps_type = "";
$extra = $options['data']->getExtra();
if ($extra != null) {
if(is_array($extra)){
$contract_type = $extra['contract_type'];
$temps_type = $extra['temps_type'];
}
}
@@ -53,7 +55,7 @@ class AdType extends AbstractType
)
))
->add('beneficiaire', TextType::class, array(
'label' => 'Organisation cliente ',
'label' => 'Organisation cliente (facultatif) ',
'required' => false,
'attr' => array(
'placeholder' => 'Indiquer une organisation',
@@ -87,12 +89,28 @@ class AdType extends AbstractType
'CDI' => 'CDI',
'CDD' => 'CDD',
'Apprentissage' => 'Apprentissage',
'Professionalisation' => 'Professionalisation',
'Contrat de professionnalisation' => 'professionnalisation',
'Stage' => 'Stage',
'Indépendant' => 'Indépendant'
'Indépendant' => 'Indépendant',
'Interim' => 'Interim'
),
'attr' => array(
'class' => 'form-control'
'class' => 'cs-select cs-skin-slide',
)
))
->add('temps_type', ChoiceType::class, array(
'mapped' => false,
'label' => 'Type d emploi',
'data' => $temps_type,
'choices' => array(
'Temps plein ' => 'FULL_TIME',
'Temps partiel ' => 'PART_TIME',
'Temps plein ou temps partiel' => 'MIX_TIME',
),
'attr' => array(
'class' => 'cs-select cs-skin-slide',
)
))
->add('publicTag', TextType::class, array(
@@ -107,10 +125,10 @@ class AdType extends AbstractType
'label' =>'Statut',
'choices' => array(
'Brouillon' => 'DRAFT',
'A publier' => 'TO_PUBLISH',
'A publier (Validation par Talents Tube)' => 'TO_PUBLISH',
),
'attr' => array(
'class' => 'form-control'
'class' => 'cs-select cs-skin-slide',
)
));
@@ -60,7 +60,7 @@ class AdType extends AbstractType
)
))
->add('beneficiaire', TextType::class, array(
'label' => 'Organisation cliente ',
'label' => 'Organisation cliente (facultatif)',
'required' => false,
'attr' => array(
'placeholder' => 'Indiquer une organisation',
@@ -85,7 +85,7 @@ class AdType extends AbstractType
'label' =>'Statut',
'choices' => array(
'Brouillon' => 'DRAFT',
'A publier' => 'TO_PUBLISH',
'A publier (Validation par Talents Tube)' => 'TO_PUBLISH',
'Validée' => 'VALIDATED',
'Publiée' => 'PUBLISHED',
'Fermée' => 'CLOSED',
@@ -48,15 +48,16 @@ class TalentProfileType extends AbstractType
'data-toggle'=>"datepicker"
)
))
->add('gender', ChoiceType::class, array(
'expanded' => true,
'multiple' => false,
'choices' => array(
'Femme' => 'female',
'Homme' => 'male',
),
'label' => 'Sexe'
));
// ->add('gender', ChoiceType::class, array(
// 'expanded' => true,
// 'multiple' => false,
// 'choices' => array(
// 'Femme' => 'female',
// 'Homme' => 'male',
// ),
// 'label' => 'Sexe'
// ))
;
$builder->add('company', TalentProfileAddressType::class);
}
@@ -46,18 +46,19 @@ class UserType extends AbstractType
'class' => 'calendar'
)
))*/
->add('gender', ChoiceType::class, array(
'expanded' => true,
'multiple' => false,
'choices' => array(
'Femme' => 'female',
'Homme' => 'male',
),
'label' => 'Sexe',
'attr' => array(
'class' => 'form-control'
)
));
// ->add('gender', ChoiceType::class, array(
// 'expanded' => true,
// 'multiple' => false,
// 'choices' => array(
// 'Femme' => 'female',
// 'Homme' => 'male',
// ),
// 'label' => 'Sexe',
// 'attr' => array(
// 'class' => 'form-control'
// )
// ))
;
}
public function configureOptions(OptionsResolver $resolver)
@@ -56,18 +56,19 @@ class UserTypeCreate extends AbstractType
)
))
->add('gender', ChoiceType::class, array(
'expanded' => true,
'multiple' => false,
'choices' => array(
'Femme' => 'female',
'Homme' => 'male',
),
'label' => 'Sexe',
'attr' => array(
'class' => 'form-control'
)
));
// ->add('gender', ChoiceType::class, array(
// 'expanded' => true,
// 'multiple' => false,
// 'choices' => array(
// 'Femme' => 'female',
// 'Homme' => 'male',
// ),
// 'label' => 'Sexe',
// 'attr' => array(
// 'class' => 'form-control'
// )
// ))
;
if($user && (!$user->getEmail() || $user->getEmail()=="") ){
$builder->add('password', null, array(
'label' => 'Mot de passe',
@@ -46,6 +46,53 @@ class AnswerRepository extends AbstractRepository
->getResult();
}
// Rechercher si le user a postulé dans l'heure a une annonce donnée
public function findExistAdAnswer($user, $addId)
{
$hier = date('Y-m-d', time() - 3600 * 1);
$qb = $this
->createQueryBuilder('a')
->select(['a','ad'])
->where('a.user = :user')
->andWhere('ad.id = :id')
->andWhere('a.sendTime > :datecourant')
->setParameter('user', $user)
->setParameter('id', $addId)
->setParameter('datecourant', $hier)
// ->setParameter(':status', array('DRAFT','CONTACT_TALENT'))
->leftJoin('a.ad', 'ad')
// ->leftJoin('a.company', 'company')
;
return $qb
->getQuery()
->getResult();
}
// Rechercher si le user a postuler dans l'heure a une annonce d'une entreprise donnée
public function findExistEntrepriseAnswer($user, $entrepriseId)
{
$hier = date('Y-m-d', time() - 3600 * 1);
$qb = $this
->createQueryBuilder('a')
->select(['a','c'])
->where('a.user = :user')
->andWhere('c.id = :id')
->andWhere('a.sendTime > :datecourant')
->setParameter('user', $user)
->setParameter('id', $entrepriseId)
->setParameter('datecourant', $hier)
// ->setParameter(':status', array('DRAFT','CONTACT_TALENT'))
->leftJoin('a.company', 'c')
// ->leftJoin('a.company', 'company')
;
return $qb
->getQuery()
->getResult();
}
public function getAnswerByCompany($id)
{
$qb = $this
@@ -72,4 +72,41 @@ class MailManager
return $message;
}
/**
* @param $subject
* @param $message
* @param $user
* @param $templateName
* @return array
*/
public function sendMailSimple($subject, $message, $user, $templateName)
{
$htmlView = $this->twig->render('email/' . $templateName . '.html.twig', array(
'type' => 'html',
'message' => $message,
'user' => $user,
));
$plainView = $this->twig->render('email/' . $templateName . '_plain.html.twig', array(
'type' => 'plain',
'message' => $message,
'user' => $user,
));
$email = \Swift_Message::newInstance()
->setSubject($subject)
->setFrom('noreply@talentstube.io')
->setTo('c.leveque@talentstube.com')
->setBody($message, 'text/html')
;
if ($this->mailer->send($email)) {
// $spool = $this->mailer->getTransport()->getSpool();
// $spool->flushQueue($this->transport);
$message = array('success' => 200);
} else {
$message = array('success' => 500);
}
//var_dump($message);
return $message;
}
}
@@ -15,6 +15,13 @@ use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use JMS\Serializer\Annotation\Type;
use JMS\Serializer\Annotation\ExclusionPolicy;
use JMS\Serializer\Annotation\Expose;
use Hateoas\Configuration\Annotation as Hateoas;
use JMS\Serializer\Annotation\Groups;
/**
* Storage agnostic user object.
*
@@ -41,6 +48,9 @@ abstract class User implements UserInterface, GroupableInterface
/**
* @var string
*
* @Expose
* @Groups({"answer_detail", "company_detail", "ad_detail"})
*/
protected $email;
+4 -1
View File
@@ -21215,14 +21215,17 @@ button:focus {
File for your custom SCSS style
------------------------------------*/
.statChiffre {
font-size: 4.5rem;
font-size: 4rem;
font-weight : 500;
color : #1E2327;
padding-left: 0px;
margin-left: -40px;
}
.statTexte {
font-size: 1.2rem;
font-weight: 200;
color: #1E2327;
margin-left: -40px;
}
/* Au niveau le plus haut du code */