Skip to content
Snippets Groups Projects
Commit ff9d739d authored by Bastien Abadie's avatar Bastien Abadie
Browse files

Merge branch 'metadata-support-wv' into 'master'

Add worker_version attribute on Metadata

Closes #500

See merge request !1154
parents e9951ab5 2febfc24
No related branches found
No related tags found
1 merge request!1154Add worker_version attribute on Metadata
# Generated by Django 3.1.4 on 2020-12-30 15:31
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('dataimport', '0025_dataimport_name'),
('documents', '0025_drop_datasource'),
]
operations = [
migrations.AddField(
model_name='metadata',
name='worker_version',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='metadatas', to='dataimport.workerversion'),
),
]
......@@ -522,6 +522,13 @@ class MetaData(InterpretedDateMixin, models.Model):
revision = models.ForeignKey('dataimport.Revision', on_delete=models.SET_NULL, blank=True, null=True)
index = models.PositiveIntegerField(default=0)
entity = models.ForeignKey(Entity, null=True, blank=True, related_name='metadatas', on_delete=models.SET_NULL)
worker_version = models.ForeignKey(
'dataimport.WorkerVersion',
on_delete=models.CASCADE,
related_name='metadatas',
null=True,
blank=True,
)
class Meta:
ordering = ('element', 'name', 'index')
......
......@@ -49,10 +49,11 @@ class MetaDataUpdateSerializer(MetaDataLightSerializer):
Allow editing MetaData
"""
entity = serializers.PrimaryKeyRelatedField(queryset=Entity.objects.none(), required=False, allow_null=True)
worker_version = serializers.PrimaryKeyRelatedField(queryset=WorkerVersion.objects.all(), required=False, allow_null=True, write_only=True)
class Meta:
model = MetaData
fields = MetaDataLightSerializer.Meta.fields + ('entity', )
fields = MetaDataLightSerializer.Meta.fields + ('entity', 'worker_version', )
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
......
......@@ -117,6 +117,17 @@ class TestMetaData(FixtureAPITestCase):
md = self.vol.metadatas.get(type=MetaType.Location, name='location')
self.assertEqual(md.value, 'Texas')
def test_create_metadata_worker_version(self):
self.client.force_login(self.user)
response = self.client.post(
reverse('api:element-metadata', kwargs={'pk': str(self.vol.id)}),
data={'type': 'location', 'name': 'location', 'value': 'Texas', 'worker_version': str(self.worker_version.id)}
)
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
md = self.vol.metadatas.get(type=MetaType.Location, name='location')
self.assertEqual(md.value, 'Texas')
self.assertEqual(md.worker_version, self.worker_version)
def test_create_metadata_date(self):
self.client.force_login(self.user)
response = self.client.post(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment