* feat: get tool versions without VersionInfo model * chore: remove update_external_command_info call * feat: get tool version without VersionInfo * chore: Remove VersionInfo model * chore: Migration to remove VersionInfo * fix: handle errors better; ignore stderr * fix: type annotation
36 lines
1.4 KiB
Python
36 lines
1.4 KiB
Python
# Copyright The IETF Trust 2015-2020, All Rights Reserved
|
|
|
|
import itertools
|
|
|
|
from django.db import models
|
|
|
|
class DumpInfo(models.Model):
|
|
date = models.DateTimeField()
|
|
host = models.CharField(max_length=128)
|
|
tz = models.CharField(max_length=32, default='UTC')
|
|
|
|
class ForeignKey(models.ForeignKey):
|
|
"A local ForeignKey proxy which provides the on_delete value required under Django 2.0."
|
|
def __init__(self, to, on_delete=models.CASCADE, **kwargs):
|
|
return super(ForeignKey, self).__init__(to, on_delete=on_delete, **kwargs)
|
|
|
|
class OneToOneField(models.OneToOneField):
|
|
"A local OneToOneField proxy which provides the on_delete value required under Django 2.0."
|
|
def __init__(self, to, on_delete=models.CASCADE, **kwargs):
|
|
return super(OneToOneField, self).__init__(to, on_delete=on_delete, **kwargs)
|
|
|
|
def object_to_dict(instance):
|
|
"""
|
|
Similar to django.forms.models.model_to_dict() but more comprehensive.
|
|
|
|
Taken from https://stackoverflow.com/questions/21925671/#answer-29088221
|
|
with a minor tweak: .id --> .pk
|
|
"""
|
|
opts = instance._meta
|
|
data = {}
|
|
for f in itertools.chain(opts.concrete_fields, opts.private_fields):
|
|
data[f.name] = f.value_from_object(instance)
|
|
for f in opts.many_to_many:
|
|
data[f.name] = [i.pk for i in f.value_from_object(instance)]
|
|
return data
|