diff --git a/.gitignore b/.gitignore index 26342cc..7598248 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ *.pyc *.swp *.sqlite3 +ponyconf/*_settings.py diff --git a/accounts/apps.py b/accounts/apps.py index f4628d2..ea7a982 100644 --- a/accounts/apps.py +++ b/accounts/apps.py @@ -5,4 +5,4 @@ class AccountsConfig(AppConfig): name = 'accounts' def ready(self): - import accounts.signals # noqa + import accounts.signals diff --git a/accounts/migrations/0001_initial.py b/accounts/migrations/0001_initial.py index e46e974..c4978e8 100644 --- a/accounts/migrations/0001_initial.py +++ b/accounts/migrations/0001_initial.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- -# Generated by Django 1.9.7 on 2016-06-13 18:50 +# Generated by Django 1.9.7 on 2016-06-14 19:13 from __future__ import unicode_literals -import accounts.models +import accounts.utils from django.conf import settings import django.contrib.sites.managers from django.db import migrations, models @@ -16,7 +16,6 @@ class Migration(migrations.Migration): dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('sites', '0002_alter_domain_unique'), ] operations = [ @@ -29,8 +28,6 @@ class Migration(migrations.Migration): ('transport', models.IntegerField(blank=True, choices=[(1, 'train'), (2, 'plane')], null=True)), ('connector', models.IntegerField(blank=True, choices=[(1, 'VGA'), (2, 'HDMI'), (3, 'miniDP')], null=True)), ('constraints', models.TextField(blank=True)), - ('site', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='sites.Site')), - ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], managers=[ ('objects', django.db.models.manager.Manager()), @@ -42,12 +39,8 @@ class Migration(migrations.Migration): fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('biography', models.TextField(blank=True, verbose_name='Biography')), - ('email_token', models.CharField(default=accounts.models.generate_user_uid, max_length=12)), + ('email_token', models.CharField(default=accounts.utils.generate_user_uid, max_length=12)), ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), - migrations.AlterUniqueTogether( - name='participation', - unique_together=set([('site', 'user')]), - ), ] diff --git a/accounts/migrations/0002_auto_20160614_1913.py b/accounts/migrations/0002_auto_20160614_1913.py new file mode 100644 index 0000000..7601f21 --- /dev/null +++ b/accounts/migrations/0002_auto_20160614_1913.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-06-14 19:13 +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), + ('proposals', '0001_initial'), + ('accounts', '0001_initial'), + ('sites', '0002_alter_domain_unique'), + ] + + operations = [ + migrations.AddField( + model_name='participation', + name='review_topics', + field=models.ManyToManyField(blank=True, to='proposals.Topic'), + ), + migrations.AddField( + model_name='participation', + name='site', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='sites.Site'), + ), + migrations.AddField( + model_name='participation', + name='user', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), + ), + migrations.AlterUniqueTogether( + name='participation', + unique_together=set([('site', 'user')]), + ), + ] diff --git a/accounts/models.py b/accounts/models.py index 0cafe85..55f02ac 100644 --- a/accounts/models.py +++ b/accounts/models.py @@ -5,16 +5,12 @@ from django.contrib.sites.managers import CurrentSiteManager from django.contrib.sites.models import Site from django.core.urlresolvers import reverse from django.db import models -from django.utils.crypto import get_random_string -__all__ = ['Profile', 'Participation'] +from .utils import enum_to_choices, generate_user_uid +from proposals.models import Topic -def enum_to_choices(enum): - return ((item.value, item.name) for item in list(enum)) - -def generate_user_uid(): - return get_random_string(length=12, allowed_chars='abcdefghijklmnopqrstuvwxyz0123456789') +__all__ = ['Profile'] class Profile(models.Model): @@ -45,6 +41,9 @@ class Participation(models.Model): connector = models.IntegerField(choices=enum_to_choices(CONNECTORS), blank=True, null=True) constraints = models.TextField(blank=True) + # Participe as reviewer for theses topics + review_topics = models.ManyToManyField(Topic, blank=True) + objects = models.Manager() on_site = CurrentSiteManager() diff --git a/accounts/templates/admin/participants.html b/accounts/templates/admin/participants.html new file mode 100644 index 0000000..50318c2 --- /dev/null +++ b/accounts/templates/admin/participants.html @@ -0,0 +1,45 @@ +{% extends 'base.html' %} + +{% load bootstrap3 %} + +{% block admintab %}active{% endblock %} + +{% block content %} + + + + + + + + + + + {% for participation in participation_list %} + + + + + + + {% endfor %} +
#UsernameFullnameAdministration
{{ forloop.counter }}{{ participation.user.username }}{{ participation.user.get_full_name }} + + {% if request.user in participation.conversation.subscribers.all %} + + {% else %} + + {% endif %} +
+ +{% endblock %} + +{% block js_end %} + +{% endblock %} diff --git a/accounts/templates/registration/login.html b/accounts/templates/registration/login.html index e95f123..b8e03d9 100644 --- a/accounts/templates/registration/login.html +++ b/accounts/templates/registration/login.html @@ -2,6 +2,8 @@ {% load bootstrap3 %} +{% block logintab %} class="active"{% endblock %} + {% block content %}