Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 67 additions & 2 deletions app.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from flask_login import LoginManager, current_user, login_required, login_user, logout_user
from dbutils import dbUtils
from dataclasses import dataclass, fields
from forms.forms import InsertForm, LoginForm, SignUpForm, DeleteForm, UpdateForm, SearchForm
from forms.forms import CreateTableForm, InsertForm, LoginForm, PresetTables, SignUpForm, DeleteForm, UpdateForm, SearchForm
from model import User, getUser, users, getUser2, createFromDB
from werkzeug.urls import url_parse
import sqlite3
Expand All @@ -11,6 +11,8 @@
app.config['SECRET_KEY'] = 'alejandrodjc'
login_manager = LoginManager(app)
login_manager.login_view = "login"
login_manager.login_message = "You need to be logged in to view this page, please log in."
login_manager.login_message_category = "warning"

@app.route("/")
def home():
Expand Down Expand Up @@ -41,7 +43,7 @@ def login():
next_page = request.args.get('next')
if not next_page or url_parse(next_page).netloc != '':
next_page = url_for('home')
flash("Usuario " + str(form.user.data) + "logueado con éxito", "success")
flash("Usuario " + str(form.user.data) + " logueado con éxito", "success")
return redirect(next_page)
else:
flash("La contraseña para el usuario " + str(form.user.data) + " es incorrecta.", "warning")
Expand Down Expand Up @@ -123,6 +125,7 @@ def table():
return render_template('table.html', form=form, model=model, year=year, limit=limit)

@app.route("/table2")
@login_required
def table2():
form = InsertForm()
form2 = DeleteForm()
Expand Down Expand Up @@ -254,5 +257,67 @@ def table3update():
#return redirect(url_for('table3', make=make, model=model, year=year, cylinders=cylinders, fuel_gas=fuel_gas, fuel_diesel=fuel_diesel, fuel_electricity=fuel_electricity, limit=limit))
return table3(make=make, model=model, year=year, cylinders=cylinders, fuel_type=fuel_type, drive=drive, limit=limit)

@app.route('/table4')
def table4(**kwargs):
form = CreateTableForm()
formPreset = PresetTables()

print("\nTABLE4:", kwargs.get('url'), kwargs.get('headers'), kwargs.get('columns'), kwargs.get('pdf'), kwargs.get('excel'), kwargs.get('copy'))

url = kwargs.get('url')
headers = kwargs.get('headers')
if kwargs.get('columns') is None:
columns = [""]
else:
columns = kwargs.get('columns')
pdf = kwargs.get('pdf')
excel = kwargs.get('excel')
copy = kwargs.get('copy')
if kwargs.get('presetURL') is not None and kwargs.get('presetColumns') is not None:
presetURL = kwargs.get('presetURL')
presetColumns = kwargs.get('presetColumns')
else:
presetURL = ""
presetColumns = ""
if kwargs.get('tableTitle') is not None:
tableTitle = kwargs.get('tableTitle')
else:
tableTitle = "Custom Table"

return render_template('table4.html', form=form, formPreset=formPreset, url=url, headers=headers, columns=columns, pdf=pdf, excel=excel,
copy=copy, presetColumns=presetColumns, presetURL=presetURL, tableTitle=tableTitle)

@app.route('/table4update', methods=["POST"])
def table4update():
form = CreateTableForm()
formPreset = PresetTables()

preset = formPreset.preset.data

presetURL = ""
presetColumns = ""
tableTitle = ""
if preset is not None:
query = dbUtils.selectAllfromTableWhere("dbutils/db1.db","presets","name",str(preset))
print("THE QUERY RESULT IS: ", query[1:][0][3], query[1:][0][2]) #columns, 2 is url
presetURL = query[1:][0][2]
presetColumns = query[1:][0][3]
tableTitle = query[1:][0][1] + " Table"

url = form.url.data
headers = form.headers.data
columns = form.columns.data
pdf = form.pdf.data
excel = form.excel.data
copy = form.copy.data

copy = "copy" if copy == True else ""
pdf = "pdf" if pdf == True else ""
excel = "excel" if excel == True else ""

if columns is not None:
columns = columns.split(', ')
print("YOUR NEW COLUMNS LIST IS:",columns)
print("YOUR BOOL VALUES ARE: ", copy, excel, pdf)

