示例#1
0
def details(id):
    current_list = List.query.get(id)
    if not current_list:
        msg = "List '%s' not found" % id
        logf.AddLog(
            Log(g.current_brand.id,
                g.current_tool.id,
                g.user.id,
                request.path,
                op='Details',
                e_resp="Error",
                e_resp_msg=msg))
        flash(msg, 'error')
        return redirect("/lists")

    logf.AddLog(
        Log(g.current_brand.id,
            g.current_tool.id,
            g.user.id,
            request.path,
            op='Properties',
            e_resp="OK",
            e_resp_msg=""))
    return render_template('lists/lists.details.html',
                           title='%s Details' % current_list.name,
                           current_list=current_list,
                           country_list=forms.create_country_dict())
def replicate_campaign(id):
    campaign = Campaign.query.filter(
        and_(Campaign.brand_id == g.current_brand.id,
             Campaign.id == id)).first()
    if not campaign:
        msg = 'Campaign not found'
        flash(msg, 'error')
        logf.AddLog(
            Log(g.current_brand.id,
                g.current_tool.id,
                g.user.id,
                request.path,
                op='Schedule',
                e_resp="Error",
                e_resp_msg=msg))
        return redirect(request.referrer)

    status, response = camp.replicate_campaign(campaign, g.user)
    if not status:
        msg = response
        flash(msg, 'error')
        logf.AddLog(
            Log(g.current_brand.id,
                g.current_tool.id,
                g.user.id,
                request.path,
                op='Schedule',
                e_resp="Error",
                e_resp_msg=msg))
        return redirect(request.referrer)

    flash('campaign has been replicated and new campaign has been saved')
    return redirect('/campaigns')
def new_template_category():
    if request.method == "GET":
        return _render_properties_form({}, "template_categories",
                                       "New Template Category", "new")
    else:
        if 'template_categories_name' not in request.form:
            msg = 'Missing Field "Name"'
            logf.AddLog(
                Log(g.current_brand.id,
                    g.current_tool.id,
                    g.user.id,
                    request.path,
                    op='Create',
                    e_resp="Error",
                    e_resp_msg=msg))
            flash(msg, 'error')
            return _render_properties_form(request.form, "template_categories",
                                           "New Template Category", "new")
        if tmpl.template_category_exists(
                g.current_brand.id, request.form['template_categories_name']):
            msg = 'Category with name "%s" already exists' % request.form[
                'template_categories_name']
            logf.AddLog(
                Log(g.current_brand.id,
                    g.current_tool.id,
                    g.user.id,
                    request.path,
                    op='Create',
                    e_resp="Error",
                    e_resp_msg=msg))
            flash(msg, 'error')
            return _render_properties_form(request.form, "template_categories",
                                           "New Template Category", "new")

        status, response = tmpl.add_template_category(
            g.current_brand.id, request.form['template_categories_name'],
            g.current_folder.id, g.user.id)
        if not status:
            msg = response
            logf.AddLog(
                Log(g.current_brand.id,
                    g.current_tool.id,
                    g.user.id,
                    request.path,
                    op='Create',
                    e_resp="Error",
                    e_resp_msg=msg))
            flash(msg, 'error')
            return _render_properties_form(request.form, "template_categories",
                                           "New Template Category", "new")
        flash('Template Category added', 'info')
        return redirect('/template_categories')
示例#4
0
def delete_tool_group(tool_group_id):
    tool_group_item = ToolGroup.query.get(tool_group_id)
    if tool_group_item.tools.count() > 0:
        msg="Tool group %s cannot be deleted because it contains tools" % tool_group_item.name
        flash(msg, "error")
        logf.AddLog(Log(1, g.current_tool.id, g.user.id, request.path, op='Delete', e_resp="Error", e_resp_msg=msg))
    else:
        db.session.delete(tool_group_item)
        db.session.commit()
        msg='Tool group %s deleted' % tool_group_item.name
        logf.AddLog(Log(1, g.current_tool.id, g.user.id, request.path, op='Delete', e_resp="OK", e_resp_msg=msg))
        flash(msg, "message")
    return redirect(url_for("tools.tools_home"))
