Browse Source

Permettre l'inscription des boulangers en améliorant le système actuel d'inscription des utilisateurs

prodstable
keun 8 years ago
parent
commit
4eb4cb327e
10 changed files with 125 additions and 5 deletions
  1. +0
    -1
      backend/assets/AppAsset.php
  2. +1
    -1
      backend/views/layouts/main.php
  3. +1
    -0
      frontend/assets/AppAsset.php
  4. +68
    -0
      frontend/models/SignupForm.php
  5. +6
    -2
      frontend/views/site/signup.php
  6. BIN
      frontend/web/.sass-cache/e1a48ee3204d3a535cdbe440c2995954a615ac19/screen.scssc
  7. +6
    -0
      frontend/web/css/screen.css
  8. +35
    -0
      frontend/web/js/boulange.js
  9. +0
    -1
      frontend/web/js/lechatdesnoisettes.js
  10. +8
    -0
      frontend/web/sass/screen.scss

+ 0
- 1
backend/assets/AppAsset.php View File

@@ -26,7 +26,6 @@ class AppAsset extends AssetBundle
public $js = [
'../../frontend/web/js/jquery-ui-1.11.4.custom/jquery-ui.min.js',
'js/lechatdesnoisettes.js?v=2',
];
public $depends = [
'yii\bootstrap\BootstrapAsset',

+ 1
- 1
backend/views/layouts/main.php View File

@@ -17,7 +17,7 @@ AppAsset::register($this);
<meta charset="<?= Yii::$app->charset ?>">
<meta name="viewport" content="width=device-width, initial-scale=1">
<?= Html::csrfMetaTags() ?>
<title><?= Html::encode($this->title) ?> - Le Chat des Noisettes</title>
<title><?= Html::encode($this->title) ?> - Réservation de pain</title>
<?php $this->head() ?>
</head>
<body>

+ 1
- 0
frontend/assets/AppAsset.php View File

@@ -40,6 +40,7 @@ class AppAsset extends AssetBundle
'js/jquery-ui-1.11.4.custom/jquery-ui.min.js',
'js/lightbox/js/lightbox.min.js',
'js/lechatdesnoisettes.js?v=3',
'js/boulange.js',
];
public $depends = [
'yii\web\YiiAsset',

+ 68
- 0
frontend/models/SignupForm.php View File

@@ -16,6 +16,9 @@ class SignupForm extends Model
public $nom;
public $prenom;
public $telephone;
public $is_boulanger;
public $siret;
public $nom_magasin;

/**
* @inheritdoc
@@ -44,6 +47,58 @@ class SignupForm extends Model
['password', 'required','message'=>'Champs obligatoire'],
['password', 'string', 'min' => 6, 'tooShort' => 'Votre mot de passe doit contenir au moins 6 caractères'],
['is_boulanger', 'boolean'],
['nom_magasin', 'string'],
['nom_magasin', 'required','message'=>'Champs obligatoire', 'when' => function($model) {
return $model->is_boulanger ;
},'whenClient' => "function (attribute, value) {
return $('#signupform-is_boulanger').prop('checked') ;
}"],
['siret', 'string'],
['siret', 'required','message'=>'Champs obligatoire', 'when' => function($model) {
return $model->is_boulanger ;
},'whenClient' => "function (attribute, value) {
return $('#signupform-is_boulanger').prop('checked') ;
}"],
['siret', function($attribute, $params) {
$siret = $this->$attribute ;
$siret = str_replace(' ', '', $siret) ;
if (strlen($siret) != 14)
{
$this->addError($attribute, 'Le numéro SIRET doit contenir 14 caractères');
return;
}
if (!is_numeric($siret))
{
$this->addError($attribute, 'Le numéro SIRET ne doit contenir que des chiffres');
return;
}
// on prend chaque chiffre un par un
// si son index (position dans la chaîne en commence à 0 au premier caractère) est pair
// on double sa valeur et si cette dernière est supérieure à 9, on lui retranche 9
// on ajoute cette valeur à la somme totale

$sum = 0 ;
for ($index = 0; $index < 14; $index ++)
{
$number = (int) $siret[$index];
if (($index % 2) == 0) { if (($number *= 2) > 9) $number -= 9; }
$sum += $number;
}

// le numéro est valide si la somme des chiffres est multiple de 10
if (($sum % 10) != 0)
$this->addError($attribute, 'Numéro SIRET invalide');
}],
];
}

@@ -63,6 +118,14 @@ class SignupForm extends Model
$user->prenom = $this->prenom ;
$user->telephone = $this->telephone ;
$user->confiance = 1 ;
if($this->is_boulanger)
{
$user->is_boulanger = 1 ;
$user->nom_magasin = $this->nom_magasin ;
$user->siret = $this->siret ;
}
$user->setPassword($this->password);
$user->generateAuthKey();
if ($user->save()) {
@@ -99,6 +162,11 @@ Matthieu" ;
'username' => 'Identifiant',
'password' => 'Mot de passe',
'rememberMe' => 'Se souvenir de moi',
'prenom' => 'Prénom',
'telephone' => 'Téléphone',
'is_boulanger' => "Je suis professionnel et souhaite mettre en place un système de réservation de pain dans ma boulangerie",
'nom_magasin' => 'Nom de la boulangerie',
'siret' => 'Numéro SIRET'
];
}
}

+ 6
- 2
frontend/views/site/signup.php View File

@@ -17,13 +17,17 @@ $this->params['breadcrumbs'][] = $this->title;

<div class="row">
<div class="col-lg-5">
<?php $form = ActiveForm::begin(['id' => 'form-signup']); ?>
<?php $form = ActiveForm::begin(['id' => 'form-signup','enableClientValidation'=> false]); ?>
<?= $form->field($model, 'email') ?>
<?= $form->field($model, 'password')->passwordInput() ?>
<?= $form->field($model, 'nom') ?>
<?= $form->field($model, 'prenom') ?>
<?= $form->field($model, 'telephone') ?>
<?= $form->field($model, 'is_boulanger')->checkbox() ?>
<div id="champs-boulanger">
<?= $form->field($model, 'nom_magasin') ?>
<?= $form->field($model, 'siret') ?>
</div>
<div class="form-group">
<?= Html::submitButton("S'inscrire", ['class' => 'btn btn-primary', 'name' => 'signup-button']) ?>
</div>

BIN
frontend/web/.sass-cache/e1a48ee3204d3a535cdbe440c2995954a615ac19/screen.scssc View File


+ 6
- 0
frontend/web/css/screen.css View File

@@ -355,6 +355,12 @@ ul li {
font-weight: bold;
}

/* signup */
/* line 349, ../sass/screen.scss */
#form-signup #champs-boulanger {
display: none;
}

/* line 2, ../sass/_systeme_commandes.scss */
h1.title-systeme-commande {
color: black;

+ 35
- 0
frontend/web/js/boulange.js View File

@@ -0,0 +1,35 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/

$(document).ready(function()
{
boulange_signup() ;
});

function boulange_signup()
{
if($('#form-signup').size())
{
boulange_signup_champs_boulanger() ;
$('#signupform-is_boulanger').change(function() {
boulange_signup_champs_boulanger() ;
}) ;
}
}

function boulange_signup_champs_boulanger()
{
if($('#signupform-is_boulanger').prop('checked'))
{
$('#champs-boulanger').fadeIn() ;
}
else {
$('#champs-boulanger').hide() ;
}
}



+ 0
- 1
frontend/web/js/lechatdesnoisettes.js View File

@@ -475,4 +475,3 @@ function chat_tabs_gamme_saison() {
});
}



+ 8
- 0
frontend/web/sass/screen.scss View File

@@ -343,6 +343,14 @@ ul {

}

/* signup */

#form-signup {
#champs-boulanger {
display: none ;
}
}

@import "_systeme_commandes.scss" ;
@import "_responsive.scss" ;


Loading…
Cancel
Save