Browse Source

Modification des contraintes

isundil 10 years ago
parent
commit
22d61659a6

+ 8 - 2
src/classes/Constraint.Entity.php

@@ -25,8 +25,8 @@ class ConstraintEntity extends \Entity
 	**/
 	public static function create($cId, $userA, $userB)
 	{
-		$query = self::getPdo()->prepare("INSERT INTO `users` (`campain`, `userA`, `userB`) VALUES(?, ?, ?)");
-		return ($query->execute(array($cId, $userA, $userB)));
+		$query = self::getPdo()->prepare("INSERT INTO `userConstraints` (`campain`, `userA`, `userB`) VALUES(?, ?, ?)");
+		return ($query->execute(array($cId, $userA->getEmail(), $userB->getEmail())));
 	}
 
 	public static function getForCampain($cId)
@@ -38,5 +38,11 @@ class ConstraintEntity extends \Entity
 			$result[] = new self($i);
 		return $result;
 	}
+
+	public static function removeForCampain($cId)
+	{
+		$cId = (int) $cId;
+		self::getPdo()->exec("DELETE FROM `userConstraints` WHERE `campain`={$cId}");
+	}
 }
 

+ 4 - 0
src/classes/Entity.class.php

@@ -14,5 +14,9 @@ abstract class Entity {
 			self::$_dbo = new PDO("mysql:host=localhost;dbname=".DB_NAME, DB_USER, DB_PASS);
 		return self::$_dbo;
 	}
+
+	public static function dumpError() {
+		var_dump(self::getPdo()->errorInfo());
+	}
 }
 

+ 15 - 0
src/classes/Secret.Entity.php

@@ -28,6 +28,11 @@ class SecretEntity extends \Entity
 	public function getUsers() { return UserEntity::getForCampain($this->id); }
 	public function getConstraints() { return ConstraintEntity::getForCampain($this->id); }
 
+	public function addUser($email, $name)
+	{
+		return UserEntity::create($this->id, $email, $name);
+	}
+
 	/**
 	 * Create entity
 	 * @var string $admin
@@ -56,5 +61,15 @@ class SecretEntity extends \Entity
 			return new self($i);
 		return false;
 	}
+
+	public function addConstraint($userA, $userB)
+	{
+		return ConstraintEntity::create($this->id, $userA, $userB);
+	}
+
+	public function removeConstraints()
+	{
+		ConstraintEntity::removeForCampain($this->id);
+	}
 }
 

+ 17 - 0
src/hash.php

@@ -39,6 +39,23 @@ class CreateController extends Controller
 
 	public function managePost()
 	{
+		if (!empty($_POST['cemail']))
+		{
+			$this->campain->addUser($_POST['cemail'], $_POST['cname']);
+			$this->users = $this->campain->getUsers();
+		}
+		$this->campain->removeConstraints();
+		$groups = array();
+		foreach ($this->users as $i)
+			foreach ($this->users as $j)
+			{
+				if ($i == $j)
+					break;
+				$index = md5($i->getEmail()).'-'.md5($j->getEmail());
+				if (!isset($_POST[$index]) || (int) $_POST[$index] != 1)
+					$this->campain->addConstraint($i, $j);
+			}
+		$this->constraints = $this->campain->getConstraints();
 	}
 }
 

+ 3 - 3
src/views/hash.php

@@ -22,7 +22,7 @@
 					$pass = true;
 				else if (!$pass)
 				{
-					?><input type="checkbox" name="<?php echo md5($i->getEmail()).'-'.md5($j->getEmail()); ?>" <?php
+					?><input type="checkbox" value="1" name="<?php echo md5($i->getEmail()).'-'.md5($j->getEmail()); ?>" <?php
 					if (!$this->hasConstraint($i, $j))
 						echo " checked";
 					echo '/>';
@@ -35,8 +35,8 @@
 				<td>
 					<div class="form-group">
 						<label for="cname">Ajouter un participant : </label>
-						<div class="input-group"><span class="input-group-addon glyphicon glyphicon-user" id="cname-before"></span><input id="cname" type="text" placeholder="nom *" class="form-control" name="cname" /></div>
-						<div class="input-group"><span class="input-group-addon glyphicon glyphicon-envelope" id="cemail-before"></span><input type="email" placeholder="email" class="form-control" id="cemail" name="cemail" /></div>
+						<div class="input-group"><span class="input-group-addon glyphicon glyphicon-user" id="cname-before"></span><input id="cname" type="text" placeholder="nom" class="form-control" name="cname" /></div>
+						<div class="input-group"><span class="input-group-addon glyphicon glyphicon-envelope" id="cemail-before"></span><input type="email" placeholder="email *" class="form-control" id="cemail" name="cemail" /></div>
 					</div>
 				</td>
 				<?php for ($i=0; $i < count($this->getUsers()); $i++): ?>