示例#5
0
def toggle_status_group(tool_group_id):
    tool_group_item = ToolGroup.query.get(tool_group_id)
    if tool_group_item != None:
        tool_group_item.status = abs(tool_group_item.status - 1)
        db.session.commit()
        msg = 'Tool Group %s updated' % (tool_group_item.name)
        flash(msg, "message")
        logf.AddLog(Log(1, g.current_tool.id, g.user.id, request.path, op='Update', e_resp="OK", e_resp_msg=msg))
    else:
        msg = 'Tool Group with ID %s doesn\'t exist' % tool_group_id
        logf.AddLog(Log(1, g.current_tool.id, g.user.id, request.path, op='Update', e_resp="Error", e_resp_msg=msg))
        flash(msg, "error")
    return redirect(url_for("tools.tools_home"))
示例#6
0
def delete_user(user_id):
    user = User.query.get(user_id)
    if user != None:
        db.session.delete(user)
        db.session.commit()
        msg = "User deleted"
        flash(msg, "message")
        logf.AddLog(Log(1, g.current_tool.id, g.user.id, request.path, op='Delete', e_resp="OK", e_resp_msg=msg))
    else:
        msg = 'User with ID %s doesn\'t exist' % user_id
        flash(msg, "error")
        logf.AddLog(Log(1, g.current_tool.id, g.user.id, request.path, op='Delete', e_resp="Error", e_resp_msg=msg))
    return redirect(url_for("users.users_home"))
示例#7
0
def delete_tool(tool_id):
    tool_item = Tool.query.get(tool_id)
    if tool_item.brands.count() > 0:
        msg="Tool %s cannot be deleted because brands are associated with it" % tool_item.name
        logf.AddLog(Log(1, g.current_tool.id, g.user.id, request.path, op='Delete', e_resp="Error", e_resp_msg=msg))
        flash(msg, "error")
    else:
        db.session.delete(tool_item)
        db.session.commit()
        msg = 'Tool %s deleted' % tool_item.name
        logf.AddLog(Log(1, g.current_tool.id, g.user.id, request.path, op='Delete', e_resp="OK", e_resp_msg=msg))
        flash(msg, "message")
    return redirect(url_for("tools.tools_home"))
示例#8
0
def delete_ip(mid, ip_id):
    ip_address = BrandIP.query.get(ip_id)
    if ip_address != None:
        db.session.delete(ip_address)
        db.session.commit()
        msg = "IP deleted"
        flash(msg, "message")
        logf.AddLog(Log(brand_item.id, g.current_tool.id, g.user.id, request.path, op='Delete', e_resp='OK', e_resp_msg=msg))
    else:
        msg = "IP does not exist"
        logf.AddLog(Log(brand_item.id, g.current_tool.id, g.user.id, request.path, op='Delete', e_resp='OK', e_resp_msg=msg))
        flash(msg, "error")
    return redirect(url_for("brands.show_edit_brand", mid=mid))
示例#9
0
def toggle_status(brand_id):
    brand_item = Brand.query.get(brand_id)
    if brand_item != None:
        brand_item.status = abs(brand_item.status - 1)
        db.session.commit()
        msg ='Brand %s (%s) updated' % (brand_item.client, brand_item.mid)
        logf.AddLog(Log(brand_item.id, g.current_tool.id, g.user.id, request.path, op='Update', e_resp='OK', e_resp_msg=msg))
        flash(msg, "message")
    else:
        msg = 'Brand with ID %s doesn\'t exist' % brand_id
        logf.AddLog(Log(brand_item.id, g.current_tool.id, g.user.id, request.path, op='Update', e_resp='Error', e_resp_msg=msg))
        flash(msg, "error")
    return redirect(url_for("brands.brand_home"))
示例#10
0
def toggle_status(user_id):
    user_item = User.query.get(user_id)
    if user_item != None:
        user_item.status = abs(user_item.status - 1)
        db.session.commit()
        msg = 'User %s updated' % (user_item.name)
        logf.AddLog(Log(1, g.current_tool.id, g.user.id, request.path, op='Update', e_resp="OK", e_resp_msg=msg))
        flash(msg, "message")
    else:
        msg = 'User with ID %s doesn\'t exist' % user_id
        flash(msg, "error")
        logf.AddLog(Log(1, g.current_tool.id, g.user.id, request.path, op='Update', e_resp="Error", e_resp_msg=msg))
    return redirect(url_for("users.users_home"))
