applications: fix version creation on generation (#69655)

This commit is contained in:
Lauréline Guérin 2022-11-02 14:50:24 +01:00
parent b48bd6e23b
commit 6fc211c7ca
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
2 changed files with 10 additions and 6 deletions

View File

@ -224,12 +224,10 @@ class GenerateView(FormView):
def form_valid(self, form):
app = self.app
version = (
app.version_set.filter(number=form.cleaned_data['number'])
.order_by('last_update_timestamp')
.last()
)
if not version:
latest_version = app.version_set.order_by('last_update_timestamp').last()
if latest_version and latest_version.number == form.cleaned_data['number']:
version = latest_version
else:
version = Version(application=app)
version.number = form.cleaned_data['number']
version.notes = form.cleaned_data['notes']

View File

@ -305,6 +305,12 @@ def test_create_application(app, admin_user, settings, analyze):
resp = app.get('/applications/manifest/test/generate/')
assert resp.form['number'].value == '2.0' # last one
assert resp.form['notes'].value == 'Foo bar blah. But with an icon.' # last one
resp.form['number'] = '1.0' # old number
resp = resp.form.submit().follow()
new_version = Version.objects.latest('pk')
assert new_version.number == '1.0'
assert new_version.notes == 'Foo bar blah. But with an icon.'
assert new_version.pk != version.pk # new version created
# non editable app
application.editable = False