commit
95b2beec5a
29 changed files with 491 additions and 235 deletions
@ -1,2 +1,4 @@ |
||||
*.pyc |
||||
.idea/ |
||||
.idea/ |
||||
env/ |
||||
|
||||
|
||||
@ -1,135 +0,0 @@ |
||||
import rest_framework_filters import FilterSet |
||||
|
||||
|
||||
class Project(FilterSet): |
||||
class Meta: |
||||
model = |
||||
# |
||||
# from common import models |
||||
# |
||||
# |
||||
# class Category(filters.FilterSet): |
||||
# class Meta: |
||||
# model = models.Category |
||||
# |
||||
# # icon = ... |
||||
# adverts = filters.RelatedFilter('api.filters.Advert') |
||||
# children = filters.RelatedFilter('api.filters.Category') |
||||
# hidden = filters.AllLookupsFilter() |
||||
# level = filters.AllLookupsFilter() |
||||
# lft = filters.AllLookupsFilter() |
||||
# name = filters.AllLookupsFilter() |
||||
# parent = filters.RelatedFilter('api.filters.Category') |
||||
# rght = filters.AllLookupsFilter() |
||||
# slug = filters.AllLookupsFilter() |
||||
# tree_id = filters.AllLookupsFilter() |
||||
# |
||||
# |
||||
# class Advert(filters.FilterSet): |
||||
# class Meta: |
||||
# model = models.Advert |
||||
# |
||||
# body = filters.AllLookupsFilter() |
||||
# category = filters.RelatedFilter('api.filters.Category') |
||||
# colors = filters.RelatedFilter('api.filters.Color') |
||||
# contact_name = filters.AllLookupsFilter() |
||||
# contact_phone = filters.RelatedFilter('api.filters.ContactPhone') |
||||
# created_at = filters.AllLookupsFilter() |
||||
# expires_at = filters.AllLookupsFilter() |
||||
# gender = filters.AllLookupsFilter() |
||||
# id = filters.AllLookupsFilter() |
||||
# initial_price = filters.AllLookupsFilter() |
||||
# location = filters.RelatedFilter('api.filters.Location') |
||||
# pictures = filters.RelatedFilter('api.filters.AdvertPicture') |
||||
# price = filters.AllLookupsFilter() |
||||
# promos = filters.RelatedFilter('api.filters.Promo') |
||||
# receive_email_notifications = filters.AllLookupsFilter() |
||||
# reservation = filters.RelatedFilter('api.filters.Reservation') |
||||
# saved_by = filters.RelatedFilter('api.filters.User') |
||||
# state = filters.AllLookupsFilter() |
||||
# title = filters.AllLookupsFilter() |
||||
# updated_at = filters.AllLookupsFilter() |
||||
# user = filters.RelatedFilter('api.filters.User') |
||||
# |
||||
# |
||||
# class AdvertPicture(filters.FilterSet): |
||||
# class Meta: |
||||
# model = models.AdvertPicture |
||||
# |
||||
# # file = ... |
||||
# active = filters.AllLookupsFilter() |
||||
# advert = filters.RelatedFilter('api.filters.Advert') |
||||
# id = filters.AllLookupsFilter() |
||||
# main = filters.AllLookupsFilter() |
||||
# uploaded_at = filters.AllLookupsFilter() |
||||
# user = filters.RelatedFilter('api.filters.User') |
||||
# |
||||
# |
||||
# class Color(filters.FilterSet): |
||||
# class Meta: |
||||
# model = models.Color |
||||
# |
||||
# id = filters.AllLookupsFilter() |
||||
# name = filters.AllLookupsFilter() |
||||
# value = filters.AllLookupsFilter() |
||||
# |
||||
# |
||||
# class Location(filters.FilterSet): |
||||
# class Meta: |
||||
# model = models.Location |
||||
# |
||||
# adverts = filters.RelatedFilter('api.filters.Advert') |
||||
# # children = filters.RelatedFilter('api.filters.Location') |
||||
# id = filters.AllLookupsFilter() |
||||
# level = filters.AllLookupsFilter() |
||||
# lft = filters.AllLookupsFilter() |
||||
# name = filters.AllLookupsFilter() |
||||
# parent = filters.RelatedFilter('api.filters.Location') |
||||
# rght = filters.AllLookupsFilter() |
||||
# subway_line_color = filters.AllLookupsFilter() |
||||
# tree_id = filters.AllLookupsFilter() |
||||
# type = filters.AllLookupsFilter() |
||||
# users = filters.RelatedFilter('api.filters.User') |
||||
# |
||||
# |
||||
# class User(filters.FilterSet): |
||||
# class Meta: |
||||
# model = models.User |
||||
# |
||||
# adverts = filters.RelatedFilter('api.filters.Advert') |
||||
# contact_phones = filters.RelatedFilter('api.filters.ContactPhone') |
||||
# date_joined = filters.AllLookupsFilter() |
||||
# email = filters.AllLookupsFilter() |
||||
# first_name = filters.AllLookupsFilter() |
||||
# id = filters.AllLookupsFilter() |
||||
# is_active = filters.AllLookupsFilter() |
||||
# is_staff = filters.AllLookupsFilter() |
||||
# is_superuser = filters.AllLookupsFilter() |
||||
# last_login = filters.AllLookupsFilter() |
||||
# location = filters.RelatedFilter('api.filters.Location') |
||||
# password = filters.AllLookupsFilter() |
||||
# promos = filters.RelatedFilter('api.filters.Promo') |
||||
# social_auth_id = filters.AllLookupsFilter() |
||||
# subscribed_to_newsletter = filters.AllLookupsFilter() |
||||
# type = filters.AllLookupsFilter() |
||||
# username = filters.AllLookupsFilter() |
||||
# |
||||
# |
||||
# class ContactPhone(filters.FilterSet): |
||||
# class Meta: |
||||
# model = models.ContactPhone |
||||
# |
||||
# |
||||
# class Reservation(filters.FilterSet): |
||||
# class Meta: |
||||
# model = models.Reservation |
||||
# |
||||
# |
||||
# class Promo(filters.FilterSet): |
||||
# class Meta: |
||||
# model = models.Promo |
||||
# |
||||
# |
||||
# class PromoType(filters.FilterSet): |
||||
# class Meta: |
||||
# model = models.PromoType |
||||
@ -1,51 +0,0 @@ |
||||
from rest_framework.serializers import ModelSerializer |
||||
|
||||
from projects.models import Project |
||||
from specializations.models import Specialization |
||||
from users.models import CustomUser |
||||
|
||||
|
||||
class CustomUserSerializer(ModelSerializer): |
||||
class Meta: |
||||
model = CustomUser |
||||
|
||||
fields = ( |
||||
'id', |
||||
'email', |
||||
'firstname', |
||||
'is_active', |
||||
'is_admin', |
||||
'lastname', |
||||
) |
||||
|
||||
|
||||
class SpecializationSerializer(ModelSerializer): |
||||
class Meta: |
||||
model = Specialization |
||||
|
||||
fields = ( |
||||
'id', |
||||
'level', |
||||
'lft', |
||||
'name', |
||||
'parent', |
||||
'rght', |
||||
'tree_id', |
||||
) |
||||
|
||||
|
||||
class ProjectSerializer(ModelSerializer): |
||||
class Meta: |
||||
model = Project |
||||
|
||||
fields = ( |
||||
'id', |
||||
'name', |
||||
'price', |
||||
'specialization', |
||||
'text', |
||||
'user', |
||||
) |
||||
|
||||
user = CustomUserSerializer() |
||||
specialization = SpecializationSerializer() |
||||
@ -1,8 +1,12 @@ |
||||
from rest_framework import routers |
||||
|
||||
from .views import ProjectViewSet |
||||
from .views import ProjectViewSet, SpecializationViewSet, UserViewSet |
||||
|
||||
|
||||
router = routers.DefaultRouter() |
||||
|
||||
router.register(r'projects', ProjectViewSet) |
||||
router.register(r'specializations', SpecializationViewSet) |
||||
router.register(r'users', UserViewSet) |
||||
|
||||
urlpatterns = router.urls |
||||
|
||||
@ -1,10 +1,31 @@ |
||||
from rest_framework.viewsets import ModelViewSet |
||||
|
||||
from projects.models import Project |
||||
from .serializers import ProjectSerializer |
||||
# from .filters import ProjectFilter |
||||
from projects.serializers import ProjectSerializer |
||||
from projects.filters import ProjectFilterSet |
||||
|
||||
from specializations.models import Specialization |
||||
from specializations.serializers import SpecializationSerializer |
||||
from specializations.filters import SpecializationFilterSet |
||||
|
||||
from users.models import User |
||||
from users.serializers import UserSerializer |
||||
from users.filters import UserFilterSet |
||||
|
||||
|
||||
class ProjectViewSet(ModelViewSet): |
||||
queryset = Project.objects.all() |
||||
serializer_class = ProjectSerializer |
||||
# filter_class = ProjectFilter |
||||
filter_class = ProjectFilterSet |
||||
|
||||
|
||||
class SpecializationViewSet(ModelViewSet): |
||||
queryset = Specialization.objects.all() |
||||
serializer_class = SpecializationSerializer |
||||
filter_class = SpecializationFilterSet |
||||
|
||||
|
||||
class UserViewSet(ModelViewSet): |
||||
queryset = User.objects.all() |
||||
serializer_class = UserSerializer |
||||
filter_class = UserFilterSet |
||||
|
||||
@ -0,0 +1,78 @@ |
||||
# 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 |
||||
# import eav.models |
||||
# import inspect |
||||
# import itertools |
||||
# import json |
||||
# import os |
||||
import pydash as _; _.map = _.map_; _.filter = _.filter_ |
||||
import random |
||||
# import requests |
||||
# import util |
||||
|
||||
from users.models import User |
||||
|
||||
|
||||
class Command(BaseCommand): |
||||
def handle(self, *args, **options): |
||||
print('---------------------------------------') |
||||
print('Generating data...') |
||||
print('---------------------------------------') |
||||
|
||||
|
||||
def take(coll, n): |
||||
chunk = coll[0:n] |
||||
del coll[0:n] |
||||
return chunk |
||||
|
||||
def take_random(coll, n): |
||||
if n == 0: |
||||
return [] |
||||
|
||||
chunk = _.sample(coll, n) |
||||
|
||||
for item in chunk: |
||||
coll.remove(item) |
||||
|
||||
return chunk |
||||
|
||||
def take_one_random(coll): |
||||
if len(coll) == 0: |
||||
return None |
||||
|
||||
return coll.pop(_.random(0, len(coll)-1)) |
||||
|
||||
def random_phone(): |
||||
return '+7' + str(_.sample((917, 964, 965, 987, 912, 935))) + str(_.random(1000000, 9999999)) |
||||
|
||||
def random_date(): |
||||
return timezone.datetime(_.random(2012, 2018), _.random(1, 12), _.random(1, 28)) |
||||
|
||||
def random_amount(): |
||||
return random.random() * random.choice((100, 1000, 10000)) |
||||
|
||||
|
||||
User.objects.create_superuser('admin@example.com', '123456') |
||||
|
||||
def create_user(i): |
||||
username = 'user-%s' % i |
||||
|
||||
return User.objects.create( |
||||
first_name='User-%s' % i, |
||||
email='%s@example.com' % username, |
||||
is_active=_.sample((True, False)), |
||||
) |
||||
|
||||
users = _.times(create_user, 100) |
||||
|
||||
for user in users: |
||||
user.set_password('123') |
||||
user.save() |
||||
@ -0,0 +1,35 @@ |
||||
window.g = window |
||||
|
||||
var app = angular.module('app', []) |
||||
|
||||
|
||||
app.config(['$interpolateProvider', '$httpProvider', |
||||
function($interpolateProvider, $httpProvider) { |
||||
$interpolateProvider.startSymbol('{(') |
||||
$interpolateProvider.endSymbol(')}') |
||||
|
||||
$httpProvider.defaults.xsrfCookieName = 'csrftoken' |
||||
$httpProvider.defaults.xsrfHeaderName = 'X-CSRFToken' |
||||
|
||||
$httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest' |
||||
|
||||
//$routeProvider.when('/', {templateUrl: '.....'})
|
||||
}, |
||||
]) |
||||
|
||||
|
||||
app.run(['$rootScope', '$timeout', '$http', |
||||
function run($rootScope, $timeout, $http) { |
||||
g.$http = $http // Debug
|
||||
g.$timeout = $timeout // Debug
|
||||
}, |
||||
]) |
||||
|
||||
|
||||
app.controller('TestCtrl', ['$scope', '$http', function TestCtrl($scope, $http) { |
||||
var test = g.test = this |
||||
|
||||
$http.get('/api/users/?is_admin=False').then(function(res) { |
||||
test.users = res.data.results |
||||
}) |
||||
}]) |
||||
@ -0,0 +1,12 @@ |
||||
from rest_framework_filters import FilterSet, RelatedFilter, AllLookupsFilter |
||||
from .models import Project |
||||
|
||||
class ProjectFilterSet(FilterSet): |
||||
name = AllLookupsFilter() |
||||
price = AllLookupsFilter() |
||||
text = AllLookupsFilter() |
||||
user = RelatedFilter('users.filters.UserFilterSet') |
||||
specialization = RelatedFilter('specializations.filters.SpecializationFilterSet') |
||||
|
||||
class Meta: |
||||
model = Project |
||||
@ -0,0 +1,47 @@ |
||||
# -*- coding: utf-8 -*- |
||||
# Generated by Django 1.9.6 on 2016-05-17 09:03 |
||||
from __future__ import unicode_literals |
||||
|
||||
from django.db import migrations, models |
||||
import django.db.models.deletion |
||||
|
||||
|
||||
class Migration(migrations.Migration): |
||||
|
||||
initial = True |
||||
|
||||
dependencies = [ |
||||
('specializations', '0001_initial'), |
||||
] |
||||
|
||||
operations = [ |
||||
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')), |
||||
], |
||||
), |
||||
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)), |
||||
('specialization', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='projects', to='specializations.Specialization')), |
||||
], |
||||
options={ |
||||
'verbose_name_plural': 'Проекты', |
||||
'verbose_name': 'Проект', |
||||
}, |
||||
), |
||||
] |
||||
@ -0,0 +1,35 @@ |
||||
# -*- 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,24 @@ |
||||
from rest_framework.serializers import ModelSerializer |
||||
|
||||
from .models import Project |
||||
from specializations.serializers import SpecializationSerializer |
||||
from users.serializers import UserSerializer |
||||
|
||||
class ProjectSerializer(ModelSerializer): |
||||
user = UserSerializer() |
||||
specialization = SpecializationSerializer() |
||||
|
||||
class Meta: |
||||
model = Project |
||||
|
||||
fields = ( |
||||
'id', |
||||
'name', |
||||
'price', |
||||
'specialization', |
||||
'text', |
||||
'user', |
||||
) |
||||
|
||||
def create(self, validated_data): |
||||
return Project.objects.create(**validated_data) |
||||
@ -0,0 +1,16 @@ |
||||
from rest_framework_filters import FilterSet, RelatedFilter, AllLookupsFilter |
||||
from .models import Specialization |
||||
|
||||
class SpecializationFilterSet(FilterSet): |
||||
id = AllLookupsFilter() |
||||
children = RelatedFilter('specializations.filters.SpecializationFilterSet') |
||||
level = AllLookupsFilter() |
||||
lft = AllLookupsFilter() |
||||
name = AllLookupsFilter() |
||||
parent = RelatedFilter('specializations.filters.SpecializationFilterSet') |
||||
projects = RelatedFilter('projects.filters.ProjectFilterSet') |
||||
rght = AllLookupsFilter() |
||||
tree_id = AllLookupsFilter() |
||||
|
||||
class Meta: |
||||
model = Specialization |
||||
@ -0,0 +1,33 @@ |
||||
# -*- coding: utf-8 -*- |
||||
# Generated by Django 1.9.6 on 2016-05-17 09:03 |
||||
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,20 @@ |
||||
from rest_framework.serializers import ModelSerializer |
||||
|
||||
from .models import Specialization |
||||
|
||||
|
||||
class SpecializationSerializer(ModelSerializer): |
||||
class Meta: |
||||
model = Specialization |
||||
|
||||
fields = ( |
||||
'id', |
||||
'children', |
||||
'level', |
||||
'lft', |
||||
'name', |
||||
'parent', |
||||
'projects', |
||||
'rght', |
||||
'tree_id', |
||||
) |
||||
@ -0,0 +1,25 @@ |
||||
{% load staticfiles %} |
||||
|
||||
<!doctype html> |
||||
<html ng-app='app'> |
||||
<head> |
||||
<meta charset='utf-8'> |
||||
<meta http-equiv='X-UA-Compatible' content='IE=edge, chrome=1'> |
||||
<meta name='viewport' content='width=device-width, initial-scale=1'> |
||||
<meta name='viewport' content='initial-scale=1.0, user-scalable=no, maximum-scale=1'> |
||||
<title></title> |
||||
|
||||
<style>[ng-cloak] {display: none !important}</style> <!-- Prevent Angular from displaying unrendered template expressions --> |
||||
|
||||
<!--<link rel='stylesheet' href='/assets/css/style.css'>--> |
||||
</head> |
||||
|
||||
<body> |
||||
{% block content %}{% endblock %} |
||||
|
||||
<!--<script src='/assets/lib/lodash/lodash.js'></script> |
||||
<script src='/assets/lib/lodash/lodash.fp.js'></script>--> |
||||
<script src='{% static 'lib/angular/angular.js' %}'></script> |
||||
<script src='{% static 'index.js' %}'></script> |
||||
</body> |
||||
</html> |
||||
@ -0,0 +1,11 @@ |
||||
{% extends '_layout.html' %} |
||||
|
||||
{% load staticfiles %} |
||||
|
||||
{% block content %} |
||||
<div ng-controller='TestCtrl as test'> |
||||
<ul ng-repeat='user in test.users'> |
||||
<li>{( user.first_name )}</li> |
||||
</ul> |
||||
</div> |
||||
{% endblock %} |
||||
@ -1,5 +1,5 @@ |
||||
from django.contrib import admin |
||||
|
||||
from .models import CustomUser |
||||
from .models import User |
||||
|
||||
admin.site.register(CustomUser) |
||||
admin.site.register(User) |
||||
|
||||
@ -0,0 +1,14 @@ |
||||
from rest_framework_filters import FilterSet, RelatedFilter, AllLookupsFilter |
||||
from .models import User |
||||
|
||||
class UserFilterSet(FilterSet): |
||||
id = AllLookupsFilter() |
||||
email = AllLookupsFilter() |
||||
first_name = AllLookupsFilter() |
||||
is_active = AllLookupsFilter() |
||||
is_admin = AllLookupsFilter() |
||||
last_name = AllLookupsFilter() |
||||
projects = RelatedFilter('projects.filters.ProjectFilterSet') |
||||
|
||||
class Meta: |
||||
model = User |
||||
@ -0,0 +1,36 @@ |
||||
# -*- coding: utf-8 -*- |
||||
# Generated by Django 1.9.6 on 2016-05-17 09:03 |
||||
from __future__ import unicode_literals |
||||
|
||||
from django.db import migrations, models |
||||
|
||||
|
||||
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)), |
||||
('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')), |
||||
], |
||||
options={ |
||||
'abstract': False, |
||||
}, |
||||
), |
||||
] |
||||
@ -0,0 +1,41 @@ |
||||
from rest_framework.serializers import ModelSerializer |
||||
|
||||
from .models import User |
||||
from projects.models import Project |
||||
|
||||
|
||||
class UserSerializer(ModelSerializer): |
||||
class Meta: |
||||
model = User |
||||
|
||||
fields = ( |
||||
'id', |
||||
'email', |
||||
'first_name', |
||||
'is_active', |
||||
'is_admin', |
||||
'last_name', |
||||
'projects', |
||||
) |
||||
|
||||
read_only_fields = ( |
||||
'is_active', |
||||
'is_admin', |
||||
'projects', |
||||
) |
||||
|
||||
def create(self, validated_data): |
||||
return User.objects.create(**validated_data) |
||||
|
||||
# def update(self, inst, validated_data): |
||||
# inst.email = validated_data.get('email', inst.email) |
||||
# inst.first_name = validated_data.get('first_name', inst.first_name) |
||||
# inst.is_active = validated_data.get('is_active', inst.is_active) |
||||
# inst.last_name = validated_data.get('last_name', inst.last_name) |
||||
# # inst.projects = validated_data.get('projects', inst.projects) |
||||
# |
||||
# inst.save() |
||||
# |
||||
# return inst |
||||
|
||||
# import code; code.interact(local=dict(globals(), **locals())) |
||||
@ -1,25 +1,25 @@ |
||||
from django.shortcuts import render |
||||
from django.contrib.auth.models import Group |
||||
from django.views.generic import ListView, DetailView |
||||
from .models import CustomUser |
||||
from .models import User |
||||
|
||||
|
||||
class UserListView(ListView): |
||||
model = CustomUser |
||||
model = User |
||||
template_name = 'users/users_list.html' |
||||
context_object_name = 'users' |
||||
|
||||
|
||||
class UserInfoListView(ListView): |
||||
model = CustomUser |
||||
model = User |
||||
template_name = 'users/users_info_list.html' |
||||
|
||||
def get_context_data(self, **kwargs): |
||||
context = super(UserInfoListView, self).get_context_data(**kwargs) |
||||
context['groups'] = Group.objects.all() |
||||
context['performers'] = CustomUser.perform_objects.all() |
||||
context['customers'] = CustomUser.customers_objects.all() |
||||
context['performers'] = User.perform_objects.all() |
||||
context['customers'] = User.customers_objects.all() |
||||
return context |
||||
|
||||
class UserDetailView(DetailView): |
||||
model = CustomUser |
||||
model = User |
||||
|
||||
Loading…
Reference in new issue