Пример #1
0
def publish(mod_id, mod_name):
    mod = Mod.query.filter(Mod.id == mod_id).first()
    if not mod:
        abort(404)
    game = Game.query.filter(Game.id == mod.game_id).first()
    session['game'] = game.id
    session['gamename'] = game.name
    session['gameshort'] = game.short
    session['gameid'] = game.id
    if not mod or not game:
        ga = Game.query.filter(Game.short == 'kerbal-space-program').order_by(
            desc(Game.id)).first()
        session['game'] = ga.id
        session['gamename'] = ga.name
        session['gameshort'] = ga.short
        session['gameid'] = ga.id
        abort(404)
    else:
        session['game'] = game.id
        session['gamename'] = game.name
        session['gameshort'] = game.short
        session['gameid'] = game.id
    if current_user.id != mod.user_id:
        abort(401)
    if mod.description == default_description:
        return redirect(
            url_for("mods.mod", id=mod.id, mod_name=mod.name,
                    stupid_user=True))
    mod.published = True
    mod.updated = datetime.now()
    send_to_ckan(mod)
    return redirect(url_for("mods.mod", id=mod.id, mod_name=mod.name, ga=game))
Пример #2
0
def publish(mod_id, mod_name):
    mod = Mod.query.filter(Mod.id == mod_id).first()
    if not mod:
        abort(404)
    game = Game.query.filter(Game.id == mod.game_id).first()
    session['game'] = game.id;
    session['gamename'] = game.name;
    session['gameshort'] = game.short;
    session['gameid'] = game.id;
    if not mod or not game:
        ga = Game.query.filter(Game.short == 'kerbal-space-program').order_by(desc(Game.id)).first()
        session['game'] = ga.id;
        session['gamename'] = ga.name;
        session['gameshort'] = ga.short;
        session['gameid'] = ga.id;
        abort(404)
    else:
        session['game'] = game.id;
        session['gamename'] = game.name;
        session['gameshort'] = game.short;
        session['gameid'] = game.id;
    if current_user.id != mod.user_id:
        abort(401)
    if mod.description == default_description:
        return redirect(url_for("mods.mod", id=mod.id, mod_name=mod.name, stupid_user=True))
    mod.published = True
    mod.updated = datetime.now()
    send_to_ckan(mod)
    return redirect(url_for("mods.mod", id=mod.id, mod_name=mod.name))
Пример #3
0
def edit_mod(id, mod_name):
    mod = Mod.query.filter(Mod.id == id).first()
    if not mod:
        abort(404)
    game = Game.query.filter(Game.id == mod.game_id).first()
    if not mod or not game:
        abort(404)
    editable = False
    if current_user.admin:
        editable = True
    if current_user.id == mod.user_id:
        editable = True
    if any([u.accepted and u.user == current_user
            for u in mod.shared_authors]):
        editable = True
    if not editable:
        abort(401)
    if request.method == 'GET':
        return render_template("edit_mod.html",
                               mod=mod,
                               original=mod.user == current_user)
    else:
        short_description = request.form.get('short-description')
        license = request.form.get('license')
        donation_link = request.form.get('donation-link')
        external_link = request.form.get('external-link')
        source_link = request.form.get('source-link')
        description = request.form.get('description')
        ckan = request.form.get('ckan')
        background = request.form.get('background')
        bgOffsetY = request.form.get('bg-offset-y')
        if not license or license == '':
            return render_template("edit_mod.html",
                                   mod=mod,
                                   error="All mods must have a license.")
        if ckan == None:
            ckan = False
        else:
            ckan = (ckan.lower() == "true" or ckan.lower() == "yes"
                    or ckan.lower() == "on")
        mod.short_description = short_description
        mod.license = license
        mod.donation_link = donation_link
        mod.external_link = external_link
        mod.source_link = source_link
        mod.description = description
        if not mod.ckan and ckan:
            mod.ckan = ckan
            if mod.published:
                send_to_ckan(mod)
        if background and background != '':
            mod.background = background
        try:
            mod.bgOffsetY = int(bgOffsetY)
        except:
            pass
        return redirect(
            url_for("mods.mod", id=mod.id, mod_name=mod.name, ga=game))
Пример #4
0
def publish(mod_id, mod_name):
    mod = Mod.query.filter(Mod.id == mod_id).first()
    if not mod:
        abort(404)
    if current_user.id != mod.user_id:
        abort(401)
    if mod.description == default_description:
        return redirect(url_for("mods.mod", id=mod.id, mod_name=mod.name, stupid_user=True))
    mod.published = True
    mod.updated = datetime.now()
    send_to_ckan(mod)
    return redirect(url_for("mods.mod", id=mod.id, mod_name=mod.name))
Пример #5
0
def edit_mod(id, mod_name):
    mod = Mod.query.filter(Mod.id == id).first()
    if not mod:
        abort(404)
    game = Game.query.filter(Game.id == mod.game_id).first()
    if not mod or not game:
        abort(404)
    editable = False
    if current_user.admin:
        editable = True
    if current_user.id == mod.user_id:
        editable = True
    if any([u.accepted and u.user == current_user for u in mod.shared_authors]):
        editable = True
    if not editable:
        abort(401)
    if request.method == 'GET':
        return render_template("edit_mod.html", mod=mod, original=mod.user == current_user)
    else:
        short_description = request.form.get('short-description')
        license = request.form.get('license')
        donation_link = request.form.get('donation-link')
        external_link = request.form.get('external-link')
        source_link = request.form.get('source-link')
        description = request.form.get('description')
        ckan = request.form.get('ckan')
        background = request.form.get('background')
        bgOffsetY = request.form.get('bg-offset-y')
        if not license or license == '':
            return render_template("edit_mod.html", mod=mod, error="All mods must have a license.")
        if ckan == None:
            ckan = False
        else:
            ckan = (ckan.lower() == "true" or ckan.lower() == "yes" or ckan.lower() == "on")
        mod.short_description = short_description
        mod.license = license
        mod.donation_link = donation_link
        mod.external_link = external_link
        mod.source_link = source_link
        mod.description = description
        if not mod.ckan and ckan:
            mod.ckan = ckan
            if mod.published:
                send_to_ckan(mod)
        if background and background != '':
            mod.background = background
        try:
            mod.bgOffsetY = int(bgOffsetY)
        except:
            pass
        return redirect(url_for("mods.mod", id=mod.id, mod_name=mod.name,ga=game))
Пример #6
0
def publish(mod_id, mod_name):
    mod = Mod.query.filter(Mod.id == mod_id).first()
    if not mod:
        abort(404)
    if current_user.id != mod.user_id:
        abort(401)
    if mod.description == default_description:
        return redirect(
            url_for("mods.mod", id=mod.id, mod_name=mod.name,
                    stupid_user=True))
    mod.published = True
    mod.updated = datetime.now()
    send_to_ckan(mod)
    return redirect(url_for("mods.mod", id=mod.id, mod_name=mod.name))