Skip to content
Open
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
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,4 @@ db.sqlite3
staticfiles/*
.cache/*
.idea/*
*migrations*

2 changes: 1 addition & 1 deletion FreeTimeLance/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# coding=utf-8
# -*- coding: utf-8 -*-
"""
Django project to manage your work time as a freelancer and share the
information with your customer
Expand Down
2 changes: 1 addition & 1 deletion FreeTimeLance/settings.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# coding=utf-8
# -*- coding: utf-8 -*-
"""
Django settings for FreeTimeLance project.

Expand Down
2 changes: 1 addition & 1 deletion FreeTimeLance/urls.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# coding=utf-8
# -*- coding: utf-8 -*-
"""FreeTimeLance URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
Expand Down
2 changes: 1 addition & 1 deletion FreeTimeLance/wsgi.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# coding=utf-8
# -*- coding: utf-8 -*-
"""
WSGI config for FreeTimeLance project.

Expand Down
6 changes: 3 additions & 3 deletions hamster_import/hamster_import.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from .hamster_models import Facts
from project.models import Activity, Customer, Project
from project.models import Activity, Customer, FreelanceProject
try:
from urllib.request import urlopen
except ImportError:
Expand All @@ -20,7 +20,7 @@ def download_hamster_db(url, filename=settings.DATABASES['hamster']['NAME']):

def import_db_entries():
customer_names = [c.name.lower() for c in Customer.objects.all()]
project_names = [p.name.lower() for p in Project.objects.all()]
project_names = [p.name.lower() for p in FreelanceProject.objects.all()]
for fact in Facts.objects.all():
if fact.activity.name.lower() not in customer_names:
continue
Expand All @@ -33,7 +33,7 @@ def import_db_entries():
hamster_id=fact.id,
start_time=fact.start_time,
end_time=fact.end_time,
project=Project.objects.get(name__iexact=tag.name),
project=FreelanceProject.objects.get(name__iexact=tag.name),
remarks=description)
if created:
HAMSTER_LOGGER.info('Created Activitiy with hamster_id {0}'
Expand Down
81 changes: 81 additions & 0 deletions hamster_import/migrations/0001_initial.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.10.3 on 2016-12-13 14:25
from __future__ import unicode_literals

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

initial = True

dependencies = [
]

operations = [
migrations.CreateModel(
name='Activities',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.TextField(blank=True, null=True)),
('work', models.IntegerField(blank=True, null=True)),
('activity_order', models.IntegerField(blank=True, null=True)),
('deleted', models.IntegerField(blank=True, null=True)),
('search_name', models.TextField(blank=True, null=True)),
],
options={
'managed': False,
'db_table': 'activities',
},
),
migrations.CreateModel(
name='Categories',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.TextField(blank=True, null=True)),
('color_code', models.TextField(blank=True, null=True)),
('category_order', models.IntegerField(blank=True, null=True)),
('search_name', models.TextField(blank=True, null=True)),
],
options={
'managed': False,
'db_table': 'categories',
},
),
migrations.CreateModel(
name='Facts',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('start_time', models.TextField(blank=True, null=True)),
('end_time', models.TextField(blank=True, null=True)),
('description', models.TextField(blank=True, null=True)),
],
options={
'managed': False,
'db_table': 'facts',
},
),
migrations.CreateModel(
name='Tags',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.TextField()),
('autocomplete', models.NullBooleanField()),
],
options={
'managed': False,
'db_table': 'tags',
},
),
migrations.CreateModel(
name='FactTags',
fields=[
('fact', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='hamster_import.Facts')),
],
options={
'managed': False,
'db_table': 'fact_tags',
},
),
]
Empty file.
2 changes: 1 addition & 1 deletion manage.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/usr/bin/env python
# coding=utf-8
# -*- coding: utf-8 -*-
"""
Default manage.py from django
"""
Expand Down
8 changes: 4 additions & 4 deletions project/admin.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# coding=utf-8
# -*- coding: utf-8 -*-
"""
Configuration of the Admin interface
"""
from django.contrib import admin
from django.contrib.admin import ModelAdmin

from project.models import Project, Customer, Activity

from project.models import FreelanceProject, Customer, Activity, EmployeeProject

admin.site.register(Activity, ModelAdmin)
admin.site.register(Customer, ModelAdmin)
admin.site.register(Project, ModelAdmin)
admin.site.register(FreelanceProject, ModelAdmin)
admin.site.register(EmployeeProject, ModelAdmin)
62 changes: 62 additions & 0 deletions project/migrations/0001_initial.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.10.3 on 2016-12-12 10:15
from __future__ import unicode_literals

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

initial = True

dependencies = [
('invitations', '0003_auto_20151126_1523'),
('auth', '0008_alter_user_username_max_length'),
]

operations = [
migrations.CreateModel(
name='Activity',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('start_time', models.DateTimeField(verbose_name='Start time')),
('end_time', models.DateTimeField(verbose_name='End time')),
('remarks', models.TextField(verbose_name='Remarks for the done work')),
],
),
migrations.CreateModel(
name='Customer',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=250, verbose_name='Name of the customer')),
],
),
migrations.CreateModel(
name='CustomerInvitation',
fields=[
('invitation_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='invitations.Invitation')),
('customer', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='project.Customer')),
],
bases=('invitations.invitation',),
),
migrations.CreateModel(
name='Project',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=250, verbose_name='Name of the project')),
('description', models.TextField(verbose_name='Description of the target of the project')),
('start_date', models.DateField(verbose_name='Start date')),
('death_line', models.DateField(verbose_name='Death line')),
('workload', models.DurationField(verbose_name='Submitted number of working hours')),
('repository', models.URLField(verbose_name='Url of the repository')),
('customer', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='project.Customer')),
('group', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='auth.Group')),
],
),
migrations.AddField(
model_name='activity',
name='project',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='project.Project'),
),
]
74 changes: 74 additions & 0 deletions project/migrations/0001_squashed_0003_auto_20161213_1033.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.10.3 on 2016-12-16 06:57
from __future__ import unicode_literals

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

replaces = [('project', '0001_initial'), ('project', '0002_activity_hamster_id'), ('project', '0003_auto_20161213_1033')]

initial = True

dependencies = [
('auth', '0008_alter_user_username_max_length'),
('invitations', '0003_auto_20151126_1523'),
]

operations = [
migrations.CreateModel(
name='Activity',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('start_time', models.DateTimeField(verbose_name='Start time')),
('end_time', models.DateTimeField(verbose_name='End time')),
('remarks', models.TextField(verbose_name='Remarks for the done work')),
],
),
migrations.CreateModel(
name='Customer',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=250, verbose_name='Name of the customer')),
],
),
migrations.CreateModel(
name='CustomerInvitation',
fields=[
('invitation_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='invitations.Invitation')),
('customer', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='project.Customer')),
],
bases=('invitations.invitation',),
),
migrations.CreateModel(
name='Project',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=250, verbose_name='Name of the project')),
('description', models.TextField(verbose_name='Description of the target of the project')),
('start_date', models.DateField(verbose_name='Start date')),
('death_line', models.DateField(verbose_name='Death line')),
('workload', models.DurationField(verbose_name='Submitted number of working hours')),
('repository', models.URLField(verbose_name='Url of the repository')),
('customer', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='project.Customer')),
('group', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='auth.Group')),
],
),
migrations.AddField(
model_name='activity',
name='project',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='project.Project'),
),
migrations.AddField(
model_name='activity',
name='hamster_id',
field=models.IntegerField(blank=True, null=True, unique=True, verbose_name='Id of hamster activity'),
),
migrations.AlterField(
model_name='activity',
name='remarks',
field=models.TextField(null=True, verbose_name='Remarks for the done work'),
),
]
20 changes: 20 additions & 0 deletions project/migrations/0002_activity_hamster_id.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.10.3 on 2016-12-13 10:23
from __future__ import unicode_literals

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('project', '0001_initial'),
]

operations = [
migrations.AddField(
model_name='activity',
name='hamster_id',
field=models.IntegerField(blank=True, null=True, unique=True, verbose_name='Id of hamster activity'),
),
]
69 changes: 69 additions & 0 deletions project/migrations/0002_auto_20180426_1814.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# Generated by Django 2.0 on 2018-04-26 18:14

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

dependencies = [
('auth', '0009_alter_user_last_name_max_length'),
('project', '0001_squashed_0003_auto_20161213_1033'),
]

operations = [
migrations.CreateModel(
name='BaseProject',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=250, verbose_name='Name of the project')),
('description', models.TextField(verbose_name='Description of the target of the project')),
],
),
migrations.RemoveField(
model_name='project',
name='customer',
),
migrations.RemoveField(
model_name='project',
name='group',
),
migrations.AlterField(
model_name='activity',
name='project',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='project.BaseProject'),
),
migrations.CreateModel(
name='EmployeeProject',
fields=[
('baseproject_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='project.BaseProject')),
('weekly_workload', models.DurationField(verbose_name='Normal number of weekly working hours')),
('vacation_days', models.IntegerField(verbose_name='Number of vacation days per year')),
],
bases=('project.baseproject',),
),
migrations.CreateModel(
name='FreelanceProject',
fields=[
('baseproject_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='project.BaseProject')),
('start_date', models.DateField(verbose_name='Start date')),
('death_line', models.DateField(verbose_name='Death line')),
('workload', models.DurationField(verbose_name='Submitted number of working hours')),
('repository', models.URLField(verbose_name='Url of the repository')),
],
bases=('project.baseproject',),
),
migrations.DeleteModel(
name='Project',
),
migrations.AddField(
model_name='baseproject',
name='customer',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='project.Customer'),
),
migrations.AddField(
model_name='baseproject',
name='group',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='auth.Group'),
),
]
Loading