remotes/origin/setup
ArturBaybulatov 10 years ago
commit f73c8cbb03
  1. 8
      projects/forms.py
  2. 11
      projects/migrations/0001_initial.py
  3. 35
      projects/migrations/0002_auto_20160517_0903.py
  4. 18
      projects/templates/projects/portfolio_form.html
  5. 5
      projects/urls.py
  6. 18
      projects/views.py
  7. 2
      specializations/migrations/0001_initial.py
  8. 3
      users/admin.py
  9. 12
      users/migrations/0001_initial.py
  10. 34
      users/models.py

@ -1,5 +1,5 @@
from django.forms import ModelForm
from .models import Project
from .models import Project, Portfolio
class ProjectForm(ModelForm):
class Meta:
@ -12,3 +12,9 @@ class ProjectForm(ModelForm):
# 'user',
# 'specialization',
)
class PortfolioForm(ModelForm):
class Meta:
model = Portfolio
fields = '__all__'

@ -1,7 +1,8 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.6 on 2016-05-17 09:03
# Generated by Django 1.9.6 on 2016-05-18 16:08
from __future__ import unicode_literals
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
@ -11,7 +12,8 @@ class Migration(migrations.Migration):
initial = True
dependencies = [
('specializations', '0001_initial'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('specializations', '__first__'),
]
operations = [
@ -21,6 +23,7 @@ class Migration(migrations.Migration):
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=255)),
('description', models.TextField()),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
],
),
migrations.CreateModel(
@ -28,6 +31,7 @@ class Migration(migrations.Migration):
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(
@ -37,7 +41,8 @@ class Migration(migrations.Migration):
('name', models.CharField(max_length=255)),
('price', models.DecimalField(decimal_places=2, max_digits=10)),
('text', models.TextField(blank=True)),
('specialization', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='projects', to='specializations.Specialization')),
('specialization', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='projects', to='specializations.Specialization')),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='projects', to=settings.AUTH_USER_MODEL)),
],
options={
'verbose_name_plural': 'Проекты',

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

@ -0,0 +1,18 @@
{% extends "base.html" %}
{% block content %}
<h1>Добавление</h1>
<form method="post" action="">
{{ form.errors }}
{% csrf_token %}
{% for field in form %}
<div class="row">
{{ field.label }}
{{ field }}
</div>
{% endfor %}
<input type="submit" value="Создать" />
</form>
{% endblock %}s

@ -1,11 +1,12 @@
from django.conf import urls
# from django.contrib.auth.views import login, logout
from .views import ProjectListView, ProjectDetailView, ProjectCreateView
from .views import ProjectListView, ProjectDetailView, ProjectCreateView , PortfolioCreateView
urlpatterns = [
urls.url(r'^$', ProjectListView.as_view(), name='projects-list'),
urls.url(r'^create/$', ProjectCreateView.as_view(), name='project-create'),
urls.url(r'^portfolio/create/$', PortfolioCreateView.as_view(), name='portfolio-create'),
urls.url(r'(?P<pk>\d+)$', ProjectDetailView.as_view(), name='project-detail'),
]
]

@ -1,12 +1,9 @@
from django.shortcuts import render
from django.contrib.auth.mixins import PermissionRequiredMixin
from django.views.generic import ListView, DetailView, CreateView
from django.contrib.auth.models import Permission
from django.contrib.auth.decorators import permission_required
from .models import Project
from users.models import User
from .forms import ProjectForm
from .models import Project, Portfolio
from .forms import ProjectForm, PortfolioForm
class ProjectListView(ListView):
@ -24,5 +21,16 @@ class ProjectDetailView(DetailView):
class ProjectCreateView(PermissionRequiredMixin, CreateView):
model = Project
permission_required = ['projects.add_project']
raise_exception = True
form_class = ProjectForm
success_url = '/projects/'
class PortfolioCreateView(PermissionRequiredMixin, CreateView):
model = Portfolio
form_class = PortfolioForm
permission_required = ['projects.add_portfolio']
success_url = '/projects/'

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.6 on 2016-05-17 09:03
# Generated by Django 1.9.6 on 2016-05-18 16:08
from __future__ import unicode_literals
from django.db import migrations, models

@ -1,5 +1,6 @@
from django.contrib import admin
from .models import User
from .models import User, Team
admin.site.register(User)
admin.site.register(Team)

@ -1,7 +1,8 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.6 on 2016-05-17 09:03
# Generated by Django 1.9.6 on 2016-05-18 16:08
from __future__ import unicode_literals
from django.conf import settings
from django.db import migrations, models
@ -25,7 +26,6 @@ class Migration(migrations.Migration):
('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)),
('is_admin', models.BooleanField(default=False)),
('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')),
],
@ -33,4 +33,12 @@ class Migration(migrations.Migration):
'abstract': False,
},
),
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)),
('users', models.ManyToManyField(blank=True, to=settings.AUTH_USER_MODEL)),
],
),
]

@ -15,7 +15,7 @@ class UserManager(BaseUserManager):
def create_superuser(self, email, password):
user = self.create_user(email, password)
user.is_admin = True
user.is_superuser = True
user.save(using=self._db)
return user
@ -35,12 +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)
is_admin = models.BooleanField(default=False)
@property
def is_staff(self):
return self.is_admin
return self.is_superuser
def __str__(self):
return self.email
@ -50,24 +49,17 @@ class User(AbstractBaseUser, PermissionsMixin):
def get_full_name(self):
return self.first_name + ' ' + self.last_name
# def has_perm(self, perm, obj=None):
# perm = perm.split('.')[-1]
# if self.user and not self.user.is_active:
# return False
# elif self.user and self.user.is_superuser:
# return True
# return perm in self.get_perms(obj)
#
#
def has_perm(self, perm, obj=None):
# return self.is_admin
return True
def has_module_perms(self, app_label):
return self.is_admin
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
objects = UserManager()
perform_objects = PerformUserManager()
customers_objects = CustomerUserManager()
class Team(models.Model):
name = models.CharField(max_length=255)
users = models.ManyToManyField(User, blank=True)
owner = models.OneToOneField(User, related_name='team')
def __str__(self):
return self.name

Loading…
Cancel
Save