[yocto] [layerindex-web][PATCH 1/4] admin: add an action to duplicate a branch
Paul Eggleton
paul.eggleton at linux.intel.com
Tue Nov 15 19:18:31 PST 2016
Add an action to duplicate a Branch object, along with all of the
LayerBranches (and LayerMaintainers and LayerDependencies) underneath
it.
Signed-off-by: Paul Eggleton <paul.eggleton at linux.intel.com>
---
layerindex/admin.py | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/layerindex/admin.py b/layerindex/admin.py
index 7339ce1..f50aae4 100644
--- a/layerindex/admin.py
+++ b/layerindex/admin.py
@@ -17,6 +17,32 @@ class LayerDependencyInline(admin.StackedInline):
class BranchAdmin(CompareVersionAdmin):
model = Branch
+ actions = ['duplicate']
+
+ def duplicate(self, request, queryset):
+ for branch in queryset:
+ layerbranches = branch.layerbranch_set.all()
+ branch.pk = None
+ branch.name += '-copy'
+ branch.save()
+ for layerbranch in layerbranches:
+ layerbranch_maintainers = layerbranch.layermaintainer_set.all()
+ layerbranch_dependencies = layerbranch.dependencies_set.all()
+ layerbranch.pk = None
+ layerbranch.branch = branch
+ layerbranch.vcs_last_fetch = None
+ layerbranch.vcs_last_rev = ''
+ layerbranch.vcs_last_commit = None
+ layerbranch.save()
+ for layermaintainer in layerbranch_maintainers:
+ layermaintainer.pk = None
+ layermaintainer.layerbranch = layerbranch
+ layermaintainer.save()
+ for layerdependency in layerbranch_dependencies:
+ layerdependency.pk = None
+ layerdependency.layerbranch = layerbranch
+ layerdependency.save()
+ duplicate.short_description = "Duplicate selected Branches"
class LayerItemAdmin(CompareVersionAdmin):
list_filter = ['status', 'layer_type']
--
2.5.5
More information about the yocto
mailing list