aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--layerindex/models.py14
-rw-r--r--rrs/admin.py30
2 files changed, 44 insertions, 0 deletions
diff --git a/layerindex/models.py b/layerindex/models.py
index e9751f3b6a..ff164baaea 100644
--- a/layerindex/models.py
+++ b/layerindex/models.py
@@ -47,6 +47,20 @@ class PythonEnvironment(models.Model):
cmd = self.python_command
return cmd
+ @staticmethod
+ def get_default_python2_environment():
+ for env in PythonEnvironment.objects.all().order_by('id'):
+ if env.name.replace(' ', '').lower().startswith(('python2', 'py2')):
+ return env
+ return None
+
+ @staticmethod
+ def get_default_python3_environment():
+ for env in PythonEnvironment.objects.all().order_by('id'):
+ if env.name.replace(' ', '').lower().startswith(('python3', 'py3')):
+ return env
+ return None
+
def __str__(self):
return self.name
diff --git a/rrs/admin.py b/rrs/admin.py
index d00785f032..07e09f4f4a 100644
--- a/rrs/admin.py
+++ b/rrs/admin.py
@@ -4,16 +4,46 @@
#
# Licensed under the MIT license, see COPYING.MIT for details
+from django.utils.functional import curry
+
from django.contrib import admin
from django.contrib.admin import DateFieldListFilter
+from django.forms.models import BaseInlineFormSet
from rrs.models import Release, Milestone, Maintainer, RecipeMaintainerHistory, \
RecipeMaintainer, RecipeDistro, RecipeUpgrade, RecipeUpstream, \
RecipeUpstreamHistory, MaintenancePlan, MaintenancePlanLayerBranch, \
RecipeMaintenanceLink
+class MaintenancePlanLayerBranchFormSet(BaseInlineFormSet):
+ def __init__(self, *args, **kwargs):
+ from layerindex.models import PythonEnvironment
+ initialfields = {}
+ py2env = PythonEnvironment.get_default_python2_environment()
+ if py2env:
+ initialfields['python2_environment'] = py2env.id
+ py3env = PythonEnvironment.get_default_python3_environment()
+ if py3env:
+ initialfields['python3_environment'] = py3env.id
+ if initialfields:
+ kwargs['initial'] = [initialfields]
+ super(MaintenancePlanLayerBranchFormSet, self).__init__(*args, **kwargs)
+
+ @property
+ def empty_form(self):
+ from layerindex.models import PythonEnvironment
+ form = super(MaintenancePlanLayerBranchFormSet, self).empty_form
+ py2env = PythonEnvironment.get_default_python2_environment()
+ if py2env:
+ form.fields['python2_environment'].initial = py2env
+ py3env = PythonEnvironment.get_default_python3_environment()
+ if py3env:
+ form.fields['python3_environment'].initial = py3env
+ return form
+
class MaintenancePlanLayerBranchInline(admin.StackedInline):
model = MaintenancePlanLayerBranch
+ formset = MaintenancePlanLayerBranchFormSet
readonly_fields = ['upgrade_date', 'upgrade_rev']
min_num = 1
extra = 0