def unschedule_variate(id):
    variate = VariateCampaign.query.filter(
        and_(VariateCampaign.brand_id == g.current_brand.id,
             VariateCampaign.id == id)).first()
    if not variate:
        msg = 'A/B Test not found'
        flash(msg, 'error')
        logf.AddLog(
            Log(g.current_brand.id,
                g.current_tool.id,
                g.user.id,
                request.path,
                op='Schedule',
                e_resp="Error",
                e_resp_msg=msg))
        return redirect(request.referrer)

    variate.schedule_time = None
    variate.status = 'save'

    status, response = camp.unschedule_campaign(variate)
    if not status:
        msg = response
        flash(msg, 'error')
        logf.AddLog(
            Log(g.current_brand.id,
                g.current_tool.id,
                g.user.id,
                request.path,
                op='Unschedule',
                e_resp="Error",
                e_resp_msg=msg))
        return redirect(request.referrer)

    status, response = camp.save_campaign('update', variate, g.user)
    if not status:
        msg = response
        flash(msg, 'error')
        logf.AddLog(
            Log(g.current_brand.id,
                g.current_tool.id,
                g.user.id,
                request.path,
                op="Unschedule",
                e_resp="Error",
                e_resp_msg=msg))
        return redirect(request.referrer)

    flash('A/B Test schedule has been cancelled', 'info')
    return redirect('/ab_tests')
示例#12
0
def show_edit_tool(tool_id):
    tool_item = Tool.query.get(tool_id)
    tool_groups = ToolGroup.query.order_by(ToolGroup.name).all()
    if request.method == 'GET':
        return render_template('admin/tools/admin.tools.edit.html', title=tool_item.name, show_help=0, groups=tool_groups, tool=tool_item)

    if request.form['form'] == "tool":
        tool_item.name = request.form['name']
        tool_item.description = request.form['description']
        tool_item.rank = request.form['rank']
        tool_item.group_id = request.form['group_id']
        tool_item.home_route = request.form['home_route']
        if 'is_admin' in request.form:
            tool_item.is_admin = 1
        else:
            tool_item.is_admin = 0
        if request.form['alias'] != '':
            tool_item.alias = request.form['alias']
        else:
            tool_item.alias = f.GenerateAlias(tool_item.name)
        tool_item.updated_by = g.user.username
        tool_item.updated = datetime.datetime.now()
        db.session.commit()
        msg="Tool %s updated" % tool_item.name
        flash(msg, "message")
        logf.AddLog(Log(1, g.current_tool.id, g.user.id, request.path, op='Update', e_resp="OK", e_resp_msg=msg))
        return redirect(url_for("tools.tools_home"))
    elif request.form['form'] == "setting":
        key = request.form['key']
        value = request.form['value']
        tool_id = request.form['tool_id']

        if ToolSetting.query.filter_by(key=key,tool_id=tool_id).count() == 0:
            new_setting = ToolSetting(key, value)
            new_setting.tool_id = tool_id
            new_setting.created_by = g.user.username
            new_setting.updated_by = g.user.username

            db.session.add(new_setting)
            db.session.commit()
            msg = 'Setting "%s" added' % key
            logf.AddLog(Log(1, g.current_tool.id, g.user.id, request.path, op='Create', e_resp="OK", e_resp_msg=msg))
            flash(msg, "message")
        else:
            msg='Setting with key "%s" already exists' % key
            logf.AddLog(Log(1, g.current_tool.id, g.user.id, request.path, op='Create', e_resp="Error", e_resp_msg=msg))
            flash(msg, "error")

        t_id = int(tool_id)
        return redirect(url_for("tools.show_edit_tool", tool_id=t_id))
