Template updates and strict types

This commit is contained in:
Timothy Warren 2018-07-18 11:35:27 -04:00
parent bd3e343727
commit 9bdc28fa79
42 changed files with 683 additions and 419 deletions

View File

@ -6,13 +6,13 @@ table th,
.descend {
vertical-align:text-bottom;
}
table thead th::before {
table.sortable thead th::before {
content: " ↕\00a0";
}
table thead .ascend::before {
table.sortable thead .ascend::before {
content: " ↑\00a0";
}
table thead .descend::before {
table.sortable thead .descend::before {
content: " ↓\00a0";
}
@ -24,9 +24,22 @@ table {
overflow: scroll;
}
table.scroll {
display: table;
}
/* ----------------------------------------------------------------------------
Text Areas
---------------------------------------------------------------------------- */
textarea {
height: 12rem;
}
/* ----------------------------------------------------------------------------
Miscellaneous
---------------------------------------------------------------------------- */
.edit-icon {
display: inline-block;
transform: rotateZ(90deg);
}

View File

@ -1,9 +1,13 @@
$(document).foundation();
(function() {
var tables = document.getElementsByTagName('table');
var tables = document.querySelectorAll('table.sortable');
var i = 0;
var len = tables.length;
if (tables.length > 0) {
tsorter.create(tables[0], 1);
if (len > 0) {
for (;i < len; i++) {
tsorter.create(tables[i], 1);
}
}
}());

View File

@ -1,4 +1,4 @@
<?php
<?php declare(strict_types=1);
namespace App;

View File

@ -1,4 +1,4 @@
<?php
<?php declare(strict_types=1);
namespace App\Controller;
@ -30,12 +30,27 @@ class CameraController extends Controller
*/
public function indexAction()
{
return $this->itemListView('camera/index.html.twig','cameras', [
'received' => 'DESC',
$em = $this->getDoctrine()->getManager();
$receivedItems = $em->getRepository(self::ENTITY)->findBy([
'received' => true
], [
'brand' => 'ASC',
'mount' => 'ASC',
'model' => 'ASC',
]);
$newItems = $em->getRepository(self::ENTITY)->findBy([
'received' => false
], [
'brand' => 'ASC',
'mount' => 'ASC',
'model' => 'ASC',
]);
return $this->render('camera/index.html.twig', [
'not_received' => $newItems,
'cameras' => $receivedItems,
]);
}
/**

View File

@ -1,4 +1,4 @@
<?php
<?php declare(strict_types=1);
namespace App\Controller;

View File

@ -1,4 +1,4 @@
<?php
<?php declare(strict_types=1);
namespace App\Controller;

View File

@ -1,9 +1,10 @@
<?php
<?php declare(strict_types=1);
namespace App\Controller;
use App\Entity\Film;
use App\Form\FilmType;
use Doctrine\Common\Collections\Criteria;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Form\FormInterface;
@ -28,12 +29,32 @@ class FilmController extends Controller
*/
public function indexAction()
{
return $this->itemListView('film/index.html.twig', 'films', [
'rollsInCamera' => 'DESC',
$repo = $this->getDoctrine()->getManager()->getRepository(self::ENTITY);
$criteria = Criteria::create()
->where(Criteria::expr()->gt('rollsInCamera', 0))
->orderBy([
'filmFormat' => Criteria::ASC,
'brand' => Criteria::ASC,
'rollsInCamera' => Criteria::DESC,
'productLine' => Criteria::ASC,
]);
$inCamera = $repo->matching($criteria);
$notInCamera = $repo->findBy([
'rollsInCamera' => 0,
], [
'brand' => 'ASC',
'productLine' => 'ASC',
'filmFormat' => 'ASC',
]);
return $this->render('film/index.html.twig', [
'in_camera' => $inCamera,
'films' => $notInCamera,
]);
}
/**

View File

@ -1,4 +1,4 @@
<?php
<?php declare(strict_types=1);
namespace App\Controller;

View File

@ -1,4 +1,4 @@
<?php
<?php declare(strict_types=1);
namespace App\Controller;
@ -28,14 +28,31 @@ class LensesController extends Controller
*/
public function indexAction()
{
return $this->itemListView('lenses/index.html.twig', 'lenses', [
'received' => 'DESC',
$em = $this->getDoctrine()->getManager();
$receivedItems = $em->getRepository(self::ENTITY)->findBy([
'received' => true
], [
'brand' => 'ASC',
'productLine' => 'ASC',
'mount' => 'ASC',
'minFocalLength' => 'ASC',
'maxFStop' => 'ASC',
]);
$newItems = $em->getRepository(self::ENTITY)->findBy([
'received' => false
], [
'brand' => 'ASC',
'productLine' => 'ASC',
'mount' => 'ASC',
'minFocalLength' => 'ASC',
'maxFStop' => 'ASC',
]);
return $this->render('lenses/index.html.twig', [
'not_received' => $newItems,
'lenses' => $receivedItems,
]);
}
/**

View File

@ -1,4 +1,4 @@
<?php
<?php declare(strict_types=1);
namespace App\Controller;

View File

@ -1,4 +1,4 @@
<?php
<?php declare(strict_types=1);
namespace App\Controller;

View File

@ -1,4 +1,4 @@
<?php
<?php declare(strict_types=1);
namespace App\Controller;

View File

@ -1,4 +1,4 @@
<?php
<?php declare(strict_types=1);
namespace App\Entity;

View File

@ -1,4 +1,4 @@
<?php
<?php declare(strict_types=1);
namespace App\Entity;

View File

@ -1,4 +1,4 @@
<?php
<?php declare(strict_types=1);
namespace App\Entity;

View File

@ -1,4 +1,4 @@
<?php
<?php declare(strict_types=1);
namespace App\Entity;

View File

@ -1,4 +1,4 @@
<?php
<?php declare(strict_types=1);
namespace App\Entity;

View File

@ -1,4 +1,4 @@
<?php
<?php declare(strict_types=1);
namespace App\Entity;

View File

@ -1,4 +1,4 @@
<?php
<?php declare(strict_types=1);
namespace App\Entity;

View File

@ -1,4 +1,4 @@
<?php
<?php declare(strict_types=1);
namespace App\Entity;

View File

@ -1,4 +1,4 @@
<?php
<?php declare(strict_types=1);
namespace App\Entity;

View File

@ -1,4 +1,4 @@
<?php
<?php declare(strict_types=1);
namespace App\Entity;

View File

@ -1,4 +1,4 @@
<?php
<?php declare(strict_types=1);
namespace App\Entity;

View File

@ -1,4 +1,4 @@
<?php
<?php declare(strict_types=1);
namespace App\Form;

View File

@ -1,4 +1,4 @@
<?php
<?php declare(strict_types=1);
namespace App\Form;

View File

@ -1,4 +1,4 @@
<?php
<?php declare(strict_types=1);
namespace App\Form;

View File

@ -1,4 +1,4 @@
<?php
<?php declare(strict_types=1);
namespace App\Form;

View File

@ -1,4 +1,4 @@
<?php
<?php declare(strict_types=1);
namespace App\Form;

View File

@ -1,4 +1,4 @@
<?php
<?php declare(strict_types=1);
namespace App\Form;

View File

@ -1,4 +1,4 @@
<?php
<?php declare(strict_types=1);
namespace App\Form;

View File

@ -1,4 +1,4 @@
<?php
<?php declare(strict_types=1);
namespace App\Form;

View File

@ -1,4 +1,4 @@
<?php
<?php declare(strict_types=1);
namespace App;

View File

@ -1,4 +1,4 @@
<?php
<?php declare(strict_types=1);
namespace App\Repository;

View File

@ -15,55 +15,101 @@
</ul>
</div>
<table class="hover scroll stack">
<thead>
<tr>
<th>Actions</th>
<th>Id</th>
<th>Brand</th>
<th>Mount</th>
<th>Model</th>
<th>Is Digital?</th>
<th>Crop Factor</th>
<th>Is Working?</th>
<th>Notes</th>
<th>Serial</th>
<th>Formerly Owned?</th>
<th>Purchase Price</th>
<th>Battery Type</th>
<th>Film Format</th>
<th>Received</th>
</tr>
</thead>
<tbody>
{% for camera in cameras %}
<tr>
<td>
<ul>
<li>
<a href="{{ path('camera_edit', { 'id': camera.id }) }}">edit</a>
</li>
</ul>
</td>
<td><a href="{{ path('camera_show', { 'id': camera.id }) }}">{{ camera.id }}</a></td>
<td>{{ camera.brand }}</td>
<td>{{ camera.mount }}</td>
<td>{{ camera.model }}</td>
<td>{% if camera.isDigital %}Yes{% else %}No{% endif %}</td>
<td>{{ camera.cropFactor }}</td>
<td>{% if camera.isWorking %}Yes{% else %}No{% endif %}</td>
<td>{{ camera.notes }}</td>
<td>{{ camera.serial }}</td>
<td>{% if camera.formerlyOwned %}Yes{% else %}No{% endif %}</td>
<td>${{ camera.purchasePrice }}</td>
<td>{{ camera.batteryType }}</td>
<td>{{ camera.filmFormat }}</td>
<td>{% if camera.received %}Yes{% else %}No{% endif %}</td>
</tr>
{% endfor %}
</tbody>
</table>
<div class="small callout warning">
<table class="hover scroll sortable stack">
<caption>Not Yet Received</caption>
<thead>
<tr>
<th>Actions</th>
<th>Brand</th>
<th>Model</th>
<th>Mount</th>
<th>Film Format</th>
<th>Serial</th>
<th>Purchase Price</th>
<th>Battery Type</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
{% for camera in not_received %}
<tr>
<td>
<ul>
<li>
<a href="{{ path('camera_edit', { 'id': camera.id }) }}">
Edit
<span class="edit-icon">&#9998;</span>
</a>
</li>
<li>
<a href="{{ path('camera_show', { 'id': camera.id }) }}">View 👁</a>
</li>
</ul>
</td>
<td>{{ camera.brand }}</td>
<td>{{ camera.model }}</td>
<td>{{ camera.mount }}</td>
<td>{{ camera.filmFormat }}</td>
<td>{{ camera.serial }}</td>
<td>${{ camera.purchasePrice }}</td>
<td>{{ camera.batteryType }}</td>
<td>{{ camera.notes }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
<div class="small callout secondary">
<table class="hover scroll sortable stack">
<caption>Received</caption>
<thead>
<tr>
<th>Actions</th>
<th>Brand</th>
<th>Mount</th>
<th>Model</th>
<th>Crop Factor</th>
<th>Is Working?</th>
<th>Serial</th>
<th>Formerly Owned?</th>
<th>Purchase Price</th>
<th>Battery Type</th>
<th>Film Format</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
{% for camera in cameras %}
<tr>
<td>
<ul>
<li>
<a href="{{ path('camera_edit', { 'id': camera.id }) }}">
Edit
<span class="edit-icon">&#9998;</span>
</a>
</li>
<li>
<a href="{{ path('camera_show', { 'id': camera.id }) }}">View 👁</a>
</li>
</ul>
</td>
<td>{{ camera.brand }}</td>
<td>{{ camera.mount }}</td>
<td>{{ camera.model }}</td>
<td>{{ camera.cropFactor }}</td>
<td class="text-center">{% if camera.isWorking %}{% else %}&#10007;{% endif %}</td>
<td>{{ camera.serial }}</td>
<td class="text-center">{% if camera.formerlyOwned %}{% else %}&#10007;{% endif %}</td>
<td>${{ camera.purchasePrice }}</td>
<td>{{ camera.batteryType }}</td>
<td>{{ camera.filmFormat }}</td>
<td>{{ camera.notes }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% endblock %}

View File

@ -15,30 +15,36 @@
</ul>
</div>
<table class="hover scroll stack">
<thead>
<tr>
<th>Actions</th>
<th>Id</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
{% for cameraType in cameraTypes %}
<tr>
<td>
<ul>
<li>
<a href="{{ path('camera-type_edit', { 'id': cameraType.id }) }}">edit</a>
</li>
</ul>
</td>
<td><a href="{{ path('camera-type_show', { 'id': cameraType.id }) }}">{{ cameraType.id }}</a></td>
<td>{{ cameraType.type }}</td>
<td>{{ cameraType.description }}</td>
</tr>
{% endfor %}
</tbody>
</table>
<div class="small secondary callout">
<table class="hover scroll stack">
<thead>
<tr>
<th>Actions</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
{% for cameraType in cameraTypes %}
<tr>
<td>
<ul>
<li>
<a href="{{ path('camera-type_edit', { 'id': cameraType.id }) }}">
Edit
<span class="edit-icon">&#9998;</span>
</a>
</li>
<li>
<a href="{{ path('camera-type_show', { 'id': cameraType.id }) }}">View 👁</a>
</li>
</ul>
</td>
<td>{{ cameraType.type }}</td>
<td>{{ cameraType.description }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% endblock %}

View File

@ -4,7 +4,3 @@
Camera 📷 CRUD
{% endblock %}
{% block body %}
<div class="grid-container"></div>
{% endblock %}

View File

@ -15,52 +15,111 @@
</ul>
</div>
<table class="hover scroll stack">
<thead>
<tr>
<th>Actions</th>
<th>Id</th>
<th>Brand</th>
<th>Product Line</th>
<th>Film Name</th>
<th>Film Alias</th>
<th>Film Speed</th>
<th>Film Format</th>
<th>Film Base</th>
<th>Unused Rolls</th>
<th>Rolls in a Camera</th>
<th>Developed Rolls</th>
<th>Chemistry</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
{% for film in films %}
<tr>
<td>
<ul>
<li>
<a href="{{ path('film_edit', { 'id': film.id }) }}">edit</a>
</li>
</ul>
</td>
<td><a href="{{ path('film_show', { 'id': film.id }) }}">{{ film.id }}</a></td>
<td>{{ film.brand }}</td>
<td>{{ film.productLine }}</td>
<td>{{ film.filmName }}</td>
<td>{{ film.filmAlias }}</td>
<td>{{ film.filmSpeedAsa }}/{{ film.filmSpeedDin }}&deg;</td>
<td>{{ film.filmFormat }}</td>
<td>{{ film.filmBase }}</td>
<td>{{ film.unusedRolls }}</td>
<td>{{ film.rollsInCamera }}</td>
<td>{{ film.developedRolls }}</td>
<td>{{ film.chemistry }}</td>
<td>{{ film.notes }}</td>
</tr>
{% endfor %}
</tbody>
</table>
<div class="small callout warning">
<table class="hover scroll sortable stack">
<caption>In Camera</caption>
<thead>
<tr>
<th>Actions</th>
<th>Brand</th>
<th>Product Line</th>
<th>Film Name</th>
<th>Film Alias</th>
<th>Film Speed</th>
<th>Film Format</th>
<th>Film Base</th>
<th>Unused Rolls</th>
<th>Rolls in a Camera</th>
<th>Developed Rolls</th>
<th>Chemistry</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
{% for film in in_camera %}
<tr>
<td>
<ul>
<li>
<a href="{{ path('film_edit', { 'id': film.id }) }}">
Edit
<span class="edit-icon">&#9998;</span>
</a>
</li>
<li>
<a href="{{ path('film_show', { 'id': film.id }) }}">View 👁</a>
</li>
</ul>
</td>
<td>{{ film.brand }}</td>
<td>{{ film.productLine }}</td>
<td>{{ film.filmName }}</td>
<td>{{ film.filmAlias }}</td>
<td>{{ film.filmSpeedAsa }}/{{ film.filmSpeedDin }}&deg;</td>
<td>{{ film.filmFormat }}</td>
<td>{{ film.filmBase }}</td>
<td>{{ film.unusedRolls }}</td>
<td>{{ film.rollsInCamera }}</td>
<td>{{ film.developedRolls }}</td>
<td>{{ film.chemistry }}</td>
<td>{{ film.notes }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
<div class="small callout secondary">
<table class="hover scroll sortable stack">
<caption>Not in Camera</caption>
<thead>
<tr>
<th>Actions</th>
<th>Brand</th>
<th>Product Line</th>
<th>Film Name</th>
<th>Film Alias</th>
<th>Film Speed</th>
<th>Film Format</th>
<th>Film Base</th>
<th>Unused Rolls</th>
<th>Rolls in a Camera</th>
<th>Developed Rolls</th>
<th>Chemistry</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
{% for film in films %}
<tr>
<td>
<ul>
<li>
<a href="{{ path('film_edit', { 'id': film.id }) }}">
Edit
<span class="edit-icon">&#9998;</span>
</a>
</li>
<li>
<a href="{{ path('film_show', { 'id': film.id }) }}">View 👁</a>
</li>
</ul>
</td>
<td>{{ film.brand }}</td>
<td>{{ film.productLine }}</td>
<td>{{ film.filmName }}</td>
<td>{{ film.filmAlias }}</td>
<td>{{ film.filmSpeedAsa }}/{{ film.filmSpeedDin }}&deg;</td>
<td>{{ film.filmFormat }}</td>
<td>{{ film.filmBase }}</td>
<td>{{ film.unusedRolls }}</td>
<td>{{ film.rollsInCamera }}</td>
<td>{{ film.developedRolls }}</td>
<td>{{ film.chemistry }}</td>
<td>{{ film.notes }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% endblock %}

View File

@ -5,7 +5,7 @@
{% endblock %}
{% block body %}
<h2>Flashes list</h2>
<h2>Flashes</h2>
<div class="small primary callout">
<ul>
@ -15,54 +15,60 @@
</ul>
</div>
<table class="hover scroll stack">
<thead>
<tr>
<th>Actions</th>
<th>Id</th>
<th>Brand</th>
<th>Model</th>
<th>Is Auto Flash?</th>
<th>Is TTL?</th>
<th>TTL Type</th>
<th>Is P-TTL?</th>
<th>P-TTL type</th>
<th>Guide Number</th>
<th>Purchase Price</th>
<th>Received</th>
<th>Batteries</th>
<th>Notes</th>
<th>Serial</th>
</tr>
</thead>
<tbody>
{% for flash in flashes %}
<tr>
<td>
<ul>
<li>
<a href="{{ path('flash_edit', { 'id': flash.id }) }}">edit</a>
</li>
</ul>
</td>
<td><a href="{{ path('flash_show', { 'id': flash.id }) }}">{{ flash.id }}</a></td>
<td>{{ flash.brand }}</td>
<td>{{ flash.model }}</td>
<td>{% if flash.isAutoFlash %}Yes{% else %}No{% endif %}</td>
<td>{% if flash.isTtl %}Yes{% else %}No{% endif %}</td>
<td>{{ flash.ttlType }}</td>
<td>{% if flash.isPTtl %}Yes{% else %}No{% endif %}</td>
<td>{{ flash.pTtlType }}</td>
<td>{{ flash.guideNumber }}</td>
<td>${{ flash.purchasePrice }}</td>
<td>{% if flash.received %}Yes{% else %}No{% endif %}</td>
<td>{{ flash.batteries }}</td>
<td>{{ flash.notes }}</td>
<td>{{ flash.serial }}</td>
</tr>
{% endfor %}
</tbody>
</table>
<div class="small secondary callout">
<table class="hover scroll sortable stack">
<thead>
<tr>
<th>Actions</th>
<th>Brand</th>
<th>Model</th>
<th>Is Auto Flash?</th>
<th>Is TTL?</th>
<th>TTL Type</th>
<th>Is P-TTL?</th>
<th>P-TTL type</th>
<th>Guide Number</th>
<th>Purchase Price</th>
<th>Received</th>
<th>Batteries</th>
<th>Serial</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
{% for flash in flashes %}
<tr>
<td>
<ul>
<li>
<a href="{{ path('flash_edit', { 'id': flash.id }) }}">
Edit
<span class="edit-icon">&#9998;</span>
</a>
</li>
<li>
<a href="{{ path('flash_show', { 'id': flash.id }) }}">View 👁</a>
</li>
</ul>
</td>
<td>{{ flash.brand }}</td>
<td>{{ flash.model }}</td>
<td class="text-center">{% if flash.isAutoFlash %}{% else %}&#10007;{% endif %}</td>
<td class="text-center">{% if flash.isTtl %}{% else %}&#10007;{% endif %}</td>
<td>{{ flash.ttlType }}</td>
<td class="text-center">{% if flash.isPTtl %}{% else %}&#10007;{% endif %}</td>
<td>{{ flash.pTtlType }}</td>
<td>{{ flash.guideNumber }}</td>
<td>${{ flash.purchasePrice }}</td>
<td class="text-center">{% if flash.received %}{% else %}&#10007;{% endif %}</td>
<td>{{ flash.batteries }}</td>
<td>{{ flash.serial }}</td>
<td>{{ flash.notes }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% endblock %}

View File

@ -15,60 +15,125 @@
</ul>
</div>
<table class="hover scroll stack">
<thead>
<tr>
<th>Actions</th>
<th>Id</th>
<th>Brand</th>
<th>Description</th>
<th>Aperture Range</th>
<th>Focal Range</th>
<th>Serial</th>
<th>Purchase Price</th>
<th>Notes</th>
<th>Mount</th>
<th>Image Size</th>
<th>Received</th>
<th>Formerly Owned</th>
<th>Front Filter Size</th>
<th>Rear Filter Size</th>
<th>Is Teleconverter?</th>
<th>Design Elements / Groups</th>
<th>Aperture Blades</th>
</tr>
</thead>
<tbody>
{% for lense in lenses %}
<tr>
<td>
<ul>
<li>
<a href="{{ path('lens_edit', { 'id': lense.id }) }}">edit</a>
</li>
</ul>
</td>
<td><a href="{{ path('lens_show', { 'id': lense.id }) }}">{{ lense.id }}</a></td>
<td>{{ lense.brand }}</td>
<td>{{ lense.coatings }} {{ lense.productLine }} {{ lense.model }}</td>
<td>{{ lense.minFStop }} &mdash; {{ lense.maxFStop }}</td>
<td>{{ lense.minFocalLength }} &mdash; {{ lense.maxFocalLength }}</td>
<td>{{ lense.serial }}</td>
<td>${{ lense.purchasePrice }}</td>
<td>{{ lense.notes }}</td>
<td>{{ lense.mount }}</td>
<td>{{ lense.imageSize }}</td>
<td>{% if lense.received %}Yes{% else %}No{% endif %}</td>
<td>{% if lense.formerlyOwned %}Yes{% else %}No{% endif %}</td>
<td>{{ lense.frontFilterSize }}</td>
<td>{{ lense.rearFilterSize }}</td>
<td>{% if lense.isTeleconverter %}Yes{% else %}No{% endif %}</td>
<td>{{ lense.designElements }} / {{ lense.designGroups }}</td>
<td>{{ lense.apertureBlades }}</td>
</tr>
{% endfor %}
</tbody>
</table>
<div class="small callout warning">
<table class="hover scroll sortable stack">
<caption>Not Yet Received</caption>
<thead>
<tr>
<th>Actions</th>
<th>Brand</th>
<th>Description</th>
<th>Aperture Range</th>
<th>Focal Range</th>
<th class="text-right">Serial</th>
<th class="text-right">Purchase Price</th>
<th>Mount</th>
<th>Image Size</th>
<th>Formerly Owned</th>
<th>Front Filter Size</th>
<th>Rear Filter Size</th>
<th>Is Teleconverter?</th>
<th>Design Elements / Groups</th>
<th>Aperture Blades</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
{% for lens in not_received %}
<tr>
<td>
<ul>
<li>
<a href="{{ path('lens_edit', { 'id': lens.id }) }}">
Edit
<span class="edit-icon">&#9998;</span>
</a>
</li>
<li>
<a href="{{ path('lens_show', { 'id': lens.id }) }}">View 👁</a>
</li>
</ul>
</td>
<td>{{ lens.brand }}</td>
<td>{{ lens.coatings }} {{ lens.productLine }} {{ lens.model }}</td>
<td>{{ lens.minFStop }} &mdash; {{ lens.maxFStop }}</td>
<td>{{ lens.minFocalLength }} &mdash; {{ lens.maxFocalLength }}</td>
<td class="text-right">{{ lens.serial }}</td>
<td class="text-right">${{ lens.purchasePrice }}</td>
<td>{{ lens.mount }}</td>
<td>{{ lens.imageSize }}</td>
<td class="text-center">{% if lens.formerlyOwned %}{% else %}&#10007;{% endif %}</td>
<td>{{ lens.frontFilterSize }}</td>
<td>{{ lens.rearFilterSize }}</td>
<td class="text-center">{% if lens.isTeleconverter %}{% else %}&#10007;{% endif %}</td>
<td>{{ lens.designElements }} / {{ lens.designGroups }}</td>
<td>{{ lens.apertureBlades }}</td>
<td>{{ lens.notes }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
<div class="small callout secondary">
<table class="hover scroll sortable stack">
<caption>Received</caption>
<thead>
<tr>
<th>Actions</th>
<th>Brand</th>
<th>Product Line</th>
<th>Description</th>
<th>Aperture Range</th>
<th>Focal Range</th>
<th class="text-right">Serial</th>
<th class="text-right">Purchase Price</th>
<th>Mount</th>
<th>Image Size</th>
<th>Formerly Owned</th>
<th>Filter (F/R)</th>
<th>Is Teleconverter?</th>
<th>Design Elements / Groups</th>
<th>Aperture Blades</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
{% for lens in lenses %}
<tr>
<td>
<ul>
<li>
<a href="{{ path('lens_edit', { 'id': lens.id }) }}">
Edit
<span class="edit-icon">&#9998;</span>
</a>
</li>
<li>
<a href="{{ path('lens_show', { 'id': lens.id }) }}">View 👁</a>
</li>
</ul>
</td>
<td>{{ lens.brand }}</td>
<td>{{ lens.productLine }}</td>
<td>{{ lens.coatings }} {{ lens.model }}</td>
<td>{{ lens.minFStop }} &mdash; {{ lens.maxFStop }}</td>
<td>{{ lens.minFocalLength }} &mdash; {{ lens.maxFocalLength }}</td>
<td class="text-right">{{ lens.serial }}</td>
<td class="text-right">${{ lens.purchasePrice }}</td>
<td>{{ lens.mount }}</td>
<td>{{ lens.imageSize }}</td>
<td class="text-center">{% if lens.formerlyOwned %}{% else %}&#10007;{% endif %}</td>
<td>{{ lens.frontFilterSize }} / {{ lens.rearFilterSize }}</td>
<td class="text-center">{% if lens.isTeleconverter %}{% else %}&#10007;{% endif %}</td>
<td>{{ lens.designElements }} / {{ lens.designGroups }}</td>
<td>{{ lens.apertureBlades }}</td>
<td>{{ lens.notes }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% endblock %}

View File

@ -7,50 +7,54 @@
{% block body %}
<h2>Previously Owned Cameras</h2>
<table class="hover scroll stack">
<thead>
<tr>
<th>Actions</th>
<th>Id</th>
<th>Brand</th>
<th>Mount</th>
<th>Model</th>
<th>Is Digital?</th>
<th>Crop Factor</th>
<th>Is Working?</th>
<th>Notes</th>
<th>Serial</th>
<th>Purchase Price</th>
<th>Battery Type</th>
<th>Film Format</th>
<th>Received</th>
</tr>
</thead>
<tbody>
{% for previouslyOwnedCamera in previouslyOwnedCameras %}
<tr>
<td>
<ul>
<li>
<a href="{{ path('previously-owned-camera_edit', { 'id': previouslyOwnedCamera.id }) }}">edit</a>
</li>
</ul>
</td>
<td><a href="{{ path('previously-owned-camera_show', { 'id': previouslyOwnedCamera.id }) }}">{{ previouslyOwnedCamera.id }}</a></td>
<td>{{ previouslyOwnedCamera.brand }}</td>
<td>{{ previouslyOwnedCamera.mount }}</td>
<td>{{ previouslyOwnedCamera.model }}</td>
<td>{% if previouslyOwnedCamera.isDigital %}Yes{% else %}No{% endif %}</td>
<td>{{ previouslyOwnedCamera.cropFactor }}</td>
<td>{% if previouslyOwnedCamera.isWorking %}Yes{% else %}No{% endif %}</td>
<td>{{ previouslyOwnedCamera.notes }}</td>
<td>{{ previouslyOwnedCamera.serial }}</td>
<td>${{ previouslyOwnedCamera.purchasePrice }}</td>
<td>{{ previouslyOwnedCamera.batteryType }}</td>
<td>{{ previouslyOwnedCamera.filmFormat }}</td>
<td>{% if previouslyOwnedCamera.received %}Yes{% else %}No{% endif %}</td>
</tr>
{% endfor %}
</tbody>
</table>
<div class="small secondary callout">
<table class="hover scroll sortable stack">
<thead>
<tr>
<th>Actions</th>
<th>Brand</th>
<th>Mount</th>
<th>Model</th>
<th>Digital?</th>
<th>Crop Factor</th>
<th>Working?</th>
<th>Serial</th>
<th>Purchase Price</th>
<th>Battery Type</th>
<th>Film Format</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
{% for previouslyOwnedCamera in previouslyOwnedCameras %}
<tr>
<td>
<ul>
<li>
<a href="{{ path('previously-owned-camera_edit', { 'id': previouslyOwnedCamera.id }) }}">
Edit
<span class="edit-icon">&#9998;</span>
</a>
</li>
<li>
<a href="{{ path('previously-owned-camera_show', { 'id': previouslyOwnedCamera.id }) }}">View 👁</a>
</li>
</ul>
</td>
<td>{{ previouslyOwnedCamera.brand }}</td>
<td>{{ previouslyOwnedCamera.mount }}</td>
<td>{{ previouslyOwnedCamera.model }}</td>
<td class="text-center">{% if previouslyOwnedCamera.isDigital %}{% else %}&#10007;{% endif %}</td>
<td>{{ previouslyOwnedCamera.cropFactor }}</td>
<td class="text-center">{% if previouslyOwnedCamera.isWorking %}{% else %}&#10007;{% endif %}</td>
<td>{{ previouslyOwnedCamera.serial }}</td>
<td>${{ previouslyOwnedCamera.purchasePrice }}</td>
<td>{{ previouslyOwnedCamera.batteryType }}</td>
<td>{{ previouslyOwnedCamera.filmFormat }}</td>
<td>{{ previouslyOwnedCamera.notes }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% endblock %}

View File

@ -7,50 +7,57 @@
{% block body %}
<h2>Previously Owned Flashes</h2>
<table class="hover scroll stack">
<thead>
<tr>
<th>Actions</th>
<th>Id</th>
<th>Brand</th>
<th>Model</th>
<th>Is Auto Flash?</th>
<th>Is TTL</th>
<th>TTL Type</th>
<th>Is P-TTL</th>
<th>P-TTL Type</th>
<th>Guide Number</th>
<th>Purchase Price</th>
<th>Batteries</th>
<th>Notes</th>
<th>Serial</th>
</tr>
</thead>
<tbody>
{% for previouslyOwnedFlash in previouslyOwnedFlashes %}
<tr>
<td>
<ul>
<li>
<a href="{{ path('previously-owned-flash_edit', { 'id': previouslyOwnedFlash.id }) }}">edit</a>
</li>
</ul>
</td>
<td><a href="{{ path('previously-owned-flash_show', { 'id': previouslyOwnedFlash.id }) }}">{{ previouslyOwnedFlash.id }}</a></td>
<td>{{ previouslyOwnedFlash.brand }}</td>
<td>{{ previouslyOwnedFlash.model }}</td>
<td>{% if previouslyOwnedFlash.isAutoFlash %}Yes{% else %}No{% endif %}</td>
<td>{% if previouslyOwnedFlash.isTtl %}Yes{% else %}No{% endif %}</td>
<td>{{ previouslyOwnedFlash.ttlType }}</td>
<td>{% if previouslyOwnedFlash.isPTtl %}Yes{% else %}No{% endif %}</td>
<td>{{ previouslyOwnedFlash.pTtlType }}</td>
<td>{{ previouslyOwnedFlash.guideNumber }}</td>
<td>${{ previouslyOwnedFlash.purchasePrice }}</td>
<td>{{ previouslyOwnedFlash.batteries }}</td>
<td>{{ previouslyOwnedFlash.notes }}</td>
<td>{{ previouslyOwnedFlash.serial }}</td>
</tr>
{% endfor %}
</tbody>
</table>
<div class="small secondary callout">
<table class="hover scroll sortable stack">
<thead>
<tr>
<th>Actions</th>
<th>Brand</th>
<th>Model</th>
<th>Is Auto Flash?</th>
<th>Is TTL</th>
<th>TTL Type</th>
<th>Is P-TTL</th>
<th>P-TTL Type</th>
<th>Guide Number</th>
<th>Purchase Price</th>
<th>Batteries</th>
<th>Serial</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
{% for previouslyOwnedFlash in previouslyOwnedFlashes %}
<tr>
<td>
<ul>
<li>
<a href="{{ path('previously-owned-flash_edit', { 'id': previouslyOwnedFlash.id }) }}">
Edit
<span class="edit-icon">&#9998;</span>
</a>
</li>
<li>
<a
href="{{ path('previously-owned-flash_show', { 'id': previouslyOwnedFlash.id }) }}">View 👁</a>
</li>
</ul>
</td>
<td>{{ previouslyOwnedFlash.brand }}</td>
<td>{{ previouslyOwnedFlash.model }}</td>
<td>{% if previouslyOwnedFlash.isAutoFlash %}{% else %}&#10007;{% endif %}</td>
<td>{% if previouslyOwnedFlash.isTtl %}{% else %}&#10007;{% endif %}</td>
<td>{{ previouslyOwnedFlash.ttlType }}</td>
<td>{% if previouslyOwnedFlash.isPTtl %}{% else %}&#10007;{% endif %}</td>
<td>{{ previouslyOwnedFlash.pTtlType }}</td>
<td>{{ previouslyOwnedFlash.guideNumber }}</td>
<td>${{ previouslyOwnedFlash.purchasePrice }}</td>
<td>{{ previouslyOwnedFlash.batteries }}</td>
<td>{{ previouslyOwnedFlash.serial }}</td>
<td>{{ previouslyOwnedFlash.notes }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% endblock %}

View File

@ -7,58 +7,63 @@
{% block body %}
<h2>Previously Owned Lenses</h2>
<table class="hover scroll stack">
<thead>
<tr>
<th>Actions</th>
<th>Id</th>
<th>Brand</th>
<th>Coatings</th>
<th>Product Line</th>
<th>Model</th>
<th>Aperture Range</th>
<th>Focal Range</th>
<th>Serial</th>
<th>Purchase Price</th>
<th>Notes</th>
<th>Mount</th>
<th>Image Size</th>
<th>Front Filter Size</th>
<th>Rear Filter Size</th>
<th>Is Teleconverter?</th>
<th>Design Elements/Groups</th>
<th>Aperture Blades</th>
</tr>
</thead>
<tbody>
{% for previouslyOwnedLense in previouslyOwnedLenses %}
<tr>
<td>
<ul>
<li>
<a href="{{ path('previously-owned-lens_edit', { 'id': previouslyOwnedLense.id }) }}">edit</a>
</li>
</ul>
</td>
<td><a href="{{ path('previously-owned-lens_show', { 'id': previouslyOwnedLense.id }) }}">{{ previouslyOwnedLense.id }}</a></td>
<td>{{ previouslyOwnedLense.brand }}</td>
<td>{{ previouslyOwnedLense.coatings }}</td>
<td>{{ previouslyOwnedLense.productLine }}</td>
<td>{{ previouslyOwnedLense.model }}</td>
<td>{{ previouslyOwnedLense.minFStop }} &mdash; {{ previouslyOwnedLense.maxFStop }}</td>
<td>{{ previouslyOwnedLense.minFocalLength }} &mdash; {{ previouslyOwnedLense.maxFocalLength }}</td>
<td>{{ previouslyOwnedLense.serial }}</td>
<td>${{ previouslyOwnedLense.purchasePrice }}</td>
<td>{{ previouslyOwnedLense.notes }}</td>
<td>{{ previouslyOwnedLense.mount }}</td>
<td>{{ previouslyOwnedLense.imageSize }}</td>
<td>{{ previouslyOwnedLense.frontFilterSize }}</td>
<td>{{ previouslyOwnedLense.rearFilterSize }}</td>
<td>{% if previouslyOwnedLense.isTeleconverter %}Yes{% else %}No{% endif %}</td>
<td>{{ previouslyOwnedLense.designElements }}/{{ previouslyOwnedLense.designGroups }}</td>
<td>{{ previouslyOwnedLense.apertureBlades }}</td>
</tr>
{% endfor %}
</tbody>
</table>
<div class="small secondary callout">
<table class="hover scroll stack">
<thead>
<tr>
<th>Actions</th>
<th>Brand</th>
<th>Coatings</th>
<th>Product Line</th>
<th>Model</th>
<th>Aperture Range</th>
<th>Focal Range</th>
<th>Serial</th>
<th>Purchase Price</th>
<th>Mount</th>
<th>Image Size</th>
<th>Filter (F/R)</th>
<th>Is Teleconverter?</th>
<th>Design Elements/Groups</th>
<th>Aperture Blades</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
{% for previouslyOwnedLense in previouslyOwnedLenses %}
<tr>
<td>
<ul>
<li>
<a href="{{ path('previously-owned-lens_edit', { 'id': previouslyOwnedLense.id }) }}">
Edit
<span class="edit-icon">&#9998;</span>
</a>
</li>
<li>
<a
href="{{ path('previously-owned-lens_show', { 'id': previouslyOwnedLense.id }) }}">View 👁</a>
</li>
</ul>
</td>
<td>{{ previouslyOwnedLense.brand }}</td>
<td>{{ previouslyOwnedLense.coatings }}</td>
<td>{{ previouslyOwnedLense.productLine }}</td>
<td>{{ previouslyOwnedLense.model }}</td>
<td>{{ previouslyOwnedLense.minFStop }} &mdash; {{ previouslyOwnedLense.maxFStop }}</td>
<td>{{ previouslyOwnedLense.minFocalLength }} &mdash; {{ previouslyOwnedLense.maxFocalLength }}</td>
<td>{{ previouslyOwnedLense.serial }}</td>
<td>${{ previouslyOwnedLense.purchasePrice }}</td>
<td>{{ previouslyOwnedLense.mount }}</td>
<td>{{ previouslyOwnedLense.imageSize }}</td>
<td>{{ previouslyOwnedLense.frontFilterSize }} / {{ previouslyOwnedLense.rearFilterSize }}</td>
<td class="text-center">{% if previouslyOwnedLense.isTeleconverter %}{% else %}&#10007;{% endif %}</td>
<td>{{ previouslyOwnedLense.designElements }}/{{ previouslyOwnedLense.designGroups }}</td>
<td>{{ previouslyOwnedLense.apertureBlades }}</td>
<td>{{ previouslyOwnedLense.notes }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% endblock %}