示例#1
0
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})
示例#2
0
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})