def unschedule_campaign(id):
    campaign = Campaign.query.filter(
        and_(Campaign.brand_id == g.current_brand.id,
             Campaign.id == id)).first()
    if not campaign:
        msg = 'Campaign not found'
        flash(msg, 'error')
        logf.AddLog(
            Log(g.current_brand.id,
                g.current_tool.id,
                g.user.id,
                request.path,
                op='Schedule',
                e_resp="Error",
                e_resp_msg=msg))
        return redirect(request.referrer)

    campaign.schedule_time = None
    campaign.status = 'save'

    status, response = camp.unschedule_campaign(campaign)
    if not status:
        msg = response
        flash(msg, 'error')
        logf.AddLog(
            Log(g.current_brand.id,
                g.current_tool.id,
                g.user.id,
                request.path,
                op='Unschedule',
                e_resp="Error",
                e_resp_msg=msg))
        return redirect(request.referrer)

    status, response = camp.save_campaign('update', campaign, g.user)
    if not status:
        msg = response
        flash(msg, 'error')
        logf.AddLog(
            Log(g.current_brand.id,
                g.current_tool.id,
                g.user.id,
                request.path,
                op="Unschedule",
                e_resp="Error",
                e_resp_msg=msg))
        return redirect(request.referrer)

    flash('campaign schedule has been cancelled', 'info')
    return redirect('/campaigns')
def forms(page=1):
    query = Form.query.filter(Form.folder_id == g.current_folder.id)
    r = request.args.get('r')
    q = request.args.get('q')
    if not r:
        if 'r' in session:
            r = int(session['r'])
        else:
            r = DEFAULT_LIST_LENGTH
            session['r'] = r
    else:
        r = int(r)
        session['r'] = r
    if r != 0:
        pages = query.count() / r;
        if q:
            forms = query.filter(Form.name.like('%%%s%%' % q)).order_by(Form.name).paginate(page, r, False).items
        else:
            forms = query.order_by(Form.name).paginate(page,r,False).items
    else:
        pages = 0
        if q:
            forms = query.filter(Form.name.like('%%%s%%' % q)).order_by(Form.name).all()
        else:
            forms = query.order_by(Form.name).all()

    logf.AddLog(Log(g.current_brand.id, g.current_tool.id, g.user.id, request.path, op='Retrieve', rows=len(forms)))
    return render_template('forms/forms.default.html', title="All Form", forms=forms, pages=pages, current_page=page)
def template_categories(page=1):
    query = TemplateCategory.query.filter(
        TemplateCategory.folder_id == g.current_folder.id)
    r = request.args.get('r')
    if not r:
        if 'r' in session:
            r = int(session['r'])
        else:
            r = DEFAULT_LIST_LENGTH
            session['r'] = r
    else:
        r = int(r)
        session['r'] = r
    if r != 0:
        pages = query.count() / r
        template_categories = query.paginate(page, r, False).items
    else:
        pages = 0
        template_categories = query.all()

    logf.AddLog(
        Log(g.current_brand.id,
            g.current_tool.id,
            g.user.id,
            request.path,
            op='Retrieve',
            rows=len(template_categories)))
    return render_template(
        'template_categories/template_categories.default.html',
        title="Templates",
        template_categories=template_categories,
        pages=pages,
        current_page=page)
def emails(page=1):
    query = Email.query.filter(Email.folder_id == g.current_folder.id)
    r = request.args.get('r')
    if not r:
        if 'r' in session:
            r = int(session['r'])
        else:
            r = DEFAULT_LIST_LENGTH
            session['r'] = r
    else:
        r = int(r)
        session['r'] = r
    if r != 0:
        pages = query.count() / r
        emails = query.paginate(page, r, False).items
    else:
        pages = 0
        emails = query.all()

    logf.AddLog(
        Log(g.current_brand.id,
            g.current_tool.id,
            g.user.id,
            request.path,
            op='Retrieve',
            rows=len(emails)))
    return render_template('emails/emails.default.html',
                           title="All Email",
                           emails=emails,
                           pages=pages,
                           current_page=page)
示例#17
0
def tools_home(page=1):
    tools = Tool.query
    r = request.args.get('r')
    q = request.args.get('q')
    if not r:
        if 'r' in session:
            r = int(session['r'])
        else:
            r = DEFAULT_LIST_LENGTH
            session['r'] = r
    else:
        r = int(r)
        session['r'] = r
    if r != 0:
        pages = tools.count() / r;
        if q:
            tools = tools.filter(Tool.name.like('%%%s%%' % q)).order_by(Tool.name).paginate(page, r, False).items
        else:
            tools = tools.order_by(Tool.name).paginate(page,r,False).items
    else:
        pages = 0
        if q:
            tools = tools.filter(Tool.name.like('%%%s%%' % q)).order_by(Tool.name).all()
        else:
            tools = tools.order_by(Tool.name).all()
    #tool_groups = ToolGroup.query.order_by(ToolGroup.name).all()
    logf.AddLog(Log(1, g.current_tool.id, g.user.id, request.path, op='Retrieve', rows=len(tools)))
    return render_template("admin/tools/admin.tools.html", tools=tools, title='Manage Tools', show_help=0, pages=pages, current_page=page, rows=r, q=q)
