diff --git a/projects/admin.py b/projects/admin.py index 2e9c486..5e6a1b6 100644 --- a/projects/admin.py +++ b/projects/admin.py @@ -1,7 +1,8 @@ from django.contrib import admin -from .models import Project, Portfolio, PortfolioPhoto +from .models import Project, Portfolio, PortfolioPhoto, Answer admin.site.register(Project) +admin.site.register(Answer) admin.site.register(Portfolio) admin.site.register(PortfolioPhoto) diff --git a/projects/migrations/0002_answer.py b/projects/migrations/0002_answer.py new file mode 100644 index 0000000..7315213 --- /dev/null +++ b/projects/migrations/0002_answer.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.6 on 2016-05-19 08:44 +from __future__ import unicode_literals + +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), + ('projects', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='Answer', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('cost', models.DecimalField(decimal_places=2, max_digits=10)), + ('cost_type', models.CharField(choices=[('RUR', 'rur'), ('USD', 'usd'), ('EUR', 'eur')], default='RUR', max_length=5)), + ('text', models.TextField()), + ('term', models.DecimalField(decimal_places=2, max_digits=10)), + ('term_type', models.CharField(choices=[('HOUR', 'hour'), ('DAY', 'day'), ('MONTH', 'month')], default='hour', max_length=10)), + ('project', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='answers', to='projects.Project')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='answers', to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/projects/models.py b/projects/models.py index 8a6b56a..7112416 100644 --- a/projects/models.py +++ b/projects/models.py @@ -23,6 +23,34 @@ class Project(models.Model): verbose_name_plural = 'Проекты' +class Answer(models.Model): + COST_TYPE_CHOICES = ( + ('RUR', 'rur'), + ('USD', 'usd'), + ('EUR', 'eur'), + ) + + TERM_TYPE_CHOICES = ( + ('HOUR', 'hour'), + ('DAY', 'day'), + ('MONTH', 'month'), + + ) + cost = models.DecimalField(max_digits=10, decimal_places=2) + cost_type = models.CharField(max_length=5, choices=COST_TYPE_CHOICES, default='RUR') + text = models.TextField() + term = models.DecimalField(max_digits=10, decimal_places=2) + term_type = models.CharField(max_length=10, choices=TERM_TYPE_CHOICES, default='hour') + project = models.ForeignKey(Project, related_name='answers') + user = models.ForeignKey(User, related_name='answers') + + def __str__(self): + return self.text + + class Meta: + verbose_name = 'Ответ к проекту' + verbose_name_plural = 'Ответы к проектам' + class Portfolio(models.Model): name = models.CharField(max_length=255) description = models.TextField() diff --git a/users/migrations/0002_auto_20160519_0807.py b/users/migrations/0002_auto_20160519_0807.py new file mode 100644 index 0000000..1a60afb --- /dev/null +++ b/users/migrations/0002_auto_20160519_0807.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.6 on 2016-05-19 08:07 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('users', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='team', + name='owner', + field=models.OneToOneField(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='team', to=settings.AUTH_USER_MODEL), + ), + migrations.AlterField( + model_name='team', + name='users', + field=models.ManyToManyField(blank=True, related_name='teams', to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/users/models.py b/users/models.py index d2a74b4..5cd072e 100644 --- a/users/models.py +++ b/users/models.py @@ -55,11 +55,24 @@ class User(AbstractBaseUser, PermissionsMixin): perform_objects = PerformUserManager() customers_objects = CustomerUserManager() + class Meta: + verbose_name = 'Пользователь' + verbose_name_plural = 'Пользователи' + class Team(models.Model): name = models.CharField(max_length=255) - users = models.ManyToManyField(User, blank=True) - owner = models.OneToOneField(User, related_name='team') + users = models.ManyToManyField(User, related_name ='teams', blank=True) + owner = models.OneToOneField(User, related_name='team', null=True) def __str__(self): return self.name +<<<<<<< HEAD + + class Meta: + verbose_name = 'Команда' + verbose_name_plural = 'Команды' + + +======= +>>>>>>> f73c8cbb03160dbcba5094bb2be837d43d1e5f31