added single user import
This commit is contained in:
parent
5055ef9b5b
commit
fc5bc14998
86
hr_module/handling_functions/data_import_functions.py
Normal file
86
hr_module/handling_functions/data_import_functions.py
Normal file
@ -0,0 +1,86 @@
|
||||
|
||||
import pandas as pd
|
||||
import sqlite3
|
||||
from django.conf import settings
|
||||
import datetime
|
||||
|
||||
|
||||
def create_connection(db_file):
|
||||
""" create a database connection to the SQLite database
|
||||
specified by the db_file
|
||||
:param db_file: database file
|
||||
:return: Connection object or None
|
||||
"""
|
||||
conn = None
|
||||
try:
|
||||
conn = sqlite3.connect(db_file)
|
||||
except Error as e:
|
||||
print(e)
|
||||
return conn
|
||||
|
||||
|
||||
|
||||
def read_and_parse_excel(file):
|
||||
df = pd.read_excel(file)
|
||||
path_temp = settings.TMP_FILE_STORAGE + file.name.split('.')[0] + '.csv'
|
||||
df.to_csv(path_temp)
|
||||
html = df.to_html(index=False, na_rep='')
|
||||
return {'df_html': html, 'df_path': path_temp}
|
||||
|
||||
|
||||
def load_existing_users():
|
||||
conn = create_connection(settings.DATABASES['default']['NAME'])
|
||||
cur = conn.cursor()
|
||||
cur.execute('select username from auth_user')
|
||||
usernames = [user[0] for user in cur.fetchall()]
|
||||
return usernames
|
||||
|
||||
|
||||
def generate_username(first_name, last_name, usernames):
|
||||
username = first_name + last_name[:1]
|
||||
i = 1
|
||||
while username + str(i) in usernames:
|
||||
i += 1
|
||||
|
||||
username = username + str(i)
|
||||
return username.lower()
|
||||
|
||||
|
||||
def insert_excel(df):
|
||||
conn = create_connection(settings.DATABASES['default']['NAME'])
|
||||
|
||||
usernames = load_existing_users()
|
||||
print(usernames)
|
||||
for i in range(len(df)):
|
||||
row = df.iloc[i]
|
||||
username = generate_username(row['first_name'], row['last_name'], usernames)
|
||||
df.at[i, 'username'] = username
|
||||
usernames.append(username)
|
||||
|
||||
|
||||
df['date_joined'] = datetime.date.today()
|
||||
df['password'] = 'start'
|
||||
|
||||
df_to_user_model = df[['username',
|
||||
'first_name',
|
||||
'last_name',
|
||||
'email',
|
||||
'is_staff',
|
||||
'is_active',
|
||||
'date_joined',
|
||||
'is_superuser',
|
||||
'password']]
|
||||
|
||||
df_to_user_model.to_sql(name='auth_user',
|
||||
con=conn,
|
||||
if_exists='append', index=False)
|
||||
|
||||
df_to_employee = df[['username',
|
||||
'department',
|
||||
'manager_username',
|
||||
'time_model_id',
|
||||
'manager_flag']]
|
||||
|
||||
df_to_employee.to_sql(name='hr_module_employee',
|
||||
con=conn,
|
||||
if_exists='append', index=False)
|
0
hr_module/handling_functions/sqlalchemy_tables.py
Normal file
0
hr_module/handling_functions/sqlalchemy_tables.py
Normal file
@ -1,6 +1,5 @@
|
||||
# Generated by Django 3.1.3 on 2020-12-05 16:44
|
||||
# Generated by Django 3.1.3 on 2020-12-06 19:49
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
@ -10,54 +9,55 @@ class Migration(migrations.Migration):
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
('auth', '0012_alter_user_first_name_max_length'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='TimeModel',
|
||||
name='Employee',
|
||||
fields=[
|
||||
('time_model_id', models.IntegerField(primary_key=True, serialize=False)),
|
||||
('weekly_hours', models.DecimalField(decimal_places=2, max_digits=4)),
|
||||
('weekly_days', models.IntegerField()),
|
||||
('mon', models.IntegerField()),
|
||||
('tue', models.IntegerField()),
|
||||
('wed', models.IntegerField()),
|
||||
('thu', models.IntegerField()),
|
||||
('fri', models.IntegerField()),
|
||||
('sat', models.IntegerField()),
|
||||
('sun', models.IntegerField()),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='TimeLog',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('date', models.DateField()),
|
||||
('begin_time', models.TimeField()),
|
||||
('end_time', models.TimeField()),
|
||||
('username', models.OneToOneField(default='', on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
||||
('username', models.OneToOneField(db_column='username', on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='auth.user', to_field='username')),
|
||||
('department', models.CharField(max_length=200)),
|
||||
('manager_username', models.CharField(max_length=200)),
|
||||
('time_model_id', models.IntegerField()),
|
||||
('manager_flag', models.BooleanField()),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Plan',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('username', models.CharField(default='', max_length=100)),
|
||||
('date', models.DateField()),
|
||||
('begin_time', models.TimeField()),
|
||||
('end_time', models.TimeField()),
|
||||
('username', models.OneToOneField(default='', on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
||||
('activity_type', models.CharField(max_length=100)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Employee',
|
||||
name='TimeLog',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('department', models.CharField(max_length=200)),
|
||||
('manager_username', models.CharField(max_length=200)),
|
||||
('time_model_id', models.IntegerField()),
|
||||
('manager_flag', models.IntegerField()),
|
||||
('username', models.OneToOneField(default='', on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
||||
('username', models.CharField(default='', max_length=100)),
|
||||
('date', models.DateField()),
|
||||
('begin_time', models.TimeField()),
|
||||
('end_time', models.TimeField()),
|
||||
('activity_type', models.CharField(max_length=100)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='TimeModel',
|
||||
fields=[
|
||||
('time_model_id', models.IntegerField(primary_key=True, serialize=False)),
|
||||
('weekly_hours', models.DecimalField(decimal_places=2, max_digits=4)),
|
||||
('weekly_days', models.IntegerField()),
|
||||
('mon', models.BooleanField()),
|
||||
('tue', models.BooleanField()),
|
||||
('wed', models.BooleanField()),
|
||||
('thu', models.BooleanField()),
|
||||
('fri', models.BooleanField()),
|
||||
('sat', models.BooleanField()),
|
||||
('sun', models.BooleanField()),
|
||||
],
|
||||
),
|
||||
]
|
||||
|
@ -1,23 +0,0 @@
|
||||
# Generated by Django 3.1.3 on 2020-12-05 21:23
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('hr_module', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='plan',
|
||||
name='username',
|
||||
field=models.CharField(default='', max_length=100),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='timelog',
|
||||
name='username',
|
||||
field=models.CharField(default='', max_length=100),
|
||||
),
|
||||
]
|
@ -1,18 +0,0 @@
|
||||
# Generated by Django 3.1.3 on 2020-12-05 21:24
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('hr_module', '0002_auto_20201205_2123'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='employee',
|
||||
name='username',
|
||||
field=models.CharField(max_length=200),
|
||||
),
|
||||
]
|
@ -1,25 +0,0 @@
|
||||
# Generated by Django 3.1.3 on 2020-12-05 21:36
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
('hr_module', '0003_auto_20201205_2124'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='employee',
|
||||
name='id',
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='employee',
|
||||
name='username',
|
||||
field=models.OneToOneField(default='', on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to=settings.AUTH_USER_MODEL),
|
||||
),
|
||||
]
|
Loading…
Reference in New Issue
Block a user