def modifyDownload(request, num): existing = False App = apps.get_model('apps', 'App') Download = apps.get_model('apps', 'Download') Release = apps.get_model('apps', 'Release') try: app = App.objects.get(id=num) except: context = { 'message': "Requested App does not Exist!", 'go_back_to_url': "/app/" + app.name, 'go_back_to_title': "App Page", } return render(request, 'message.html', context) if Download.objects.filter(app=app).exists(): existing = True edit_download = Download.objects.get(app=app) if request.user.is_staff or request.user in app.editors.all(): if request.method == 'GET': if existing: form = DownloadForm(instance=edit_download, current_app=app) else: form = DownloadForm(current_app=app) elif request.method == 'POST': if existing: form = DownloadForm(request.POST, instance=edit_download, current_app=app) else: form = DownloadForm(request.POST, current_app=app) if form.is_valid(): if existing: instance = form.save() release = None releases = Release.objects.filter(app=instance.app) if releases: release = releases.latest('date') choice = instance.download_option link = "https://ns-apps.washington.edu/" + instance.app.name + "/#cy-app-instructions-tab" if choice == 'I': instance.download_link = link elif choice == 'D': instance.download_link = release.url if not release: instance.download_link = link elif choice == 'U': instance.download_link = instance.external_url if not instance.external_url: instance.download_link = link if not instance.default_release: instance.default_release = release print instance.download_link instance.save() else: download = form.save(commit=False) download.app = app download.save() context = { 'message': "Download Details modified Successfully!", 'go_back_to_url': "/app/" + app.name, 'go_back_to_title': "App Page", } return render(request, 'message.html', context) else: context = { 'message': "You are not authorized to view this page!", 'go_back_to_url': "/app/" + app.name, 'go_back_to_title': "App Page", } return render(request, 'message.html', context) return render(request, 'download.html', {'form': form})
def submit(request): dform = DownloadForm(request.POST or None) if dform.is_valid(): dform.save() return redirect(reverse('free_data')) return render(request, 'download.html', context={'dform': dform})