Fix MatrixService ordering

This commit is contained in:
fnux 2020-03-03 10:51:16 +01:00
commit 9fdf66ed74
7 changed files with 83 additions and 21 deletions

View file

@ -60,6 +60,12 @@ class VMProduct(Product):
return "Virtual machine '{}': {} core(s), {}GB memory".format(
self.name, self.cores, self.ram_in_gb)
@staticmethod
def allowed_recurring_periods():
return list(filter(
lambda pair: pair[0] in [RecurringPeriod.PER_MONTH, RecurringPeriod.PER_HOUR],
RecurringPeriod.choices))
class VMWithOSProduct(VMProduct):
pass

View file

@ -11,14 +11,9 @@ class VMHostSerializer(serializers.HyperlinkedModelSerializer):
class VMProductSerializer(serializers.HyperlinkedModelSerializer):
# TODO: move this to VMProduct.
allowed_recurring_periods=list(filter(
lambda pair: pair[0] in [RecurringPeriod.PER_MONTH, RecurringPeriod.PER_HOUR],
RecurringPeriod.choices))
# Custom field used at creation (= ordering) only.
recurring_period = serializers.ChoiceField(
choices=allowed_recurring_periods)
choices=VMProduct.allowed_recurring_periods())
class Meta:
model = VMProduct
@ -26,6 +21,15 @@ class VMProductSerializer(serializers.HyperlinkedModelSerializer):
'cores', 'ram_in_gb', 'recurring_period']
read_only_fields = ['uuid', 'order', 'owner', 'status']
class ManagedVMProductSerializer(serializers.ModelSerializer):
"""
Managed VM serializer used in ungleich_service app.
"""
class Meta:
model = VMProduct
fields = [ 'cores', 'ram_in_gb']
class VMSnapshotProductSerializer(serializers.ModelSerializer):
class Meta:
model = VMSnapshotProduct