'text', 'description' => 'longtext', #'tags' => 'tags', 'access_id' => 'access', ); $crud = crud_register_type('decision', $variables); $crud->children_type = 'proposal'; // the following is to not overwrite module if assemblies set it // before, since we don't need explicit module. if ($crud->module == 'decision') { $crud->module = 'proposals'; } //$crud->module = 'proposals'; $crud->owner_menu = 'group'; $variables = array( 'title' => 'text', 'description' => 'longtext', 'tags' => 'tags', 'access_id' => 'access', 'improves_guid' => array( 'type' => 'url', 'input_view' => 'hidden', 'output_view' => 'proposal', 'default_value' => get_input('improves'), ), ); $crud = crud_register_type('proposal', $variables); #$crud->children_type = 'agenda_point'; $crud->module = 'proposals'; } function proposals_user_can_vote($hook, $type, $return, $params) { if ($params['annotation_name'] == 'votes') { $return = $params['entity']->getContainerEntity()->isMember($params['user']); } return $return; }