Example #1
0
def edit_title(request, ttype, taction, tid):
    """
    Editar o añadir un Title
    """
    if not model.TitleType.objects.filter(name=ttype):
        return HttpResponseBadRequest()
    form_set = mff(model.TitleVersion)
    if taction == 'add':
        action_name = 'Añadiendo'
        form = form_set(queryset=model.TitleVersion.objects.none())
    elif model.Title.objects.filter(id=tid):
        # SIN TERMINAR
        title = model.Title.objects.get(id=tid)
        titleversion = model.TitleVersion.objects.get()
        form = form_set(queryset=model.Title.objects.none())
    return response('edit_title.html', request,
                    {'form': form,
                     'title': '%s release - %s' % (action_name, DATA['sitename']),
                     })
Example #2
0
def edit_title(request, ttype, taction, tid):
    """
    Editar o añadir un Title
    """
    if not model.TitleType.objects.filter(name=ttype):
        return HttpResponseBadRequest()
    form_set = mff(model.TitleVersion)
    if taction == 'add':
        action_name = 'Añadiendo'
        form = form_set(queryset=model.TitleVersion.objects.none())
    elif model.Title.objects.filter(id=tid):
        # SIN TERMINAR
        title = model.Title.objects.get(id=tid)
        titleversion = model.TitleVersion.objects.get()
        form = form_set(queryset=model.Title.objects.none())
    return response(
        'edit_title.html', request, {
            'form': form,
            'title': '%s release - %s' % (action_name, DATA['sitename']),
        })
Example #3
0
def edit_release(request, ttype, taction, tid):
    """
    Formulario para Editar o añadir una Release.
    Véase las funciones "ajax_add_packages" y 
    "ajax_search_title", las cuales se encuentran
    estrechamente relacionadas (se realizan peticiones
    mediante Ajax).
    """
    form_set = mff(model.Release, form=model.ReleaseForm)
    if request.method == "POST" and taction == 'add':
        f = form_set(request.POST, queryset=model.Release.objects.none())
        # El usuario se pone manualmente en el modo en desarrollo
        f.data['form-0-user'] = '******'
        f.user = model.User.objects.get(id=1)
        files = {}
        pkgs = {}
        chapters = {}
        for key, value in request.POST.items():
            key = key.split('_')
            if key[0] == 'file':
                dct = files
            elif key[0] == 'pkg':
                dct = pkgs
            else:
                continue
            if not int(key[1]) in dct.keys():
                dct[int(key[1])] = {}
            dct[int(key[1])][key[2]] = value
        print(files)
        print(pkgs)
        print(f.errors)
        f.save()

        if request.POST['form-0-download_type'] == 'dd':
            for file in files.values():
                if not file['status'] == 'True': continue
                new_file = model.DirectDownload()
                new_file.url = file['url']
                new_file.filename = file['name']
                new_file.size = filesmanager.get_size(file['size2'])
                new_file.server = model.DirectDownloadServer.objects.get(
                    name=file['server'].title(),
                )
                new_file.online = True
                #new_file.checksum = # Para uso posteriormente
                new_file.part = file['part']
                new_file.save()
                if not file['chapter'] in chapters.keys():
                    chapters[file['chapter']] = []
                chapters[file['chapter']].append(new_file)
            for pkg in pkgs.values():
                new_pkg = model.DirectDownloadPackage()
                new_pkg.name = pkg['name']
                total_size = 0
                for file in chapters[pkg['chapter']]:
                    new_pkg.files.add(file.id)
                    total_size += file.size
                new_pkg.size = total_pkg
                new_pkg.release = f
                
    else:
        if not model.TitleType.objects.filter(name=ttype):
            return HttpResponseBadRequest()
        if taction == 'add':
            action_name = 'Añadiendo'
            form = form_set(queryset=model.Release.objects.none())
        elif model.Release.objects.filter(id=tid):
            # SIN TERMINAR
            title = model.Release.objects.get(id=tid)
            form = form_set(queryset=model.Release.objects.none())
        return response('edit_release.html', request,
                        {'form': form,
                        'title': '%s release - %s' % (action_name, DATA['sitename']),
                        'last_pkg': 0,
                        'arg0': ttype,
                        'arg1': taction,
                        'arg2': tid,
                        })
Example #4
0
def edit_release(request, ttype, taction, tid):
    """
    Formulario para Editar o añadir una Release.
    Véase las funciones "ajax_add_packages" y 
    "ajax_search_title", las cuales se encuentran
    estrechamente relacionadas (se realizan peticiones
    mediante Ajax).
    """
    form_set = mff(model.Release, form=model.ReleaseForm)
    if request.method == "POST" and taction == 'add':
        f = form_set(request.POST, queryset=model.Release.objects.none())
        # El usuario se pone manualmente en el modo en desarrollo
        f.data['form-0-user'] = '******'
        f.user = model.User.objects.get(id=1)
        files = {}
        pkgs = {}
        chapters = {}
        for key, value in request.POST.items():
            key = key.split('_')
            if key[0] == 'file':
                dct = files
            elif key[0] == 'pkg':
                dct = pkgs
            else:
                continue
            if not int(key[1]) in dct.keys():
                dct[int(key[1])] = {}
            dct[int(key[1])][key[2]] = value
        print(files)
        print(pkgs)
        print(f.errors)
        f.save()

        if request.POST['form-0-download_type'] == 'dd':
            for file in files.values():
                if not file['status'] == 'True': continue
                new_file = model.DirectDownload()
                new_file.url = file['url']
                new_file.filename = file['name']
                new_file.size = filesmanager.get_size(file['size2'])
                new_file.server = model.DirectDownloadServer.objects.get(
                    name=file['server'].title(), )
                new_file.online = True
                #new_file.checksum = # Para uso posteriormente
                new_file.part = file['part']
                new_file.save()
                if not file['chapter'] in chapters.keys():
                    chapters[file['chapter']] = []
                chapters[file['chapter']].append(new_file)
            for pkg in pkgs.values():
                new_pkg = model.DirectDownloadPackage()
                new_pkg.name = pkg['name']
                total_size = 0
                for file in chapters[pkg['chapter']]:
                    new_pkg.files.add(file.id)
                    total_size += file.size
                new_pkg.size = total_pkg
                new_pkg.release = f

    else:
        if not model.TitleType.objects.filter(name=ttype):
            return HttpResponseBadRequest()
        if taction == 'add':
            action_name = 'Añadiendo'
            form = form_set(queryset=model.Release.objects.none())
        elif model.Release.objects.filter(id=tid):
            # SIN TERMINAR
            title = model.Release.objects.get(id=tid)
            form = form_set(queryset=model.Release.objects.none())
        return response(
            'edit_release.html', request, {
                'form': form,
                'title': '%s release - %s' % (action_name, DATA['sitename']),
                'last_pkg': 0,
                'arg0': ttype,
                'arg1': taction,
                'arg2': tid,
            })