[Feature] Legacy Package Import (#106)

Fixes #105

Co-authored-by: Tim Lorsbach <tim@lorsba.ch>
Reviewed-on: enviPath/enviPy#106
This commit is contained in:
2025-09-11 01:18:04 +12:00
parent 31783306e2
commit 62e6448448
6 changed files with 100 additions and 34 deletions

View File

@ -280,10 +280,24 @@ def packages(request):
return render(request, 'collections/objects_list.html', context)
elif request.method == 'POST':
hidden = request.POST.get('hidden', None)
if hidden is not None:
pass
if hidden := request.POST.get('hidden', None):
if hidden == 'import-legacy-package-json':
f = request.FILES['file']
try:
file_data = f.read().decode("utf-8")
data = json.loads(file_data)
pack = PackageManager.import_package(data, current_user)
return redirect(pack.url)
except UnicodeDecodeError:
return error(request, 'Invalid encoding.', f'Invalid encoding, must be UTF-8')
else:
return HttpResponseBadRequest()
else:
package_name = request.POST.get('package-name')
package_description = request.POST.get('package-description', s.DEFAULT_VALUES['description'])
@ -784,6 +798,7 @@ def package(request, package_uuid):
current_package = PackageManager.get_package_by_id(current_user, package_uuid)
if request.method == 'GET':
context = get_base_context(request)
context['title'] = f'enviPath - {current_package.name}'