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 ### Setup
Install a virtualenv: Go to a folder and install a virtualenv:
``` ```
virtualenv env --python python3.5 && \ cd path/to/venv/folder && \
source env/bin/activate && \ virtualenv . --python python3.5 && \
pip install --requirement humans.txt 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 runserver
``` ```
```
python manage.py shell_plus --use-pythonrc
```

@ -1,10 +1,8 @@
# from cms_pages.models import Menu, CmsPage # from cms_pages.models import Menu, CmsPage
# from django.contrib import sites # from django.contrib import sites
# from django.core.files import File # from django.core.files import File
from django.core.management import BaseCommand
# from django.db import connection # from django.db import connection
# from django.db.models import Q # from django.db.models import Q
from django.utils import timezone
# from pprint import pprint, pformat # from pprint import pprint, pformat
# from wagtail.wagtailcore.models import Page # from wagtail.wagtailcore.models import Page
# import copy # import copy
@ -13,10 +11,13 @@ from django.utils import timezone
# import itertools # import itertools
# import json # import json
# import os # import os
import pydash as _; _.map = _.map_; _.filter = _.filter_
import random
# import requests # import requests
# import util # 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 from users.models import User
@ -71,7 +72,10 @@ class Command(BaseCommand):
is_active=_.sample((True, False)), 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: for user in users:
user.set_password('123') 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
django-debug-toolbar django-debug-toolbar
django-environ 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.db import models
from django.contrib.auth.models import AbstractBaseUser, BaseUserManager, AbstractUser from django.contrib.auth.models import AbstractBaseUser, BaseUserManager, AbstractUser
from django.contrib.auth.models import PermissionsMixin from django.contrib.auth.models import PermissionsMixin
from django.contrib.auth.models import Group
class UserManager(BaseUserManager): class UserManager(BaseUserManager):
@ -36,11 +35,11 @@ class User(AbstractBaseUser, PermissionsMixin):
last_name = models.CharField(max_length=255, blank=True) last_name = models.CharField(max_length=255, blank=True)
email = models.EmailField(max_length=255, unique=True, db_index=True) email = models.EmailField(max_length=255, unique=True, db_index=True)
is_active = models.BooleanField(default=True) is_active = models.BooleanField(default=True)
@property @property
def is_staff(self): def is_staff(self):
return self.is_superuser return self.is_superuser
def __str__(self): def __str__(self):
return self.email return self.email
@ -55,7 +54,7 @@ class User(AbstractBaseUser, PermissionsMixin):
objects = UserManager() objects = UserManager()
perform_objects = PerformUserManager() perform_objects = PerformUserManager()
customers_objects = CustomerUserManager() customers_objects = CustomerUserManager()
class Meta: class Meta:
verbose_name = 'Пользователь' verbose_name = 'Пользователь'
verbose_name_plural = 'Пользователи' verbose_name_plural = 'Пользователи'
@ -65,10 +64,10 @@ class Team(models.Model):
name = models.CharField(max_length=255) name = models.CharField(max_length=255)
users = models.ManyToManyField(User, related_name ='teams', blank=True) users = models.ManyToManyField(User, related_name ='teams', blank=True)
owner = models.OneToOneField(User, related_name='team', null=True) owner = models.OneToOneField(User, related_name='team', null=True)
def __str__(self): def __str__(self):
return self.name return self.name
class Meta: class Meta:
verbose_name = 'Команда' verbose_name = 'Команда'
verbose_name_plural = 'Команды' verbose_name_plural = 'Команды'

Loading…
Cancel
Save