You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

88 lines
4.3 KiB

from flask import render_template, url_for, flash, redirect, request, Blueprint
from flask_login import login_required, current_user
from minibase.app import db
import minibase.theme as theme
from minibase.blueprints.company.models import Companies
import minibase.blueprints.database.utils as dbUtils
import minibase.blueprints.main.utils as mainUtils
import minibase.blueprints.geography.utils as geoUtils
import minibase.blueprints.company.utils as companyUtils
from minibase.blueprints.company.forms import updateCompanyForm
from minibase.blueprints.user.utils import save_picture
from flask_wtf import FlaskForm
# Declaring a blueprint
company = Blueprint('company', __name__, template_folder='templates')
@company.route("/list", methods=['GET', 'POST'])
def list():
page=request.args.get('page', 1, type=int)
table=dbUtils.table_printable_paginate(Companies, page, 20, 'edit/', 'id')
return(render_template('view.html', theme=theme, table=table, title="Companies"))
@company.route("/edit/<int:companyId>", methods=['GET', 'POST'])
@login_required
def edit_company(companyId):
if id:
form = updateCompanyForm()
company = companyUtils.queryById(companyId)
if form.validate_on_submit():
comp = Companies(
name = form.name.data,
street = form.street.data,
website = form.website.data,
street_no = form.street_no.data,
post_code = form.post_code.data,
city_id = form.city.data,
state_id = form.state.data,
country_id = form.country.data,
industry_id = form.industry.data,
legal_entity_id = form.legal_entity.data,
type_id = form.type.data,
relation_id = form.relation.data,
status_id = form.status.data,
comment = form.comment.data)
flash('Company Has been successfully updated', 'success')
return redirect(url_for('company.edit', companyId))
elif request.method == 'GET':
form.name.data = company.name
form.website.data = company.website
form.street.data = company.street
form.street_no.data = company.street_no
form.post_code.data = company.post_code
#form.city.choices = [(row.id, row.name) for row in geoUtils.queryCityNames()]
form.city.data = company.city
form.state.choices = [(row.id, row.name) for row in geoUtils.queryStateNamesOfCuntry(company.country.id)]
form.state.data = company.state
form.country.choices = [(row.id, row.name) for row in geoUtils.queryCountryNames()]
form.country.data = company.country
form.industry.choices = [(row.id, row.name) for row in mainUtils.queryIndustryNames()]
form.industry.data = company.industry
form.legal_entity.choices = [(row.id, row.name) for row in companyUtils.queryLegalEntityNames()]
form.legal_entity.data = company.legal_entity
form.type.choices = [(row.id, row.name) for row in companyUtils.queryTypeNames()]
form.type.data = company.type
form.relation.choices = [(row.id, row.name) for row in companyUtils.queryRelationNames()]
form.relation.data = company.relation
form.status.choices = [(row.id, row.name) for row in companyUtils.queryStatusNames()]
form.status.data = company.status
form.comment.data = company.comment
# This could be very interesting but neds more time to think !
#for field in form:
# if field.name != 'csrf_token' and hasattr(company, field.name):
# attr = getattr(company, field.name)
# field.data = attr
image_file = url_for('static', filename='pics/' + companyUtils.queryImageById(companyId))
info = "kerem"
return render_template('company/account.html',
theme=theme,
image_file=image_file,
info = info,
form=form)
else:
flash('You need to select a company id', 'alarm')
return redirect(url_for('company.list'))