aboutsummaryrefslogtreecommitdiffstats
path: root/layerindex
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2013-03-20 16:03:52 +0000
committerPaul Eggleton <paul.eggleton@linux.intel.com>2013-03-20 16:21:41 +0000
commit473c47a2227f971eea026179d87b0d995006744e (patch)
tree628650ef6cc56e58b08641181c108e6b2a2d43d7 /layerindex
parentaf920d10c93601949fb1a9ae27855018e7a31bef (diff)
downloadopenembedded-core-contrib-473c47a2227f971eea026179d87b0d995006744e.tar.gz
Ensure entire layer gets refreshed on next update if repo fields change
If the user edits the layer and changes the repository URL, subdirectory, or dependencies, ensure that the entire layer gets refreshed the next time the update script runs by clearing out the last fetched revision field. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Diffstat (limited to 'layerindex')
-rw-r--r--layerindex/views.py17
1 files changed, 16 insertions, 1 deletions
diff --git a/layerindex/views.py b/layerindex/views.py
index f529084a60..9e613176fd 100644
--- a/layerindex/views.py
+++ b/layerindex/views.py
@@ -93,27 +93,42 @@ def edit_layer_view(request, template_name, slug=None):
deplistlayers = LayerItem.objects.all().order_by('name')
if request.method == 'POST':
+ last_vcs_url = layeritem.vcs_url
form = EditLayerForm(request.user, layerbranch, request.POST, instance=layeritem)
maintainerformset = LayerMaintainerFormSet(request.POST, instance=layerbranch)
if form.is_valid() and maintainerformset.is_valid():
with transaction.commit_on_success():
+ reset_last_rev = False
form.save()
layerbranch.layer = layeritem
- layerbranch.vcs_subdir = form.cleaned_data['vcs_subdir']
+ new_subdir = form.cleaned_data['vcs_subdir']
+ if layerbranch.vcs_subdir != new_subdir:
+ layerbranch.vcs_subdir = new_subdir
+ reset_last_rev = True
layerbranch.save()
maintainerformset.save()
if slug:
new_deps = form.cleaned_data['deps']
existing_deps = [deprec.dependency for deprec in layerbranch.dependencies_set.all()]
+ reset_last_rev = False
for dep in new_deps:
if dep not in existing_deps:
deprec = LayerDependency()
deprec.layerbranch = layerbranch
deprec.dependency = dep
deprec.save()
+ reset_last_rev = True
for dep in existing_deps:
if dep not in new_deps:
layerbranch.dependencies_set.filter(dependency=dep).delete()
+ reset_last_rev = True
+
+ if layeritem.vcs_url != last_vcs_url:
+ reset_last_rev = True
+
+ if reset_last_rev:
+ layerbranch.vcs_last_rev = ''
+ layerbranch.save()
else:
# Save dependencies
for dep in form.cleaned_data['deps']: