small fixes handling auto draft taxonomies
This commit is contained in:
parent
d7aa5d663c
commit
3999690358
|
@ -1,4 +1,5 @@
|
||||||
|
|
||||||
* everything auto draft
|
* everything auto draft
|
||||||
* post_meta of deleted fields
|
* post_meta of deleted fields
|
||||||
* post_meta of deleted instaces of a multiple compound Field. post_meta of a field that is child of a compound field, but which the ID does not appear in any array of a compound field meta_value
|
* post_meta of deleted instaces of a multiple compound Field. post_meta of a field that is child of a compound field, but which the ID does not appear in any array of a compound field meta_value
|
||||||
|
* orphan terms (with taxonomy that does not exist)
|
|
@ -209,7 +209,7 @@ class Term extends Entity {
|
||||||
$name_match = null;
|
$name_match = null;
|
||||||
if ( $name_matches ) {
|
if ( $name_matches ) {
|
||||||
foreach ( $name_matches as $_match ) {
|
foreach ( $name_matches as $_match ) {
|
||||||
if ( strtolower( $name ) === strtolower( $_match->name ) ) {
|
if ( is_object($_match) && isset($_match) && strtolower( $name ) === strtolower( $_match->name ) ) {
|
||||||
$name_match = $_match;
|
$name_match = $_match;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -146,7 +146,7 @@ class Items extends Repository {
|
||||||
$Tainacan_Taxonomies = \Tainacan\Repositories\Taxonomies::getInstance();
|
$Tainacan_Taxonomies = \Tainacan\Repositories\Taxonomies::getInstance();
|
||||||
|
|
||||||
$collections = $Tainacan_Collections->fetch( [], 'OBJECT' );
|
$collections = $Tainacan_Collections->fetch( [], 'OBJECT' );
|
||||||
$taxonomies = $Tainacan_Taxonomies->fetch( [], 'OBJECT' );
|
$taxonomies = $Tainacan_Taxonomies->fetch( ['status' => ['auto-draft', 'draft', 'publish', 'private']], 'OBJECT' );
|
||||||
|
|
||||||
if ( ! is_array( $collections ) ) {
|
if ( ! is_array( $collections ) ) {
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -139,31 +139,6 @@ class Taxonomies extends Repository {
|
||||||
return $new_taxonomy;
|
return $new_taxonomy;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function tainacan_taxonomy( $taxonomy_name ){
|
|
||||||
$labels = array(
|
|
||||||
'name' => __( 'Taxonomies', 'textdomain' ),
|
|
||||||
'singular_name' => __( 'Taxonomy','textdomain' ),
|
|
||||||
'search_items' => __( 'Search taxonomies', 'textdomain' ),
|
|
||||||
'all_items' => __( 'All taxonomies', 'textdomain' ),
|
|
||||||
'parent_item' => __( 'Parent taxonomy', 'textdomain' ),
|
|
||||||
'parent_item_colon' => __( 'Parent taxonomy:', 'textdomain' ),
|
|
||||||
'edit_item' => __( 'Edit taxonomy', 'textdomain' ),
|
|
||||||
'update_item' => __( 'Update taxonomy', 'textdomain' ),
|
|
||||||
'add_new_item' => __( 'Add New taxonomy', 'textdomain' ),
|
|
||||||
'new_item_name' => __( 'New Genre taxonomy', 'textdomain' ),
|
|
||||||
'menu_name' => __( 'Genre', 'textdomain' ),
|
|
||||||
);
|
|
||||||
|
|
||||||
$args = array(
|
|
||||||
'hierarchical' => true,
|
|
||||||
'labels' => $labels,
|
|
||||||
'show_ui' => tnc_enable_dev_wp_interface(),
|
|
||||||
'show_admin_column' => tnc_enable_dev_wp_interface(),
|
|
||||||
);
|
|
||||||
|
|
||||||
register_taxonomy( $taxonomy_name, array( ), $args );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* fetch taxonomies based on ID or WP_Query args
|
* fetch taxonomies based on ID or WP_Query args
|
||||||
*
|
*
|
||||||
|
|
|
@ -179,6 +179,41 @@ class TAINACAN_REST_Terms extends TAINACAN_UnitApiTestCase {
|
||||||
|
|
||||||
$this->assertEquals('Trap', $data['name']);
|
$this->assertEquals('Trap', $data['name']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function test_terms_of_draft_taxonomy() {
|
||||||
|
|
||||||
|
$taxonomy = $this->tainacan_entity_factory->create_entity(
|
||||||
|
'taxonomy',
|
||||||
|
array(
|
||||||
|
'name' => 'genero',
|
||||||
|
'description' => 'tipos de musica',
|
||||||
|
'allow_insert' => 'yes',
|
||||||
|
'status' => 'auto-draft'
|
||||||
|
),
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
|
$Tainacan_Taxonomies = \Tainacan\Repositories\Taxonomies::getInstance();
|
||||||
|
$Tainacan_Terms = \Tainacan\Repositories\Terms::getInstance();
|
||||||
|
|
||||||
|
$new_attributes = [
|
||||||
|
'hideempty' => false,
|
||||||
|
];
|
||||||
|
$request = new \WP_REST_Request(
|
||||||
|
'GET', $this->namespace . '/taxonomy/' . $taxonomy->get_id() . '/terms'
|
||||||
|
);
|
||||||
|
|
||||||
|
$request->set_query_params($new_attributes);
|
||||||
|
|
||||||
|
$response = $this->server->dispatch($request);
|
||||||
|
|
||||||
|
$data = $response->get_data();
|
||||||
|
|
||||||
|
$this->assertEquals(0, sizeof($data), 'new auto draft taxonomy should return 0 terms');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
|
@ -69,4 +69,41 @@ class Taxonomies extends TAINACAN_UnitTestCase {
|
||||||
$this->assertEquals( $test->get_name(), 'Rock' );
|
$this->assertEquals( $test->get_name(), 'Rock' );
|
||||||
$this->assertEquals( $test->get_user(), 56 );
|
$this->assertEquals( $test->get_user(), 56 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function test_terms_of_draft_taxonomy() {
|
||||||
|
|
||||||
|
$taxonomy = $this->tainacan_entity_factory->create_entity(
|
||||||
|
'taxonomy',
|
||||||
|
array(
|
||||||
|
'name' => 'genero',
|
||||||
|
'description' => 'tipos de musica',
|
||||||
|
'allow_insert' => 'yes',
|
||||||
|
'status' => 'publish'
|
||||||
|
),
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
|
$Tainacan_Taxonomies = \Tainacan\Repositories\Taxonomies::getInstance();
|
||||||
|
$Tainacan_Terms = \Tainacan\Repositories\Terms::getInstance();
|
||||||
|
|
||||||
|
$terms = $Tainacan_Terms->fetch(['hide_empty' => false], $taxonomy->get_id());
|
||||||
|
|
||||||
|
$this->assertEquals(0, sizeof($terms), 'new auto draft taxonomy should return 0 terms');
|
||||||
|
|
||||||
|
$term = $this->tainacan_entity_factory->create_entity(
|
||||||
|
'term',
|
||||||
|
array(
|
||||||
|
'taxonomy' => $taxonomy->get_db_identifier(),
|
||||||
|
'name' => 'Rock',
|
||||||
|
),
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$terms = $Tainacan_Terms->fetch(['hide_empty' => false], $taxonomy->get_id());
|
||||||
|
|
||||||
|
$this->assertEquals(1, sizeof($terms), 'you should be able to create a term even if the taxonomy is still auto-draft');
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue