remotes/origin/setup
Mukhtar 10 years ago
commit b389cc0f14
  1. 13
      README.md
  2. 14
      archilance/management/commands/seed_data.py
  3. 61
      projects/migrations/0001_initial.py
  4. 35
      projects/migrations/0002_auto_20160519_1022.py
  5. 1
      requirements/humans.txt
  6. 33
      specializations/migrations/0001_initial.py
  7. 51
      users/migrations/0001_initial.py
  8. 11
      users/models.py

@ -1,11 +1,12 @@
### Setup
Install a virtualenv:
Go to a folder and install a virtualenv:
```
virtualenv env --python python3.5 && \
source env/bin/activate && \
pip install --requirement humans.txt
cd path/to/venv/folder && \
virtualenv . --python python3.5 && \
source bin/activate && \
pip install --requirement path/to/requirements.txt
```
```
@ -16,3 +17,7 @@ python manage.py migrate
```
python manage.py runserver
```
```
python manage.py shell_plus --use-pythonrc
```

@ -1,10 +1,8 @@
# from cms_pages.models import Menu, CmsPage
# from django.contrib import sites
# from django.core.files import File
from django.core.management import BaseCommand
# from django.db import connection
# from django.db.models import Q
from django.utils import timezone
# from pprint import pprint, pformat
# from wagtail.wagtailcore.models import Page
# import copy
@ -13,10 +11,13 @@ from django.utils import timezone
# import itertools
# import json
# import os
import pydash as _; _.map = _.map_; _.filter = _.filter_
import random
# import requests
# import util
from django.core.management import BaseCommand
from django.utils import timezone
import pydash as _; _.map = _.map_; _.filter = _.filter_
import random
from django.contrib.auth.models import Group
from users.models import User
@ -71,7 +72,10 @@ class Command(BaseCommand):
is_active=_.sample((True, False)),
)
users = _.times(create_user, 100)
Group.objects.create(name='Исполнители')
Group.objects.create(name='Заказчики')
users = _.times(create_user, 50)
for user in users:
user.set_password('123')

@ -0,0 +1,61 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.6 on 2016-05-19 10:22
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='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)),
],
options={
'verbose_name': 'Ответ к проекту',
'verbose_name_plural': 'Ответы к проектам',
},
),
migrations.CreateModel(
name='Portfolio',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=255)),
('description', models.TextField()),
],
),
migrations.CreateModel(
name='PortfolioPhoto',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('img', models.ImageField(upload_to='projects/portfolio')),
('portfolio', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='projects.Portfolio')),
],
),
migrations.CreateModel(
name='Project',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=255)),
('price', models.DecimalField(decimal_places=2, max_digits=10)),
('text', models.TextField(blank=True)),
],
options={
'verbose_name': 'Проект',
'verbose_name_plural': 'Проекты',
},
),
]

@ -0,0 +1,35 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.6 on 2016-05-19 10:22
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):
initial = True
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('projects', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='portfolio',
name='user',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
),
migrations.AddField(
model_name='answer',
name='project',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='answers', to='projects.Project'),
),
migrations.AddField(
model_name='answer',
name='user',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='answers', to=settings.AUTH_USER_MODEL),
),
]

@ -1,4 +1,3 @@
#django-guardian
Django
django-debug-toolbar
django-environ

@ -0,0 +1,33 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.6 on 2016-05-19 10:22
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
import mptt.fields
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Specialization',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=100)),
('lft', models.PositiveIntegerField(db_index=True, editable=False)),
('rght', models.PositiveIntegerField(db_index=True, editable=False)),
('tree_id', models.PositiveIntegerField(db_index=True, editable=False)),
('level', models.PositiveIntegerField(db_index=True, editable=False)),
('parent', mptt.fields.TreeForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='children', to='specializations.Specialization')),
],
options={
'abstract': False,
},
),
]

@ -0,0 +1,51 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.6 on 2016-05-19 10:22
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):
initial = True
dependencies = [
('auth', '0007_alter_validators_add_error_messages'),
]
operations = [
migrations.CreateModel(
name='User',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('password', models.CharField(max_length=128, verbose_name='password')),
('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')),
('first_name', models.CharField(blank=True, max_length=255)),
('last_name', models.CharField(blank=True, max_length=255)),
('email', models.EmailField(db_index=True, max_length=255, unique=True)),
('is_active', models.BooleanField(default=True)),
('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups')),
('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions')),
],
options={
'verbose_name': 'Пользователь',
'verbose_name_plural': 'Пользователи',
},
),
migrations.CreateModel(
name='Team',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=255)),
('owner', models.OneToOneField(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='team', to=settings.AUTH_USER_MODEL)),
('users', models.ManyToManyField(blank=True, related_name='teams', to=settings.AUTH_USER_MODEL)),
],
options={
'verbose_name': 'Команда',
'verbose_name_plural': 'Команды',
},
),
]

@ -1,7 +1,6 @@
from django.db import models
from django.contrib.auth.models import AbstractBaseUser, BaseUserManager, AbstractUser
from django.contrib.auth.models import PermissionsMixin
from django.contrib.auth.models import Group
class UserManager(BaseUserManager):
@ -36,11 +35,11 @@ class User(AbstractBaseUser, PermissionsMixin):
last_name = models.CharField(max_length=255, blank=True)
email = models.EmailField(max_length=255, unique=True, db_index=True)
is_active = models.BooleanField(default=True)
@property
def is_staff(self):
return self.is_superuser
def __str__(self):
return self.email
@ -55,7 +54,7 @@ class User(AbstractBaseUser, PermissionsMixin):
objects = UserManager()
perform_objects = PerformUserManager()
customers_objects = CustomerUserManager()
class Meta:
verbose_name = 'Пользователь'
verbose_name_plural = 'Пользователи'
@ -65,10 +64,10 @@ class Team(models.Model):
name = models.CharField(max_length=255)
users = models.ManyToManyField(User, related_name ='teams', blank=True)
owner = models.OneToOneField(User, related_name='team', null=True)
def __str__(self):
return self.name
class Meta:
verbose_name = 'Команда'
verbose_name_plural = 'Команды'

Loading…
Cancel
Save