def file_locations(page=1):
    query = FileLocation.query
    r = request.args.get('r')
    q = request.args.get('q')
    if not q:
        q = "";
    if not r:
        if 'r' in session:
            r = int(session['r'])
        else:
            r = DEFAULT_LIST_LENGTH
            session['r'] = r
    else:
        r = int(r)
        session['r'] = r
    if r != 0:
        pages = query.count() / r;
        if q:
            file_locations = query.filter(FileLocation.name.like('%%%s%%' % q)).order_by(FileLocation.name).paginate(page, r, False).items
        else:
            file_locations = query.order_by(FileLocation.name).paginate(page,r,False).items
    else:
        pages = 0
        if q:
            file_locations = query.filter(FileLocation.name.like('%%%s%%' % q)).order_by(FileLocation.name).all()
        else:
            file_locations = query.order_by(FileLocation.name).all()
    file_locations_list = []
    for file_location in file_locations:
        brand = brands.brand_by_id(file_location.brand_id)
        file_locations_list.append({'FL': file_location, 'Brand': brand})
    logf.AddLog(Log(g.current_brand.id, g.current_tool.id, g.user.id, request.path, op='Retrieve', rows=len(file_locations)))
    return render_template('file_locations/file_locations.default.html', title="All File Locations", file_locations=file_locations_list, pages=pages, current_page=page, rows=r, q=q)
def tracking_index(type="campaigns", page=1):
    query = TrackedCampaign.query.filter(
        and_(TrackedCampaign.folder_id == g.current_folder.id,
             TrackedCampaign.type == type))
    r = request.args.get('r')
    if not r:
        if 'r' in session:
            r = int(session['r'])
        else:
            r = DEFAULT_LIST_LENGTH
            session['r'] = r
    else:
        r = int(r)
        session['r'] = r
    if r != 0:
        pages = query.count() / r
        campaign_tracking = query.paginate(page, r, False).items
    else:
        pages = 0
        campaign_tracking = query.all()

    logf.AddLog(
        Log(g.current_brand.id,
            g.current_tool.id,
            g.user.id,
            request.path,
            op='Retrieve',
            rows=len(campaign_tracking)))
    return render_template('tracking/tracking.%s.default.html' % type,
                           title="All %s Tracking" %
                           type.title().replace('_', '/'),
                           campaign_tracking=campaign_tracking,
                           pages=pages,
                           current_page=page)
示例#20
0
def users_home(page=1):
    all_users = User.query
    r = request.args.get('r')
    q = request.args.get('q')
    if not r:
        if 'r' in session:
            r = int(session['r'])
        else:
            r = DEFAULT_LIST_LENGTH
            session['r'] = r
    else:
        r = int(r)
        session['r'] = r
    if r != 0:
        pages = all_users.count() / r;
        if q:
            all_users = all_users.filter(or_(User.name.like('%%%s%%' % q), User.email.like('%%%s%%' % q), User.username.like('%%%s%%' % q))).order_by(User.name).paginate(page, r, False).items
        else:
            all_users = all_users.order_by(User.name).paginate(page,r,False).items
    else:
        pages = 0
        if q:
            all_users = all_users.filter(or_(User.name.like('%%%s%%' % q), User.email.like('%%%s%%' % q), User.username.like('%%%s%%' % q))).order_by(User.name).all()
        else:
            all_users = all_users.order_by(User.name).all()
    #all_users = User.query.order_by(User.username.asc()).all()
    logf.AddLog(Log(1, g.current_tool.id, g.user.id, request.path, op='Retrieve', rows=len(all_users)))
    return render_template("admin/users/admin.users.html", title='Manage Users', show_help=0, users=all_users, pages=pages, current_page=page, rows=r, q=q)
示例#21
0
def brand_home(page=1):
    all_brands = Brand.query
    r = request.args.get('r')
    q = request.args.get('q')
    if not r:
        if 'r' in session:
            r = int(session['r'])
        else:
            r = DEFAULT_LIST_LENGTH
            session['r'] = r
    else:
        r = int(r)
        session['r'] = r
    if r != 0:
        pages = all_brands.count() / r;
        if q:
            all_brands = all_brands.filter(Brand.client.like('%%%s%%' % q)).order_by(Brand.client).paginate(page, r, False).items
        else:
            all_brands = all_brands.order_by(Brand.client).paginate(page,r,False).items
    else:
        pages = 0
        if q:
            all_brands = all_brands.filter(Brand.client.like('%%%s%%' % q)).order_by(Brand.client).all()
        else:
            all_brands = all_brands.order_by(Brand.client).all()
    logf.AddLog(Log(1, g.current_tool.id, g.user.id, request.path, op='Retrieve', e_resp='OK', rows=len(all_brands)))
    return render_template('admin/brands/admin.brands.html', title='All Brands', show_help=0, brands=all_brands, pages=pages, current_page=page, rows=r, q=q)
def campaigns(page=1):
    query = Campaign.query.filter(
        and_(Campaign.type != 'variate',
             Campaign.folder_id == g.current_folder.id,
             Campaign.is_user_initiated == False, Campaign.is_rtm == False))
    r = request.args.get('r')
    if not r:
        if 'r' in session:
            r = int(session['r'])
        else:
            r = DEFAULT_LIST_LENGTH
            session['r'] = r
    else:
        r = int(r)
        session['r'] = r
    if r != 0:
        pages = query.count() / r
        campaigns = query.paginate(page, r, False).items
    else:
        pages = 0
        campaigns = query.all()

    logf.AddLog(
        Log(g.current_brand.id,
            g.current_tool.id,
            g.user.id,
            request.path,
            op='Retrieve',
            rows=len(campaigns)))
    return render_template('campaigns/campaigns.default.html',
                           title="All campaign",
                           campaigns=campaigns,
                           pages=pages,
                           current_page=page)
def ab_tests(page=1):
    query = VariateCampaign.query.filter(
        VariateCampaign.folder_id == g.current_folder.id)
    r = request.args.get('r')
    if not r:
        if 'r' in session:
            r = int(session['r'])
        else:
            r = DEFAULT_LIST_LENGTH
            session['r'] = r
    else:
        r = int(r)
        session['r'] = r
    if r != 0:
        pages = query.count() / r
        ab_tests = query.paginate(page, r, False).items
    else:
        pages = 0
        ab_tests = query.all()

    logf.AddLog(
        Log(g.current_brand.id,
            g.current_tool.id,
            g.user.id,
            request.path,
            op='Retrieve',
            rows=len(ab_tests)))
    return render_template('ab_tests/ab_tests.default.html',
                           title="All A/B Tests",
                           ab_tests=ab_tests,
                           pages=pages,
                           current_page=page)
示例#24
0
def delete_setting(tool_id, setting_id):
    setting = ToolSetting.query.get(setting_id)
    db.session.delete(setting)
    db.session.commit()
    msg = 'Setting deleted'
    flash(msg)
    logf.AddLog(Log(1, g.current_tool.id, g.user.id, request.path, op='Delete', e_resp="OK", e_resp_msg=msg))
    return redirect(url_for("tools.show_edit_tool", tool_id=int(tool_id)))
def file_location_details(id=None):
    file_location = FileLocation()
    file_location.name = ""
    mode = "new"
    mode_title = "New File Location"
    log_op = 'Create'

    brand_list = brands.all_brands()
    
    if id != None:
        file_location = FileLocation.query.get(id)
        if not file_location:
            msg = 'File Location not found'
            flash(msg, 'error')
            logf.AddLog(Log(g.current_brand.id, g.current_tool.id, g.user.id, request.path, op='Update', e_resp="Error", e_resp_msg=msg))
            return redirect('/admin/file_locations')
        mode = "update"
        mode_title = file_location.name
        log_op = 'Update'

    if request.method == 'GET':
        return render_template('file_locations/file_locations.properties.html', 
            title=mode_title, update_type=mode, file_location=file_location, brands=brand_list)

    status, msg, file_location = fl.request_to_file_location(file_location, request.form)
    if not status:
        flash(msg, 'error')
        logf.AddLog(Log(g.current_brand.id, g.current_tool.id, g.user.id, request.path, op=log_op, e_resp='Error', e_resp_msg=msg))
        return render_template('file_locations/file_locations.properties.html', 
            title=mode_title, update_type=mode, file_location=file_location, brands=brand_list)

    status, msg = fl.save_file_location(mode, file_location, g.user)
    if status:
        flash(msg, "message")
        logf.AddLog(Log(g.current_brand.id, g.current_tool.id, g.user.id, request.path, op=log_op, e_resp='OK', e_resp_msg=msg))
        return redirect('/admin/file_locations')
    else:
        flash(msg, "error")
        logf.AddLog(Log(g.current_brand.id, g.current_tool.id, g.user.id, request.path, op=log_op, e_resp='Error', e_resp_msg=msg))
        return render_template('file_locations/file_locations.properties.html', 
            title=mode_title, update_type=mode, file_location=file_location, brands=brand_list)
def system_jobs(page=1):
    query = SystemJob.query
    r = request.args.get('r')
    q = request.args.get('q')
    if not r:
        if 'r' in session:
            r = int(session['r'])
        else:
            r = DEFAULT_LIST_LENGTH
            session['r'] = r
    else:
        r = int(r)
        session['r'] = r
    if r != 0:
        pages = query.count() / r;
        system_jobs = query.order_by(SystemJob.start_date.desc()).paginate(page,r,False).items
    else:
        pages = 0
        system_jobs = query.order_by(SystemJob.start_date.desc()).all()

    jobs_list = []
    for job in system_jobs:
        brand = brands.brand_by_id(job.brand_id)
        if not brand:
            continue

        if not q or q in brand.client:
            if job.activity_type == 'imports':
                import_def = act.get_import_definition(job.activity_id)
                if not import_def:
                    continue
                name = import_def.name
            elif job.activity_type == 'exports':
                export_def = act.get_export_definition(job.activity_id)
                if not export_def:
                    continue
                name = export_def.name
            elif job.activity_type == 'tracking_exports':
                tracking_export_def = act.get_tracking_export_definition(job.activity_id)
                if not tracking_export_def:
                    continue
                name = tracking_export_def.name
            elif job.activity_type == "file_transfers":
                name = "File Transfer %s" % job.activity_id
            else:
                name = '%s %s' % (inflection.titleize(job.activity_type), job.activity_id)

            if not q or q in name:
                jobs_list.append({'Name': name, 'Brand': brand.client, 'Type': inflection.titleize(job.activity_type), 'Job': job})

    logf.AddLog(Log(g.current_brand.id, g.current_tool.id, g.user.id, request.path, op='Retrieve', rows=len(system_jobs)))
    return render_template('system_jobs/system_jobs.default.html', title="All System Jobs", system_jobs=jobs_list, pages=pages, current_page=page, rows=r, q=q)
示例#27
0
def new_brand():
    all_tools = Tool.query.filter(Tool.status == 1).order_by(Tool.name.asc()).all()
    if request.method == 'POST':
        try:
            mid = request.form['mid']
            if Brand.query.filter_by(mid=mid).count() == 0:
                new_brand = Brand()
                new_brand.mid = request.form['mid']
                new_brand.client = request.form['client_name']
                new_brand.api_user = request.form['api_user']
                new_brand.api_key = request.form['api_key']
                new_brand.api_dc = request.form['api_dc']
                if 'status' in request.form:
                    new_brand.status = 1
                else:
                    new_brand.status = 0
                new_brand.created_by = g.user.username
                new_brand.updated_by = g.user.username

                if 'brand_tool' in request.form:
                    for tool in request.form.getlist('brand_tool'):
                        new_brand.tools.append(Tool.query.get(tool))

                db.session.add(new_brand)
                db.session.commit()

                msg = "Brand %s (%s) added" % (new_brand.client, mid)
                flash(msg, "message")
                logf.AddLog(Log(1, g.current_tool.id, g.user.id, request.path, op='Create', e_resp='OK', e_resp_msg=msg))
                return redirect(url_for("brands.brand_home"))
            else:
                msg = "Brand with MID %s already exists" % mid
                logf.AddLog(Log(1, g.current_tool.id, g.user.id, request.path, op='Create', e_resp='Error', e_resp_msg=msg))
                flash(msg, "error")
        except Exception as e:
            flash(str(e), "error")
    return render_template("admin/brands/admin.brands.new.html", tools=all_tools, title="New Brand",show_help=0)
def imports(page=1):
    query = ImportDefinition.query.filter(
        and_(ImportDefinition.folder_id == g.current_folder.id,
             ImportDefinition.system_definition == False,
             ImportDefinition.brand_id == g.current_brand.id))
    r = request.args.get('r')
    q = request.args.get('q')
    if not q:
        q = ""
    if not r:
        if 'r' in session:
            r = int(session['r'])
        else:
            r = DEFAULT_LIST_LENGTH
            session['r'] = r
    else:
        r = int(r)
        session['r'] = r
    if r != 0:
        pages = query.count() / r
        if q:
            imports = query.filter(ImportDefinition.name.like(
                '%%%s%%' % q)).order_by(ImportDefinition.name).paginate(
                    page, r, False).items
        else:
            imports = query.order_by(ImportDefinition.name).paginate(
                page, r, False).items
    else:
        pages = 0
        if q:
            imports = query.filter(ImportDefinition.name.like(
                '%%%s%%' % q)).order_by(ImportDefinition.name).all()
        else:
            imports = query.order_by(ImportDefinition.name).all()

    logf.AddLog(
        Log(g.current_brand.id,
            g.current_tool.id,
            g.user.id,
            request.path,
            op='Retrieve',
            rows=len(imports)))
    return render_template('imports/imports.default.html',
                           title="All Import",
                           imports=imports,
                           pages=pages,
                           current_page=page,
                           rows=r,
                           q=q)
示例#29
0
def new_user():
    all_brands = Brand.query.filter(Brand.status == 1).order_by(Brand.client.asc()).all()
    msg = ""
    if request.method == 'POST':
        if User.query.filter_by(email=request.form['email']).count() > 0:
            msg = 'User with email %s already exists' % request.form['email']
            flash(msg, "error")
        elif User.query.filter_by(username=request.form['username']).count() > 0:
            msg = 'User with username %s already exists' % request.form['username']
            flash(msg, "error")
        else:
            user = User()
            user.name = request.form['name']
            user.email = request.form['email']
            user.username = request.form['username']
            user.password = md5.new(request.form['password']).hexdigest()
            #print request.form
            if 'status' in request.form:
                user.status = 1
            else:
                user.status = 0
            user.created_by = g.user.username
            user.updated_by = g.user.username

            for brand in request.form.getlist('user_brand'):
                user.brands.append(Brand.query.get(brand))

            db.session.add(user)
            db.session.commit()
            msg = "User %s added" % user.username
            flash (msg, "message")
            logf.AddLog(Log(1, g.current_tool.id, g.user.id, request.path, op='Create', e_resp="OK", e_resp_msg=msg))
            return redirect(url_for("users.users_home"))
    if msg != "":
        logf.AddLog(Log(1, g.current_tool.id, g.user.id, request.path, op='Create', e_resp="Error", e_resp_msg=msg))
    return render_template("admin/users/admin.users.new.html", brands=all_brands, title='New User', show_help=0)
示例#30
0
def tool_group_new():
    if request.method == 'POST':
        if len(ToolGroup.query.filter_by(name=request.form['name']).all()) == 0:
            new_tool_group = ToolGroup()
            new_tool_group.name = request.form['name']
            new_tool_group.rank = request.form['rank']
            new_tool_group.icon = request.form['icon']
            if request.form['alias'] != '':
                new_tool_group.alias = request.form['alias']
            else:
                new_tool_group.alias = f.GenerateAlias(new_tool_group.name)
            new_tool_group.created_by = g.user.username
            new_tool_group.updated_by = g.user.username
            db.session.add(new_tool_group)
            db.session.commit()
            msg = 'Tool Group %s has been created' % new_tool_group.name
            logf.AddLog(Log(1, g.current_tool.id, g.user.id, request.path, op='Create', e_resp="OK", e_resp_msg=msg))
            flash(msg, 'message')
            return redirect(url_for("tools.tools_home"))
        else:
            logf.AddLog(Log(1, g.current_tool.id, g.user.id, request.path, op='Create', e_resp="Error", e_resp_msg=msg))
            msg = 'Tool Group with name %s already exists' % request.form['name']
            flash(msg, 'error')
    return render_template("admin/tools/admin.tools.groups.new.html", title='Create Tool Group', show_help=0)