diff options
author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2013-03-20 16:03:52 +0000 |
---|---|---|
committer | Paul Eggleton <paul.eggleton@linux.intel.com> | 2013-03-20 16:21:41 +0000 |
commit | 473c47a2227f971eea026179d87b0d995006744e (patch) | |
tree | 628650ef6cc56e58b08641181c108e6b2a2d43d7 /layerindex | |
parent | af920d10c93601949fb1a9ae27855018e7a31bef (diff) | |
download | openembedded-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.py | 17 |
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']: |