- capitalize type attribute for datacite standard

- DatasetExtension filter persons
This commit is contained in:
Arno Kaimbacher 2019-09-16 13:47:30 +02:00
parent 84deb7c457
commit 69f6f250b9
9 changed files with 41 additions and 29 deletions

View File

@ -62,11 +62,11 @@ class IndexController extends Controller
$relationTypes = ["IsCitedBy", "Cites", "IsSupplementTo", "IsSupplementedBy", "IsContinuedBy", "Continues", "HasMetadata", "IsMetadataFor","IsNewVersionOf", "IsPreviousVersionOf", "IsPartOf", "HasPart", "IsReferencedBy", "References", "IsDocumentedBy", "Documents", "IsCompiledBy", "Compiles", "IsVariantFormOf", "IsOriginalFormOf", "IsIdenticalTo", "IsReviewedBy", "Reviews", "IsDerivedFrom", "IsSourceOf"]; $relationTypes = ["IsCitedBy", "Cites", "IsSupplementTo", "IsSupplementedBy", "IsContinuedBy", "Continues", "HasMetadata", "IsMetadataFor","IsNewVersionOf", "IsPreviousVersionOf", "IsPartOf", "HasPart", "IsReferencedBy", "References", "IsDocumentedBy", "Documents", "IsCompiledBy", "Compiles", "IsVariantFormOf", "IsOriginalFormOf", "IsIdenticalTo", "IsReviewedBy", "Reviews", "IsDerivedFrom", "IsSourceOf"];
$relationTypes = array_combine($relationTypes, $relationTypes); $relationTypes = array_combine($relationTypes, $relationTypes);
$titleTypes = ['sub' => 'sub', 'alternative' => 'alternative', 'translated' => 'translated', 'other' => 'other']; $titleTypes = ['sub' => 'Sub', 'alternative' => 'Alternative', 'translated' => 'Translated', 'other' => 'Other'];
$keywordTypes = ['uncontrolled' => 'uncontrolled']; $keywordTypes = ['uncontrolled' => 'uncontrolled'];
$descriptionTypes = ['methods' => 'methods', 'series_information' => 'series_information', 'technical_info' => 'technical_info', 'translated' => 'translated', 'other' => 'other']; $descriptionTypes = ['methods' => 'Methods', 'series_information' => 'Series_information', 'technical_info' => 'Technical_info', 'translated' => 'Translated', 'other' => 'Other'];
$page = Page::query()->where('page_slug', 'terms-and-conditions')->firstOrFail(); $page = Page::query()->where('page_slug', 'terms-and-conditions')->firstOrFail();

View File

