- $relations = array( //TODO: Autodetect???
- 'model' => array('model_id' => array('item')),
- 'category' => array('category_id' => array('item')),
- 'producer' => array('producer_id' => array('item')),
- 'vendor' => array('vendor_id' => array('item')),
- 'room' => array('room_id' => array('item')),
- 'status' => array('status_id' => array('item')),
+ $where_url = '%d/?where[%c]==%v';
+ $insert_url = '%d/new?insert[%c]=%v';
+ $relations = array( //TODO: Autodetect??? //TODO: Add [edit] link to all classes
+ 'model' => array(
+ 'model_id' => array(array('item',$where_url),array('barcode',$where_url),array('edit','model/%v/edit/'),array('barcode',$insert_url,false,'add barcode')),
+ 'model_barcode' => array(array('store','assistant/%d?barcode=%v')),
+ 'barcode_name' => array(array('store','assistant/%d?barcode=%v')),
+ 'model_name' => array(array('google','http://google.com/search?q=%v')) //TODO: add manufacturer to google query
+ ),
+ 'barcode' => array(
+ 'model_id' => array(array('model',$where_url)),
+ 'barcode_id' => array(array('item',$where_url),array('edit','barcode/%v/edit/')),
+ 'barcode_name' => array(array('store','assistant/%d?barcode=%v')),
+ ),
+ 'item' => array(
+ 'item_serial' => array(array('dispose','assistant/%d?serial=%v','in_stock'),array('sell','assistant/%d?serial=%v','in_stock')),
+ 'item_id' => array(array('edit','item/%v/edit/'))
+ ),
+ 'category' => array('category_id' => array(array('item',$where_url), array('model',$where_url))),
+ 'producer' => array('producer_id' => array(array('item',$where_url), array('model',$where_url))),
+ 'vendor' => array('vendor_id' => array(array('item',$where_url))),
+ 'room' => array('room_id' => array(array('item',$where_url))),
+ 'status' => array('status_id' => array(array('item',$where_url))),
+ 'location' => array(
+ 'location_id' => array(array('item',$where_url),array('edit','location/%v/edit/')),
+ 'location_name' => array(array('smokeping','http://tartarus.brevnov.czf/cgi-bin/smokeping.cgi?filter=%v'))
+ )
+ );
+ $relations_conditions=array(
+ 'in_stock' => 'return(@$table[$id]["status_name"] == "stored");',
+ 'not_sold' => 'return(@$table[$id]["status_name"] != "sold");',
+ 'not_sold_or_disposed' => 'return(@$table[$id]["status_name"] != "sold" && @$table[$id]["status_name"] != "disposed");'