Se agregan los campos por segmento

This commit is contained in:
2020-06-03 21:59:11 -04:00
parent 2d2eccb600
commit 080ed4553e
14 changed files with 486 additions and 174 deletions

View File

@ -61,7 +61,8 @@ class Productos {
'segmentos.json'
]);
$segmentos = json_decode(trim(file_get_contents($filename)));
return $view->render($response, 'admin.producto', compact('producto', 'segmentos'));
$properties = $producto->getProperties();
return $view->render($response, 'admin.producto', compact('producto', 'segmentos', 'properties'));
}
public function do_edit(Request $request, Response $response, Container $container, ModelFactory $factory, $producto): Response {
$post = $request->getParsedBody();
@ -92,15 +93,6 @@ class Productos {
$producto->tamaño = $tamaño;
$changed = true;
}*/
if (isset($post['destacado']) and $post['destacado'] == 'on') {
$producto->destacado(true);
}
$post['tamaños'] = implode(' ', [
$post['tamaño_min'],
'-',
$post['tamaño_max'],
'm²'
]);
$f = Carbon::today();
$post['publicacion'] = $producto->publicacion ?? implode(' ', [
$f->day,
@ -346,4 +338,24 @@ class Productos {
]);
return $response;
}
public function fields(Request $request, Response $response): Response {
$post = $request->getParsedBody();
$class = implode("\\", [
'ProVM',
'KI',
'Productos',
$post['segmento']
]);
$obj = new $class;
$properties = $obj->getProperties();
$output = [
'information' => $post,
'fields' => $properties
];
$response->getBody()->write(json_encode($output, \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES | \JSON_UNESCAPED_UNICODE));
return $response
->withHeader('Content-Type', 'application/json')
->withStatus(201);
}
}

View File

@ -64,6 +64,7 @@ class Productos {
}
public function ficha(Request $request, Response $response, View $view, ModelFactory $factory, $producto): Response {
$producto = $factory->find(Producto::class)->where([['id', $producto]])->one();
return $view->render($response, 'productos.ficha', compact('producto'));
$properties = $producto->getFicha();
return $view->render($response, 'productos.ficha', compact('producto', 'properties'));
}
}