return table4(url=url, headers=headers, columns=columns, pdf=pdf, excel=excel, copy=copy, presetColumns=presetColumns, presetURL=presetURL, tableTitle=tableTitle)
62 changes: 41 additions & 21 deletions dbutils/createDB.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,31 +2,51 @@

connectionDB = sqlite3.connect("db1.db")

try:
connectionDB.execute("""create table if not exists users (
id integer primary key autoincrement,
user text,
password text,
worker bool,
student bool,
incomes real
)""")
print("************\nTABLE users CREATED\n*************")
except sqlite3.OperationalError as e:
print("ERROR: "+e)
connectionDB.close()
# try:
# connectionDB.execute("""create table if not exists users (
# id integer primary key autoincrement,
# user text,
# password text,
# worker bool,
# student bool,
# incomes real
# )""")
# print("************\nTABLE users CREATED\n*************")
# except sqlite3.OperationalError as e:
# print("ERROR: "+e)
# connectionDB.close()

# try:
# connectionDB.execute("""CREATE TABLE IF NOT EXISTS users2 (
# id INTEGER PRIMARY KEY AUTOINCREMENT,
# name TEXT,
# user TEXT,
# email TEXT,
# password TEXT,
# gender TEXT,
# birthdate DATE
# )""")
# print("************\nTABLE users2 CREATED\n************")
# except sqlite3.OperationalError as e:
# print ("ERROR: " + str(e))
# connectionDB.close()