@ -268,11 +268,13 @@ trait DatasetExtension
//$licenses = $select->with('datasets')->get(); //$licenses = $select->with('datasets')->get();
//$rows = $supplier->datasets; //$rows = $supplier->datasets;
$rows = $this->{$relation}; $rows = $this->{$relation};
//if (isset($this->externalFields[$fieldname]['pivot'])) if (isset($this->externalFields[$fieldname]['pivot'])) {
//{ $pivArray = $this->externalFields[$fieldname]['pivot'];
// $pivArray = $this->externalFields[$fieldname]['pivot']; $pivotValue = $pivArray['role'];
// $rows = $rows->wherePivot('role', $pivArray['role']); //$through = $this->externalFields[$fieldname]['through'];
//} $rows = $this->{$relation}()->wherePivot('role', $pivotValue)->get();
//$rows = $this->belongsToMany($modelclass, $through, 'document_id')->wherePivot('role', $pivotValue)->get();
}
} else { } else {
$rows = $select->whereHas('dataset', function ($q) use ($datasetId) { $rows = $select->whereHas('dataset', function ($q) use ($datasetId) {
$q->where('id', $datasetId); $q->where('id', $datasetId);
@ -287,10 +289,15 @@ trait DatasetExtension
$objArray = []; $objArray = [];
foreach ($attributes as $property_name) { foreach ($attributes as $property_name) {
$fieldName = self::convertColumnToFieldname($property_name); $fieldName = self::convertColumnToFieldname($property_name);
$fieldval = "";
if ($fieldName == "Type") {
$fieldval = ucfirst($row->{$property_name});
} else {
// $field =new Field($fieldName); // $field =new Field($fieldName);
$fieldval = $row->{$property_name}; $fieldval = $row->{$property_name};
// $field->setValue($fieldval); // $field->setValue($fieldval);
// $this->_mapField($field, $dom, $rootNode); // $this->_mapField($field, $dom, $rootNode);
}
$objArray[$fieldName] = $fieldval; $objArray[$fieldName] = $fieldval;
} }
$result[] = $objArray; $result[] = $objArray;

View File

@ -24,7 +24,7 @@ class Person extends Model
public function documents() public function documents()
{ {
return $this->belongsToMany(Dataset::class, 'link_documents_persons', 'person_id', 'document_id') return $this->belongsToMany(Dataset::class, 'link_documents_persons', 'person_id', 'document_id')
->withPivot('role'); ->withPivot('role', 'sort_order', 'allow_email_contact');
} }
// public function scopeNotLimit($query) // public function scopeNotLimit($query)

24
composer.lock generated
View File

@ -3958,16 +3958,16 @@
}, },
{ {
"name": "phpunit/phpunit", "name": "phpunit/phpunit",
"version": "7.5.15", "version": "7.5.16",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git", "url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "d79c053d972856b8b941bb233e39dc521a5093f0" "reference": "316afa6888d2562e04aeb67ea7f2017a0eb41661"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d79c053d972856b8b941bb233e39dc521a5093f0", "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/316afa6888d2562e04aeb67ea7f2017a0eb41661",
"reference": "d79c053d972856b8b941bb233e39dc521a5093f0", "reference": "316afa6888d2562e04aeb67ea7f2017a0eb41661",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4027,8 +4027,8 @@
"authors": [ "authors": [
{ {
"name": "Sebastian Bergmann", "name": "Sebastian Bergmann",
"role": "lead", "email": "sebastian@phpunit.de",
"email": "sebastian@phpunit.de" "role": "lead"
} }
], ],
"description": "The PHP Unit Testing framework.", "description": "The PHP Unit Testing framework.",
@ -4038,7 +4038,7 @@
"testing", "testing",
"xunit" "xunit"
], ],
"time": "2019-08-21T07:05:16+00:00" "time": "2019-09-14T09:08:39+00:00"
}, },
{ {
"name": "sebastian/code-unit-reverse-lookup", "name": "sebastian/code-unit-reverse-lookup",
@ -4260,16 +4260,16 @@
}, },
{ {
"name": "sebastian/exporter", "name": "sebastian/exporter",
"version": "3.1.1", "version": "3.1.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git", "url": "https://github.com/sebastianbergmann/exporter.git",
"reference": "06a9a5947f47b3029d76118eb5c22802e5869687" "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/06a9a5947f47b3029d76118eb5c22802e5869687", "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/68609e1261d215ea5b21b7987539cbfbe156ec3e",
"reference": "06a9a5947f47b3029d76118eb5c22802e5869687", "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4323,7 +4323,7 @@
"export", "export",
"exporter" "exporter"
], ],
"time": "2019-08-11T12:43:14+00:00" "time": "2019-09-14T09:02:43+00:00"
}, },
{ {
"name": "sebastian/global-state", "name": "sebastian/global-state",

View File

@ -27,7 +27,7 @@ class CreatePersonsTable extends Migration
$table->string('identifier_misc', 50)->nullable(); $table->string('identifier_misc', 50)->nullable();
$table->boolean('status')->nullable()->default(1); $table->boolean('status')->nullable()->default(1);
$table->integer('registered_at')->nullable(); $table->integer('registered_at')->nullable();
$table->string('name_type', 50)->nullable(); $table->enum('name_type', ['author', 'contributor', 'other'])->nullable();
}); });
Schema::create('link_documents_persons', function (Blueprint $table) { Schema::create('link_documents_persons', function (Blueprint $table) {

View File

@ -20,7 +20,7 @@ class CreateDatasetTitlesTable extends Migration
$table->foreign('document_id')->references('id')->on('documents') $table->foreign('document_id')->references('id')->on('documents')
->onUpdate('cascade')->onDelete('cascade'); ->onUpdate('cascade')->onDelete('cascade');
$table->enum('type', ['main' => 'main', 'sub' => 'sub', 'alternative' => 'alternative', 'translated' => 'translated', 'other' => 'other']); $table->enum('type', ['main' => 'Main', 'sub' => 'sub', 'Alternative' => 'alternative', 'translated' => 'Translated', 'other' => 'Other']);
$table->string('value', 255); $table->string('value', 255);
$table->string('language', 3); $table->string('language', 3);
}); });

View File

@ -22,7 +22,7 @@ class CreateDatasetAbstractsTable extends Migration
$table->enum( $table->enum(
'type', 'type',
['abstract' => 'abstract', 'methods' => 'methods', 'series_information' => 'series_information', 'technical_info' => 'technical_info', 'translated' => 'translated', 'other' => 'other'] ['abstract' => 'Abstract', 'methods' => 'Methods', 'series_information' => 'Series_information', 'technical_info' => 'Technical_info', 'translated' => 'Translated', 'other' => 'Other']
); );
$table->string('value', 255); $table->string('value', 255);
$table->string('language', 3); $table->string('language', 3);

View File

@ -141,7 +141,7 @@
<xsl:value-of select="@Language" /> <xsl:value-of select="@Language" />
</xsl:attribute> </xsl:attribute>
</xsl:if> </xsl:if>
<xsl:if test="@Type != '' and @Type != 'main'"> <xsl:if test="@Type != '' and @Type != 'Main'">
<xsl:attribute name="titleType"> <xsl:attribute name="titleType">
<xsl:value-of select="@Type" /> <xsl:value-of select="@Type" />
</xsl:attribute> </xsl:attribute>
@ -153,6 +153,11 @@
<xsl:template match="PersonContributor" mode="oai_datacite"> <xsl:template match="PersonContributor" mode="oai_datacite">
<contributor> <contributor>
<contributorName> <contributorName>
<xsl:if test="@NameType != ''">
<xsl:attribute name="nameType">
<xsl:value-of select="@NameType" />
</xsl:attribute>
</xsl:if>
<xsl:value-of select="@LastName" /> <xsl:value-of select="@LastName" />
</contributorName> </contributorName>
</contributor> </contributor>

View File

@ -40,7 +40,7 @@
<div class="pure-control-group"> <div class="pure-control-group">
{!! Form::label('name_type', 'Name Type') !!} {!! Form::label('name_type', 'Name Type') !!}
<div class="select form-control"> <div class="select form-control">
{!! Form::select('name_type', ['personal' => 'personal', 'organizational' => 'organizational'], null, ['id' => 'name_type', 'placeholder' => '-- no name type --']) !!} {!! Form::select('name_type', ['personal' => 'Personal', 'organizational' => 'Organizational'], null, ['id' => 'name_type', 'placeholder' => '-- no name type --']) !!}
</div> </div>
<small id="nameTypeHelp" class="pure-form-message-inline">name type is optional</small> <small id="nameTypeHelp" class="pure-form-message-inline">name type is optional</small>
</div> </div>