try:
connectionDB.execute("""CREATE TABLE IF NOT EXISTS users2 (
connectionDB.execute("""CREATE TABLE IF NOT EXISTS presets (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
user TEXT,
email TEXT,
password TEXT,
gender TEXT,
birthdate DATE
url TEXT,
columns TEXT
)""")
print("************\nTABLE users2 CREATED\n************")
print("***********\nTABLE presets CREATED\n****************")
except sqlite3.OperationalError as e:
print ("ERROR: " + str(e))
print("ERROR: " + str(e))

# try:
# connectionDB.execute("DROP TABLE presets")
# connectionDB.commit()
# print("TABLE presets DELETED")
# except sqlite3.OperationalError as e:
# print("ERROR: " + str(e))

connectionDB.close()
Binary file modified dbutils/db1.db
Binary file not shown.
28 changes: 20 additions & 8 deletions dbutils/insertionsDB.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,28 @@
import sqlite3

connectionDB = sqlite3.connect("db1.db")
user = str(input("User:"))
password = str(input("Password:"))
worker = str(input("Worker? (1=YES, 0=NO):"))
student = str(input("Student? (1=YES, 0=NO):"))
incomes = str(input("Incomes:"))
print(user, password, worker, student, incomes)
# user = str(input("User:"))
# password = str(input("Password:"))
# worker = str(input("Worker? (1=YES, 0=NO):"))
# student = str(input("Student? (1=YES, 0=NO):"))
# incomes = str(input("Incomes:"))
# print(user, password, worker, student, incomes)

name = str(input("name: "))
url = str(input("url: "))
columns = str(input("columns: "))
print(name, url, columns)

# try:
# connectionDB.execute("INSERT INTO users (user, password, worker, student, incomes) values (?,?,?,?,?)", (user, password, worker, student, incomes))
# connectionDB.commit()
# connectionDB.close()
# except sqlite3.Error as e:
# print("ERROR: " + e)

try:
connectionDB.execute("INSERT INTO users (user, password, worker, student, incomes) values (?,?,?,?,?)", (user, password, worker, student, incomes))
connectionDB.execute("INSERT INTO presets (name, url, columns) values (?,?,?)", (name, url, columns))
connectionDB.commit()
connectionDB.close()
except sqlite3.Error as e:
print("ERROR: " + e)
print("ERROR: " + e)
2 changes: 1 addition & 1 deletion dbutils/selectDB.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
response = connectionDB.cursor()
#response.execute("SELECT * FROM users2")
#response.execute("SELECT user, email name FROM users2 WHERE user = 'alejadrodjc'")
response.execute("SELECT * FROM users2")
response.execute("SELECT * FROM presets")
#print("THE RESPONSE AS NORMAL IS: ", response.fetchall()[0][1])


Expand Down
19 changes: 18 additions & 1 deletion forms/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,5 +49,22 @@ class SignUpForm(FlaskForm):
password = PasswordField('Password', validators = [InputRequired()])
birthdate = DateField('Birth Date', validators = [InputRequired()])
gender = SelectField('Gender', choices=[('male', 'male'), ('female', 'female'), ('idk', 'idk')])

submit = SubmitField('Sign Up')

class CreateTableForm(FlaskForm):
url = StringField('API URL Request', validators=[DataRequired()])
headers = PasswordField('Auth Token', validators=[DataRequired()])
columns = StringField('Columns', validators=[DataRequired()])
pdf = BooleanField('Export to PDF')
excel = BooleanField('Export to Excel')
copy = BooleanField('Copy to clipboard')
submit = SubmitField('Create Table')


class PresetTables(FlaskForm):
preset = SelectField('Preset', choices=[('Calories by Activity', 'Calories by Activity'), ('Exercises by Muscle', 'Excercises by Muscle'),
('Inflation Type', 'Inflation Type'), ('Inflation Country', 'Inflation Country'), ('Cities in Country', 'Cities'),
('Emoji', 'Emoji')])
submit = SubmitField('Fill Fields')


48 changes: 23 additions & 25 deletions static/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,40 +19,44 @@

// console.log(testJSONData());

headerss = { 'X-Api-Key': 'ZEzlCg1B8mGFFTxttPY5Q7f0tspHHqIrxQU9KE4W'}

columnas = [{ "data": "city_mpg" },
{ "data": "class" },
{ "data": "combination_mpg" },
{ "data": "cylinders" },
{ "data": "displacement" },
{ "data": "drive" },
{ "data": "fuel_type" },
{ "data": "highway_mpg" },
{ "data": "make" },
{ "data": "model" },
{ "data": "transmission" },
{ "data": "year" }]


$(document).ready(function(){
console.log(document.getElementById('model').innerHTML);
var url = createURL(document.getElementById('make').innerHTML,document.getElementById('model').innerHTML,
document.getElementById('year').innerHTML, document.getElementById('cylinders').innerHTML,
document.getElementById('fuel_type').innerHTML, document.getElementById('drive').innerHTML,
document.getElementById('limit').innerHTML);
console.log(url);
var table = $('#tableUsers').DataTable({
var table = $('#tableCars').DataTable({
//B parameter is for buttons, l parameter is for show entries
dom: 'Blfrtip',
buttons: [
'copy', 'excel', 'pdf'
],
columns: [
{ "data": "city_mpg" },
{ "data": "class" },
{ "data": "combination_mpg" },
{ "data": "cylinders" },
{ "data": "displacement" },
{ "data": "drive" },
{ "data": "fuel_type" },
{ "data": "highway_mpg" },
{ "data": "make" },
{ "data": "model" },
{ "data": "transmission" },
{ "data": "year" },
'copy', 'excel',{
extend: 'pdfHtml5',
orientation: 'landscape',
pageSize: 'LEGAL'
}
],
columns: columnas,

ajax : {
method: 'GET',
url: url,
headers: { 'X-Api-Key': 'ZEzlCg1B8mGFFTxttPY5Q7f0tspHHqIrxQU9KE4W'},
headers: headerss,
dataSrc: function (json) {
var data = JSON.parse(json.d);
console.log(data);
Expand All @@ -71,17 +75,11 @@ $(document).ready(function(){
});
});

function search(){
var model = document.getElementById('input-model').value;
var year = document.getElementById('input-year').value;
console.log(model, year);
console.log(document.getElementById('modelosos'))
}

function createURL(make, model, year, cylinders, fuel_type, drive, limit){
console.log(make, model, year, cylinders, fuel_type, drive, limit)
url = 'https://api.api-ninjas.com/v1/cars?limit=50&model=element';
if(make === model === year === cylinders === fuel_type === drive === limit === null){
if(make === "None" && model ==="None" && year ==="None" && cylinders ==="None" && fuel_type ==="None" && drive ==="None" && limit === "None"){
console.log("entro")
url = 'https://api.api-ninjas.com/v1/cars?limit=50&model=element';
}else{
Expand Down
11 changes: 10 additions & 1 deletion static/main2.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
$(document).ready(function () {
var table = $('#tableUsers').DataTable();
var table = $('#tableUsers').DataTable({
dom: 'Blfrtip',
buttons: [
'copy', 'excel', {
extend: 'pdfHtml5',
orientation: 'landscape',
pageSize: 'LEGAL'
}
]
});

$('#tableUsers tbody').on('click', 'tr', function () {
var data = table.row(this).data();
Expand Down
Loading