Commit e168fc9da25166064709c96e8335af1e0a24196d

Authored by Jailson Dias
1 parent 3b30ee82

algumas alterações nos models

@@ -51,3 +51,4 @@ angular_api @@ -51,3 +51,4 @@ angular_api
51 logs/ 51 logs/
52 amadeus/uploads/ 52 amadeus/uploads/
53 links/static/images/ 53 links/static/images/
  54 +uploads/
app/migrations/0001_initial.py
1 # -*- coding: utf-8 -*- 1 # -*- coding: utf-8 -*-
2 -# Generated by Django 1.10 on 2016-11-14 04:44 2 +# Generated by Django 1.10 on 2016-11-15 22:36
3 from __future__ import unicode_literals 3 from __future__ import unicode_literals
4 4
5 from django.db import migrations, models 5 from django.db import migrations, models
core/migrations/0001_initial.py
1 # -*- coding: utf-8 -*- 1 # -*- coding: utf-8 -*-
2 -# Generated by Django 1.10 on 2016-11-14 04:44 2 +# Generated by Django 1.10 on 2016-11-15 22:36
3 from __future__ import unicode_literals 3 from __future__ import unicode_literals
4 4
5 import autoslug.fields 5 import autoslug.fields
@@ -22,7 +22,7 @@ class Migration(migrations.Migration): @@ -22,7 +22,7 @@ class Migration(migrations.Migration):
22 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 22 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
23 ('name', models.CharField(max_length=100, verbose_name='Name')), 23 ('name', models.CharField(max_length=100, verbose_name='Name')),
24 ('slug', autoslug.fields.AutoSlugField(editable=False, populate_from='name', unique=True, verbose_name='Slug')), 24 ('slug', autoslug.fields.AutoSlugField(editable=False, populate_from='name', unique=True, verbose_name='Slug')),
25 - ('created_date', models.DateField(auto_now_add=True, verbose_name='Created Date')), 25 + ('created_date', models.DateTimeField(auto_now_add=True, verbose_name='Created Date')),
26 ], 26 ],
27 options={ 27 options={
28 'verbose_name': 'Action', 28 'verbose_name': 'Action',
@@ -84,7 +84,7 @@ class Migration(migrations.Migration): @@ -84,7 +84,7 @@ class Migration(migrations.Migration):
84 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 84 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
85 ('name', models.CharField(max_length=100, verbose_name='Name')), 85 ('name', models.CharField(max_length=100, verbose_name='Name')),
86 ('slug', autoslug.fields.AutoSlugField(editable=False, populate_from='name', unique=True, verbose_name='Slug')), 86 ('slug', autoslug.fields.AutoSlugField(editable=False, populate_from='name', unique=True, verbose_name='Slug')),
87 - ('created_date', models.DateField(auto_now_add=True, verbose_name='Created Date')), 87 + ('created_date', models.DateTimeField(auto_now_add=True, verbose_name='Created Date')),
88 ('url', models.CharField(default='', max_length=100, verbose_name='URL')), 88 ('url', models.CharField(default='', max_length=100, verbose_name='URL')),
89 ], 89 ],
90 options={ 90 options={
core/migrations/0002_auto_20161114_0144.py
@@ -1,50 +0,0 @@ @@ -1,50 +0,0 @@
1 -# -*- coding: utf-8 -*-  
2 -# Generated by Django 1.10 on 2016-11-14 04:44  
3 -from __future__ import unicode_literals  
4 -  
5 -from django.conf import settings  
6 -from django.db import migrations, models  
7 -import django.db.models.deletion  
8 -  
9 -  
10 -class Migration(migrations.Migration):  
11 -  
12 - initial = True  
13 -  
14 - dependencies = [  
15 - migrations.swappable_dependency(settings.AUTH_USER_MODEL),  
16 - ('core', '0001_initial'),  
17 - ]  
18 -  
19 - operations = [  
20 - migrations.AddField(  
21 - model_name='notification',  
22 - name='actor',  
23 - field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='notification_Performer', to=settings.AUTH_USER_MODEL, verbose_name='Perfomer'),  
24 - ),  
25 - migrations.AddField(  
26 - model_name='notification',  
27 - name='user',  
28 - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='notification_Actor', to=settings.AUTH_USER_MODEL, verbose_name='User'),  
29 - ),  
30 - migrations.AddField(  
31 - model_name='log',  
32 - name='action_resource',  
33 - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.Action_Resource', verbose_name='Action_Resource'),  
34 - ),  
35 - migrations.AddField(  
36 - model_name='log',  
37 - name='user',  
38 - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Actor'),  
39 - ),  
40 - migrations.AddField(  
41 - model_name='action_resource',  
42 - name='action',  
43 - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.Action', verbose_name='Action_Applied'),  
44 - ),  
45 - migrations.AddField(  
46 - model_name='action_resource',  
47 - name='resource',  
48 - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.Resource', verbose_name='Resource'),  
49 - ),  
50 - ]  
core/migrations/0002_auto_20161115_1936.py 0 → 100644
@@ -0,0 +1,50 @@ @@ -0,0 +1,50 @@
  1 +# -*- coding: utf-8 -*-
  2 +# Generated by Django 1.10 on 2016-11-15 22:36
  3 +from __future__ import unicode_literals
  4 +
  5 +from django.conf import settings
  6 +from django.db import migrations, models
  7 +import django.db.models.deletion
  8 +
  9 +
  10 +class Migration(migrations.Migration):
  11 +
  12 + initial = True
  13 +
  14 + dependencies = [
  15 + migrations.swappable_dependency(settings.AUTH_USER_MODEL),
  16 + ('core', '0001_initial'),
  17 + ]
  18 +
  19 + operations = [
  20 + migrations.AddField(
  21 + model_name='notification',
  22 + name='actor',
  23 + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='notification_Performer', to=settings.AUTH_USER_MODEL, verbose_name='Performer'),
  24 + ),
  25 + migrations.AddField(
  26 + model_name='notification',
  27 + name='user',
  28 + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='notification_Actor', to=settings.AUTH_USER_MODEL, verbose_name='User'),
  29 + ),
  30 + migrations.AddField(
  31 + model_name='log',
  32 + name='action_resource',
  33 + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.Action_Resource', verbose_name='Action_Resource'),
  34 + ),
  35 + migrations.AddField(
  36 + model_name='log',
  37 + name='user',
  38 + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Actor'),
  39 + ),
  40 + migrations.AddField(
  41 + model_name='action_resource',
  42 + name='action',
  43 + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.Action', verbose_name='Action_Applied'),
  44 + ),
  45 + migrations.AddField(
  46 + model_name='action_resource',
  47 + name='resource',
  48 + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.Resource', verbose_name='Resource'),
  49 + ),
  50 + ]
core/models.py
@@ -27,7 +27,7 @@ class Action(models.Model): @@ -27,7 +27,7 @@ class Action(models.Model):
27 27
28 name = models.CharField(_('Name'), max_length = 100) 28 name = models.CharField(_('Name'), max_length = 100)
29 slug = AutoSlugField(_("Slug"), populate_from=('name'), unique=True) 29 slug = AutoSlugField(_("Slug"), populate_from=('name'), unique=True)
30 - created_date = models.DateField(_('Created Date'), auto_now_add=True) 30 + created_date = models.DateTimeField(_('Created Date'), auto_now_add=True)
31 31
32 class Meta: 32 class Meta:
33 verbose_name = "Action" 33 verbose_name = "Action"
@@ -51,7 +51,7 @@ class Resource(models.Model): @@ -51,7 +51,7 @@ class Resource(models.Model):
51 51
52 name = models.CharField(_('Name'), max_length =100) 52 name = models.CharField(_('Name'), max_length =100)
53 slug = AutoSlugField(_("Slug"), populate_from='name', unique=True) 53 slug = AutoSlugField(_("Slug"), populate_from='name', unique=True)
54 - created_date = models.DateField(_('Created Date'), auto_now_add=True) 54 + created_date = models.DateTimeField(_('Created Date'), auto_now_add=True)
55 url = models.CharField(_('URL'), max_length =100, default="") 55 url = models.CharField(_('URL'), max_length =100, default="")
56 56
57 57
core/templates/register_user.html
@@ -12,103 +12,108 @@ @@ -12,103 +12,108 @@
12 12
13 13
14 {% block content %} 14 {% block content %}
15 - {% if messages %}  
16 - {% for message in messages %}  
17 - <div class="alert alert-{{ message.tags }} alert-dismissible" role="alert">  
18 - <button type="button" class="close" data-dismiss="alert" aria-label="Close">  
19 - <span aria-hidden="true">&times;</span>  
20 - </button>  
21 - <p>{{ message }}</p>  
22 - </div>  
23 - {% endfor %}  
24 - {% endif %}  
25 - <div class="row">  
26 - <div class="col-lg-offset-4 col-lg-8 col-md-offset-4 col-md-8 col-xs-offset-4 col-xs-8 col-sm-offset-4 col-sm-8">  
27 - <div class="col-lg-8 col-md-8 col-xs-8 col-sm-8">  
28 - <img src="{% static 'img/amadeus.png' %}" class="img-responsive center-block " alt="logo amadeus" id="logo">  
29 - </div>  
30 - </div> 15 +{% if messages %}
  16 +{% for message in messages %}
  17 +<div class="alert alert-{{ message.tags }} alert-dismissible" role="alert">
  18 + <button type="button" class="close" data-dismiss="alert" aria-label="Close">
  19 + <span aria-hidden="true">&times;</span>
  20 + </button>
  21 + <p>{{ message }}</p>
  22 +</div>
  23 +{% endfor %}
  24 +{% endif %}
  25 +<div class="row">
  26 + <div class="col-sm-6 col-sm-offset-4 col-md-6 col-md-offset-4 col-xs-6 col-xs-offset-4 col-lg-6 col-lg-offset-4 col-xl-6 col-xl-offset-4 ">
  27 + <div class="col-sm-8 col-sm-offset-2 col-md-8 col-md-offset-2 col-xs-8 col-xs-offset-2 col-lg-8 col-lg-offset-2 col-xl-8 col-xl-offset-2">
  28 + <img src="{% static 'img/amadeus.png' %}" class="img-responsive center-block logo-login " alt="logo amadeus">
31 </div> 29 </div>
  30 + </div>
  31 +</div>
32 32
33 - <div class="row">  
34 - <div class="col-lg-8 col-lg-offset-3 col-md-8 col-md-offset-3 col-sm-8 col-sm-offset-3 col-xs-8 col-xs-offset-3">  
35 - <div class="card">  
36 - <div class="card-body">  
37 - <form class="form-horizontal" name="registerForm" method="post" action="" enctype="multipart/form-data">  
38 - {% csrf_token %}  
39 - <legend>{% trans 'User Register' %}</legend>  
40 - {% for field in form %}  
41 - <div class="form-group is-empty {% if form.has_error %} has-error {% endif %} is-fileinput">  
42 - {% if field.field.required %}  
43 - <label for="{{ field.auto_id }}" class="col-md-2 control-label">{{ field.label }}<span>*</span></label>  
44 - {% else %}  
45 - <label for="{{ field.auto_id }}" class="col-md-2 control-label">{{ field.label }}</label>  
46 - {% endif %}  
47 - <div class="col-md-10">  
48 - {% if field.auto_id == 'id_birth_date' %}  
49 - {% render_field field class='form-control input-sm date-picker' %}  
50 -  
51 - <span id="helpBlock" class="help-block">{{ field.help_text }}</span>  
52 - {% elif field.auto_id == 'id_image' %}  
53 - {% render_field field class='form-control input-sm' %}  
54 - <div class="input-group">  
55 - <input type="text" readonly="" class="form-control" placeholder="Choose your photo...">  
56 - <span class="input-group-btn input-group-sm">  
57 - <button type="button" class="btn btn-fab btn-fab-mini">  
58 - <i class="material-icons">attach_file</i>  
59 - </button>  
60 - </span>  
61 - </div>  
62 - {% elif field.auto_id == 'id_curriculum' %}  
63 - {% render_field field class='form-control input-sm' %}  
64 - <div class="input-group">  
65 - <input type="text" readonly="" class="form-control" placeholder="{% trans 'Choose the file ...' %}">  
66 - <span class="input-group-btn input-group-sm">  
67 - <button type="button" class="btn btn-fab btn-fab-mini">  
68 - <i class="material-icons">attach_file</i>  
69 - </button>  
70 - </span>  
71 - </div>  
72 - {% elif field.auto_id == 'id_cpf' %}  
73 - {% render_field field class='form-control' onkeypress='campoNumerico(this,event); formatarCpf(this,event);' %}  
74 -  
75 - {% elif field.auto_id == 'id_year_titration' %}  
76 - {% render_field field class='form-control' onkeypress='campoNumerico(this,event);' %} 33 +<div class="row">
  34 + <div class="col-lg-8 col-lg-offset-3 col-md-8 col-md-offset-3 col-sm-8 col-sm-offset-3 col-xs-8 col-xs-offset-3">
  35 + <div class="card">
  36 + <div class="card-body">
  37 + <div class="row">
  38 + <div class="col-md-12 text-center">
  39 + <h2 style="color:#43a251"><strong>{% trans "User Register" %}</strong></h2>
  40 + </div>
  41 + </div>
77 42
78 - {% elif field.auto_id == 'id_phone' %}  
79 - {% render_field field class='form-control' onkeypress='campoNumerico(this,event); formatarTelefone(this,event);' %}  
80 - {% else %}  
81 - {% render_field field class='form-control' %}  
82 - <span id="helpBlock" class="help-block">{{ field.help_text }}</span>  
83 - {% endif %}  
84 - </div> 43 + <form class="form-horizontal" name="registerForm" method="post" action="" enctype="multipart/form-data">
  44 + {% csrf_token %}
  45 + {% for field in form %}
  46 + <div class="form-group is-empty {% if form.has_error %} has-error {% endif %} is-fileinput">
  47 + {% if field.field.required %}
  48 + <label for="{{ field.auto_id }}" class="col-md-2 control-label">{{ field.label }}<span>*</span></label>
  49 + {% else %}
  50 + <label for="{{ field.auto_id }}" class="col-md-2 control-label">{{ field.label }}</label>
  51 + {% endif %}
  52 + <div class="col-md-10">
  53 + {% if field.auto_id == 'id_birth_date' %}
  54 + {% render_field field class='form-control input-sm date-picker' %}
85 55
86 - {% if field.errors %}  
87 - <div class="alert alert-danger alert-dismissible col-md-offset-1 col-md-10 col-sm-offset-1 col-sm-10 col-xs-offset-1 col-xs-10" role="alert">  
88 - <button type="button" class="close" data-dismiss="alert" aria-label="Close">  
89 - <span aria-hidden="true">&times;</span>  
90 - </button>  
91 - <ul>  
92 - {% for error in field.errors %}  
93 - <li>{{ error }}</li>  
94 - {% endfor %}  
95 - </ul>  
96 - </div>  
97 - {% endif %}  
98 - </div>  
99 - {% endfor %}  
100 - <div class="col-md-offset-2 col-md-6 col-sm-offset-2 col-sm-6 col-xs-6 col-xs-offset-2 col-xs-6">  
101 - <input type="submit" value="{% trans 'Save' %}" class="btn btn-raised btn-primary" /> 56 + <span id="helpBlock" class="help-block">{{ field.help_text }}</span>
  57 + {% elif field.auto_id == 'id_image' %}
  58 + {% render_field field class='form-control input-sm' %}
  59 + <div class="input-group">
  60 + <input type="text" readonly="" class="form-control" placeholder="Choose your photo...">
  61 + <span class="input-group-btn input-group-sm">
  62 + <button type="button" class="btn btn-fab btn-fab-mini">
  63 + <i class="material-icons">image</i>
  64 + </button>
  65 + </span>
102 </div> 66 </div>
103 - <div class=" col-md-4 col-sm-4 col-xs-4">  
104 - <a href="{% url 'core:home' %}" class=" btn btn-danger btn-raised" >{% trans 'Cancel' %}</a> 67 + {% elif field.auto_id == 'id_curriculum' %}
  68 + {% render_field field class='form-control input-sm' %}
  69 + <div class="input-group">
  70 + <input type="text" readonly="" class="form-control" placeholder="{% trans 'Choose the file ...' %}">
  71 + <span class="input-group-btn input-group-sm">
  72 + <button type="button" class="btn btn-fab btn-fab-mini">
  73 + <i class="material-icons">attach_file</i>
  74 + </button>
  75 + </span>
105 </div> 76 </div>
  77 + {% elif field.auto_id == 'id_cpf' %}
  78 + {% render_field field class='form-control' onkeypress='campoNumerico(this,event); formatarCpf(this,event);' %}
  79 +
  80 + {% elif field.auto_id == 'id_year_titration' %}
  81 + {% render_field field class='form-control' onkeypress='campoNumerico(this,event);' %}
106 82
107 - </form> 83 + {% elif field.auto_id == 'id_phone' %}
  84 + {% render_field field class='form-control' onkeypress='campoNumerico(this,event); formatarTelefone(this,event);' %}
  85 + {% else %}
  86 + {% render_field field class='form-control' %}
  87 + <span id="helpBlock" class="help-block">{{ field.help_text }}</span>
  88 + {% endif %}
  89 + </div>
  90 +
  91 + {% if field.errors %}
  92 + <div class="alert alert-danger alert-dismissible col-md-offset-1 col-md-10 col-sm-offset-1 col-sm-10 col-xs-offset-1 col-xs-10" role="alert">
  93 + <button type="button" class="close" data-dismiss="alert" aria-label="Close">
  94 + <span aria-hidden="true">&times;</span>
  95 + </button>
  96 + <ul>
  97 + {% for error in field.errors %}
  98 + <li>{{ error }}</li>
  99 + {% endfor %}
  100 + </ul>
  101 + </div>
  102 + {% endif %}
  103 + </div>
  104 + {% endfor %}
  105 + <div class="col-md-offset-2 col-md-6 col-sm-offset-2 col-sm-6 col-xs-6 col-xs-offset-2 col-xs-6">
  106 + <input type="submit" value="{% trans 'Save' %}" class="btn btn-raised btn-primary" />
108 </div> 107 </div>
  108 + <div class=" col-md-4 col-sm-4 col-xs-4">
  109 + <a href="{% url 'core:home' %}" class=" btn btn-danger btn-raised" >{% trans 'Cancel' %}</a>
  110 + </div>
  111 +
  112 + </form>
109 </div> 113 </div>
110 </div> 114 </div>
111 </div> 115 </div>
  116 +</div>
112 117
113 - <br clear="all" /> 118 +<br clear="all" />
114 {% endblock %} 119 {% endblock %}
courses/migrations/0001_initial.py
1 # -*- coding: utf-8 -*- 1 # -*- coding: utf-8 -*-
2 -# Generated by Django 1.10 on 2016-11-14 04:44 2 +# Generated by Django 1.10 on 2016-11-15 22:36
3 from __future__ import unicode_literals 3 from __future__ import unicode_literals
4 4
5 import autoslug.fields 5 import autoslug.fields
@@ -44,7 +44,7 @@ class Migration(migrations.Migration): @@ -44,7 +44,7 @@ class Migration(migrations.Migration):
44 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 44 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
45 ('name', models.CharField(max_length=100, unique=True, verbose_name='Name')), 45 ('name', models.CharField(max_length=100, unique=True, verbose_name='Name')),
46 ('slug', autoslug.fields.AutoSlugField(editable=False, populate_from='name', unique=True, verbose_name='Slug')), 46 ('slug', autoslug.fields.AutoSlugField(editable=False, populate_from='name', unique=True, verbose_name='Slug')),
47 - ('create_date', models.DateField(auto_now_add=True, verbose_name='Creation Date')), 47 + ('create_date', models.DateTimeField(auto_now_add=True, verbose_name='Creation Date')),
48 ], 48 ],
49 options={ 49 options={
50 'verbose_name': 'Category', 50 'verbose_name': 'Category',
@@ -60,7 +60,7 @@ class Migration(migrations.Migration): @@ -60,7 +60,7 @@ class Migration(migrations.Migration):
60 ('objectivies', models.TextField(blank=True, verbose_name='Objectivies')), 60 ('objectivies', models.TextField(blank=True, verbose_name='Objectivies')),
61 ('content', models.TextField(blank=True, verbose_name='Content')), 61 ('content', models.TextField(blank=True, verbose_name='Content')),
62 ('max_students', models.PositiveIntegerField(blank=True, verbose_name='Maximum Students')), 62 ('max_students', models.PositiveIntegerField(blank=True, verbose_name='Maximum Students')),
63 - ('create_date', models.DateField(auto_now_add=True, verbose_name='Creation Date')), 63 + ('create_date', models.DateTimeField(auto_now_add=True, verbose_name='Creation Date')),
64 ('init_register_date', models.DateField(verbose_name='Register Date (Begin)')), 64 ('init_register_date', models.DateField(verbose_name='Register Date (Begin)')),
65 ('end_register_date', models.DateField(verbose_name='Register Date (End)')), 65 ('end_register_date', models.DateField(verbose_name='Register Date (End)')),
66 ('init_date', models.DateField(verbose_name='Begin of Course Date')), 66 ('init_date', models.DateField(verbose_name='Begin of Course Date')),
@@ -68,9 +68,9 @@ class Migration(migrations.Migration): @@ -68,9 +68,9 @@ class Migration(migrations.Migration):
68 ('public', models.BooleanField(default=False, verbose_name='Public')), 68 ('public', models.BooleanField(default=False, verbose_name='Public')),
69 ], 69 ],
70 options={ 70 options={
71 - 'ordering': ('create_date', 'name'),  
72 'verbose_name': 'Course', 71 'verbose_name': 'Course',
73 'verbose_name_plural': 'Courses', 72 'verbose_name_plural': 'Courses',
  73 + 'ordering': ('create_date', 'name'),
74 }, 74 },
75 ), 75 ),
76 migrations.CreateModel( 76 migrations.CreateModel(
@@ -79,7 +79,7 @@ class Migration(migrations.Migration): @@ -79,7 +79,7 @@ class Migration(migrations.Migration):
79 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 79 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
80 ('name', models.CharField(max_length=100, unique=True, verbose_name='Name')), 80 ('name', models.CharField(max_length=100, unique=True, verbose_name='Name')),
81 ('slug', autoslug.fields.AutoSlugField(editable=False, populate_from='name', unique=True, verbose_name='Slug')), 81 ('slug', autoslug.fields.AutoSlugField(editable=False, populate_from='name', unique=True, verbose_name='Slug')),
82 - ('create_date', models.DateField(auto_now_add=True, verbose_name='Creation Date')), 82 + ('create_date', models.DateTimeField(auto_now_add=True, verbose_name='Creation Date')),
83 ], 83 ],
84 options={ 84 options={
85 'verbose_name': 'Category', 85 'verbose_name': 'Category',
@@ -123,11 +123,13 @@ class Migration(migrations.Migration): @@ -123,11 +123,13 @@ class Migration(migrations.Migration):
123 ('end_date', models.DateField(verbose_name='End of Subject Date')), 123 ('end_date', models.DateField(verbose_name='End of Subject Date')),
124 ('create_date', models.DateTimeField(auto_now_add=True, verbose_name='Creation Date')), 124 ('create_date', models.DateTimeField(auto_now_add=True, verbose_name='Creation Date')),
125 ('update_date', models.DateTimeField(auto_now=True, verbose_name='Date of last update')), 125 ('update_date', models.DateTimeField(auto_now=True, verbose_name='Date of last update')),
  126 + ('category', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='subject_category', to='courses.CategorySubject', verbose_name='Category')),
  127 + ('course', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='subjects', to='courses.Course', verbose_name='Course')),
126 ], 128 ],
127 options={ 129 options={
128 - 'ordering': ('create_date', 'name'),  
129 'verbose_name': 'Subject', 130 'verbose_name': 'Subject',
130 'verbose_name_plural': 'Subjects', 131 'verbose_name_plural': 'Subjects',
  132 + 'ordering': ('create_date', 'name'),
131 }, 133 },
132 ), 134 ),
133 migrations.CreateModel( 135 migrations.CreateModel(
@@ -137,6 +139,7 @@ class Migration(migrations.Migration): @@ -137,6 +139,7 @@ class Migration(migrations.Migration):
137 ('name', models.CharField(max_length=100, verbose_name='Name')), 139 ('name', models.CharField(max_length=100, verbose_name='Name')),
138 ('slug', autoslug.fields.AutoSlugField(editable=False, populate_from='name', unique=True, verbose_name='Slug')), 140 ('slug', autoslug.fields.AutoSlugField(editable=False, populate_from='name', unique=True, verbose_name='Slug')),
139 ('description', models.TextField(blank=True, verbose_name='Description')), 141 ('description', models.TextField(blank=True, verbose_name='Description')),
  142 + ('subjects', models.ManyToManyField(to='courses.Subject')),
140 ], 143 ],
141 options={ 144 options={
142 'verbose_name': 'subject category', 145 'verbose_name': 'subject category',
@@ -153,11 +156,12 @@ class Migration(migrations.Migration): @@ -153,11 +156,12 @@ class Migration(migrations.Migration):
153 ('create_date', models.DateTimeField(auto_now_add=True, verbose_name='Creation Date')), 156 ('create_date', models.DateTimeField(auto_now_add=True, verbose_name='Creation Date')),
154 ('update_date', models.DateTimeField(auto_now=True, verbose_name='Date of last update')), 157 ('update_date', models.DateTimeField(auto_now=True, verbose_name='Date of last update')),
155 ('visible', models.BooleanField(default=False, verbose_name='Visible')), 158 ('visible', models.BooleanField(default=False, verbose_name='Visible')),
  159 + ('subject', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='courses.Subject', verbose_name='Subject')),
156 ], 160 ],
157 options={ 161 options={
158 - 'ordering': ('create_date', 'name'),  
159 'verbose_name': 'Topic', 162 'verbose_name': 'Topic',
160 'verbose_name_plural': 'Topics', 163 'verbose_name_plural': 'Topics',
  164 + 'ordering': ('create_date', 'name'),
161 }, 165 },
162 ), 166 ),
163 ] 167 ]
courses/migrations/0002_auto_20161114_0144.py
@@ -1,110 +0,0 @@ @@ -1,110 +0,0 @@
1 -# -*- coding: utf-8 -*-  
2 -# Generated by Django 1.10 on 2016-11-14 04:44  
3 -from __future__ import unicode_literals  
4 -  
5 -from django.conf import settings  
6 -from django.db import migrations, models  
7 -import django.db.models.deletion  
8 -  
9 -  
10 -class Migration(migrations.Migration):  
11 -  
12 - initial = True  
13 -  
14 - dependencies = [  
15 - migrations.swappable_dependency(settings.AUTH_USER_MODEL),  
16 - ('courses', '0001_initial'),  
17 - ]  
18 -  
19 - operations = [  
20 - migrations.AddField(  
21 - model_name='topic',  
22 - name='owner',  
23 - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Owner'),  
24 - ),  
25 - migrations.AddField(  
26 - model_name='topic',  
27 - name='subject',  
28 - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='courses.Subject', verbose_name='Subject'),  
29 - ),  
30 - migrations.AddField(  
31 - model_name='subjectcategory',  
32 - name='subjects',  
33 - field=models.ManyToManyField(to='courses.Subject'),  
34 - ),  
35 - migrations.AddField(  
36 - model_name='subject',  
37 - name='category',  
38 - field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='subject_category', to='courses.CategorySubject', verbose_name='Category'),  
39 - ),  
40 - migrations.AddField(  
41 - model_name='subject',  
42 - name='course',  
43 - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='subjects', to='courses.Course', verbose_name='Course'),  
44 - ),  
45 - migrations.AddField(  
46 - model_name='subject',  
47 - name='professors',  
48 - field=models.ManyToManyField(related_name='professors_subjects', to=settings.AUTH_USER_MODEL, verbose_name='Professors'),  
49 - ),  
50 - migrations.AddField(  
51 - model_name='subject',  
52 - name='students',  
53 - field=models.ManyToManyField(blank=True, related_name='subject_student', to=settings.AUTH_USER_MODEL, verbose_name='Students'),  
54 - ),  
55 - migrations.AddField(  
56 - model_name='material',  
57 - name='students',  
58 - field=models.ManyToManyField(related_name='materials', to=settings.AUTH_USER_MODEL, verbose_name='Students'),  
59 - ),  
60 - migrations.AddField(  
61 - model_name='material',  
62 - name='topic',  
63 - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='materials', to='courses.Topic', verbose_name='Topic'),  
64 - ),  
65 - migrations.AddField(  
66 - model_name='linkmaterial',  
67 - name='material',  
68 - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='material_link', to='courses.Material', verbose_name='Material'),  
69 - ),  
70 - migrations.AddField(  
71 - model_name='filematerial',  
72 - name='material',  
73 - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='material_file', to='courses.Material', verbose_name='Material'),  
74 - ),  
75 - migrations.AddField(  
76 - model_name='course',  
77 - name='category',  
78 - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='course_category', to='courses.CourseCategory', verbose_name='Category'),  
79 - ),  
80 - migrations.AddField(  
81 - model_name='course',  
82 - name='coordenator',  
83 - field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='course_coordenator', to=settings.AUTH_USER_MODEL, verbose_name='Coordenator'),  
84 - ),  
85 - migrations.AddField(  
86 - model_name='course',  
87 - name='professors',  
88 - field=models.ManyToManyField(related_name='courses_professors', to=settings.AUTH_USER_MODEL, verbose_name='Professors'),  
89 - ),  
90 - migrations.AddField(  
91 - model_name='course',  
92 - name='students',  
93 - field=models.ManyToManyField(blank=True, related_name='courses_student', to=settings.AUTH_USER_MODEL, verbose_name='Students'),  
94 - ),  
95 - migrations.AddField(  
96 - model_name='activityfile',  
97 - name='diet',  
98 - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='files', to='courses.Activity'),  
99 - ),  
100 - migrations.AddField(  
101 - model_name='activity',  
102 - name='students',  
103 - field=models.ManyToManyField(related_name='activities', to=settings.AUTH_USER_MODEL, verbose_name='Students'),  
104 - ),  
105 - migrations.AddField(  
106 - model_name='activity',  
107 - name='topic',  
108 - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='activities', to='courses.Topic', verbose_name='Topic'),  
109 - ),  
110 - ]  
courses/migrations/0002_auto_20161115_1936.py 0 → 100644
@@ -0,0 +1,85 @@ @@ -0,0 +1,85 @@
  1 +# -*- coding: utf-8 -*-
  2 +# Generated by Django 1.10 on 2016-11-15 22:36
  3 +from __future__ import unicode_literals
  4 +
  5 +from django.conf import settings
  6 +from django.db import migrations, models
  7 +import django.db.models.deletion
  8 +
  9 +
  10 +class Migration(migrations.Migration):
  11 +
  12 + initial = True
  13 +
  14 + dependencies = [
  15 + ('courses', '0001_initial'),
  16 + migrations.swappable_dependency(settings.AUTH_USER_MODEL),
  17 + ]
  18 +
  19 + operations = [
  20 + migrations.AddField(
  21 + model_name='subject',
  22 + name='professors',
  23 + field=models.ManyToManyField(related_name='professors_subjects', to=settings.AUTH_USER_MODEL, verbose_name='Professors'),
  24 + ),
  25 + migrations.AddField(
  26 + model_name='subject',
  27 + name='students',
  28 + field=models.ManyToManyField(blank=True, related_name='subject_student', to=settings.AUTH_USER_MODEL, verbose_name='Students'),
  29 + ),
  30 + migrations.AddField(
  31 + model_name='material',
  32 + name='students',
  33 + field=models.ManyToManyField(related_name='materials', to=settings.AUTH_USER_MODEL, verbose_name='Students'),
  34 + ),
  35 + migrations.AddField(
  36 + model_name='material',
  37 + name='topic',
  38 + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='materials', to='courses.Topic', verbose_name='Topic'),
  39 + ),
  40 + migrations.AddField(
  41 + model_name='linkmaterial',
  42 + name='material',
  43 + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='material_link', to='courses.Material', verbose_name='Material'),
  44 + ),
  45 + migrations.AddField(
  46 + model_name='filematerial',
  47 + name='material',
  48 + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='material_file', to='courses.Material', verbose_name='Material'),
  49 + ),
  50 + migrations.AddField(
  51 + model_name='course',
  52 + name='category',
  53 + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='course_category', to='courses.CourseCategory', verbose_name='Category'),
  54 + ),
  55 + migrations.AddField(
  56 + model_name='course',
  57 + name='coordenator',
  58 + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='course_coordenator', to=settings.AUTH_USER_MODEL, verbose_name='Coordenator'),
  59 + ),
  60 + migrations.AddField(
  61 + model_name='course',
  62 + name='professors',
  63 + field=models.ManyToManyField(related_name='courses_professors', to=settings.AUTH_USER_MODEL, verbose_name='Professors'),
  64 + ),
  65 + migrations.AddField(
  66 + model_name='course',
  67 + name='students',
  68 + field=models.ManyToManyField(blank=True, related_name='courses_student', to=settings.AUTH_USER_MODEL, verbose_name='Students'),
  69 + ),
  70 + migrations.AddField(
  71 + model_name='activityfile',
  72 + name='diet',
  73 + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='files', to='courses.Activity'),
  74 + ),
  75 + migrations.AddField(
  76 + model_name='activity',
  77 + name='students',
  78 + field=models.ManyToManyField(related_name='activities', to=settings.AUTH_USER_MODEL, verbose_name='Students'),
  79 + ),
  80 + migrations.AddField(
  81 + model_name='activity',
  82 + name='topic',
  83 + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='activities', to='courses.Topic', verbose_name='Topic'),
  84 + ),
  85 + ]
courses/models.py
@@ -13,7 +13,7 @@ class CourseCategory(models.Model): @@ -13,7 +13,7 @@ class CourseCategory(models.Model):
13 13
14 name = models.CharField(_('Name'), max_length = 100, unique = True) 14 name = models.CharField(_('Name'), max_length = 100, unique = True)
15 slug = AutoSlugField(_("Slug"),populate_from='name',unique=True) 15 slug = AutoSlugField(_("Slug"),populate_from='name',unique=True)
16 - create_date = models.DateField(_('Creation Date'), auto_now_add = True) 16 + create_date = models.DateTimeField(_('Creation Date'), auto_now_add = True)
17 17
18 class Meta: 18 class Meta:
19 verbose_name = _('Category') 19 verbose_name = _('Category')
@@ -25,7 +25,7 @@ class CourseCategory(models.Model): @@ -25,7 +25,7 @@ class CourseCategory(models.Model):
25 class CategorySubject(models.Model): 25 class CategorySubject(models.Model):
26 name = models.CharField(_('Name'), max_length=100, unique=True) 26 name = models.CharField(_('Name'), max_length=100, unique=True)
27 slug = AutoSlugField(_("Slug"), populate_from='name', unique=True) 27 slug = AutoSlugField(_("Slug"), populate_from='name', unique=True)
28 - create_date = models.DateField(_('Creation Date'), auto_now_add=True) 28 + create_date = models.DateTimeField(_('Creation Date'), auto_now_add=True)
29 29
30 class Meta: 30 class Meta:
31 verbose_name = _('Category') 31 verbose_name = _('Category')
@@ -41,7 +41,7 @@ class Course(models.Model): @@ -41,7 +41,7 @@ class Course(models.Model):
41 objectivies = models.TextField(_('Objectivies'), blank = True) 41 objectivies = models.TextField(_('Objectivies'), blank = True)
42 content = models.TextField(_('Content'), blank = True) 42 content = models.TextField(_('Content'), blank = True)
43 max_students = models.PositiveIntegerField(_('Maximum Students'), blank = True) 43 max_students = models.PositiveIntegerField(_('Maximum Students'), blank = True)
44 - create_date = models.DateField(_('Creation Date'), auto_now_add = True) 44 + create_date = models.DateTimeField(_('Creation Date'), auto_now_add = True)
45 init_register_date = models.DateField(_('Register Date (Begin)')) 45 init_register_date = models.DateField(_('Register Date (Begin)'))
46 end_register_date = models.DateField(_('Register Date (End)')) 46 end_register_date = models.DateField(_('Register Date (End)'))
47 init_date = models.DateField(_('Begin of Course Date')) 47 init_date = models.DateField(_('Begin of Course Date'))
@@ -106,7 +106,6 @@ class Topic(models.Model): @@ -106,7 +106,6 @@ class Topic(models.Model):
106 create_date = models.DateTimeField(_('Creation Date'), auto_now_add = True) 106 create_date = models.DateTimeField(_('Creation Date'), auto_now_add = True)
107 update_date = models.DateTimeField(_('Date of last update'), auto_now=True) 107 update_date = models.DateTimeField(_('Date of last update'), auto_now=True)
108 subject = models.ForeignKey(Subject, verbose_name = _('Subject')) 108 subject = models.ForeignKey(Subject, verbose_name = _('Subject'))
109 - owner = models.ForeignKey(User, verbose_name = _('Owner'))  
110 visible = models.BooleanField(_('Visible'), default=False) 109 visible = models.BooleanField(_('Visible'), default=False)
111 110
112 class Meta: 111 class Meta:
courses/views.py
@@ -429,7 +429,7 @@ class FilteredView(LoginRequiredMixin, generic.ListView): @@ -429,7 +429,7 @@ class FilteredView(LoginRequiredMixin, generic.ListView):
429 redirect_field_name = 'next' 429 redirect_field_name = 'next'
430 template_name = 'course/filtered.html' 430 template_name = 'course/filtered.html'
431 context_object_name = 'courses' 431 context_object_name = 'courses'
432 - paginate_by = 3 432 + paginate_by = 10
433 433
434 def get_queryset(self): 434 def get_queryset(self):
435 category = get_object_or_404(CourseCategory, slug = self.kwargs.get('slug')) 435 category = get_object_or_404(CourseCategory, slug = self.kwargs.get('slug'))
@@ -447,11 +447,11 @@ class IndexCatView(LoginRequiredMixin, generic.ListView): @@ -447,11 +447,11 @@ class IndexCatView(LoginRequiredMixin, generic.ListView):
447 447
448 login_url = reverse_lazy("core:home") 448 login_url = reverse_lazy("core:home")
449 redirect_field_name = 'next' 449 redirect_field_name = 'next'
450 - queryset = sorted(CourseCategory.objects.all(),key = lambda x:x.name) 450 + queryset = CourseCategory.objects.all().order_by("name")
451 template_name = 'category/index.html' 451 template_name = 'category/index.html'
452 context_object_name = 'categories' 452 context_object_name = 'categories'
453 - paginate_by = 5  
454 - 453 + paginate_by = 10
  454 +
455 class CreateCatView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView): 455 class CreateCatView(LoginRequiredMixin, HasRoleMixin, generic.edit.CreateView):
456 456
457 allowed_roles = ['professor', 'system_admin'] 457 allowed_roles = ['professor', 'system_admin']
@@ -589,7 +589,7 @@ class ReplicateSubjectView(LoginRequiredMixin, HasRoleMixin, LogMixin, Notificat @@ -589,7 +589,7 @@ class ReplicateSubjectView(LoginRequiredMixin, HasRoleMixin, LogMixin, Notificat
589 589
590 def form_valid(self, form): 590 def form_valid(self, form):
591 self.object = form.save() 591 self.object = form.save()
592 - 592 +
593 return super(ReplicateSubjectView, self).form_valid(form) 593 return super(ReplicateSubjectView, self).form_valid(form)
594 594
595 def get_success_url(self): 595 def get_success_url(self):
@@ -1065,4 +1065,4 @@ class ReplicateTopicView (LoginRequiredMixin, HasRoleMixin, LogMixin, Notificati @@ -1065,4 +1065,4 @@ class ReplicateTopicView (LoginRequiredMixin, HasRoleMixin, LogMixin, Notificati
1065 1065
1066 super(ReplicateTopicView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) 1066 super(ReplicateTopicView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context)
1067 1067
1068 - return super(ReplicateTopicView, self).form_valid(form)  
1069 \ No newline at end of file 1068 \ No newline at end of file
  1069 + return super(ReplicateTopicView, self).form_valid(form)
exam/migrations/0001_initial.py
1 # -*- coding: utf-8 -*- 1 # -*- coding: utf-8 -*-
2 -# Generated by Django 1.10 on 2016-11-14 04:44 2 +# Generated by Django 1.10 on 2016-11-15 22:36
3 from __future__ import unicode_literals 3 from __future__ import unicode_literals
4 4
5 from django.db import migrations, models 5 from django.db import migrations, models
@@ -23,9 +23,9 @@ class Migration(migrations.Migration): @@ -23,9 +23,9 @@ class Migration(migrations.Migration):
23 ('order', models.PositiveSmallIntegerField(verbose_name='Order')), 23 ('order', models.PositiveSmallIntegerField(verbose_name='Order')),
24 ], 24 ],
25 options={ 25 options={
26 - 'ordering': ('order',),  
27 'verbose_name': 'Answer', 26 'verbose_name': 'Answer',
28 'verbose_name_plural': 'Answers', 27 'verbose_name_plural': 'Answers',
  28 + 'ordering': ('order',),
29 }, 29 },
30 ), 30 ),
31 migrations.CreateModel( 31 migrations.CreateModel(
exam/migrations/0002_auto_20161114_0144.py
@@ -1,30 +0,0 @@ @@ -1,30 +0,0 @@
1 -# -*- coding: utf-8 -*-  
2 -# Generated by Django 1.10 on 2016-11-14 04:44  
3 -from __future__ import unicode_literals  
4 -  
5 -from django.conf import settings  
6 -from django.db import migrations, models  
7 -import django.db.models.deletion  
8 -  
9 -  
10 -class Migration(migrations.Migration):  
11 -  
12 - initial = True  
13 -  
14 - dependencies = [  
15 - ('exam', '0001_initial'),  
16 - migrations.swappable_dependency(settings.AUTH_USER_MODEL),  
17 - ]  
18 -  
19 - operations = [  
20 - migrations.AddField(  
21 - model_name='answersstudent',  
22 - name='student',  
23 - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='student', to=settings.AUTH_USER_MODEL, verbose_name='Student'),  
24 - ),  
25 - migrations.AddField(  
26 - model_name='answer',  
27 - name='exam',  
28 - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='answers', to='exam.Exam', verbose_name='Answers'),  
29 - ),  
30 - ]  
exam/migrations/0002_auto_20161115_1936.py 0 → 100644
@@ -0,0 +1,30 @@ @@ -0,0 +1,30 @@
  1 +# -*- coding: utf-8 -*-
  2 +# Generated by Django 1.10 on 2016-11-15 22:36
  3 +from __future__ import unicode_literals
  4 +
  5 +from django.conf import settings
  6 +from django.db import migrations, models
  7 +import django.db.models.deletion
  8 +
  9 +
  10 +class Migration(migrations.Migration):
  11 +
  12 + initial = True
  13 +
  14 + dependencies = [
  15 + migrations.swappable_dependency(settings.AUTH_USER_MODEL),
  16 + ('exam', '0001_initial'),
  17 + ]
  18 +
  19 + operations = [
  20 + migrations.AddField(
  21 + model_name='answersstudent',
  22 + name='student',
  23 + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='student', to=settings.AUTH_USER_MODEL, verbose_name='Student'),
  24 + ),
  25 + migrations.AddField(
  26 + model_name='answer',
  27 + name='exam',
  28 + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='answers', to='exam.Exam', verbose_name='Answers'),
  29 + ),
  30 + ]
exercise/migrations/0001_initial.py
1 # -*- coding: utf-8 -*- 1 # -*- coding: utf-8 -*-
2 -# Generated by Django 1.10 on 2016-11-14 04:44 2 +# Generated by Django 1.10 on 2016-11-15 22:36
3 from __future__ import unicode_literals 3 from __future__ import unicode_literals
4 4
5 from django.db import migrations, models 5 from django.db import migrations, models
files/migrations/0001_initial.py
1 # -*- coding: utf-8 -*- 1 # -*- coding: utf-8 -*-
2 -# Generated by Django 1.10 on 2016-11-14 04:44 2 +# Generated by Django 1.10 on 2016-11-15 22:36
3 from __future__ import unicode_literals 3 from __future__ import unicode_literals
4 4
5 from django.db import migrations, models 5 from django.db import migrations, models
@@ -26,9 +26,9 @@ class Migration(migrations.Migration): @@ -26,9 +26,9 @@ class Migration(migrations.Migration):
26 ('file_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='topic_files', to='core.MimeType', verbose_name='Type file')), 26 ('file_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='topic_files', to='core.MimeType', verbose_name='Type file')),
27 ], 27 ],
28 options={ 28 options={
29 - 'ordering': ('-id',),  
30 'verbose_name': 'File', 29 'verbose_name': 'File',
31 'verbose_name_plural': 'Files', 30 'verbose_name_plural': 'Files',
  31 + 'ordering': ('-id',),
32 }, 32 },
33 bases=('courses.material',), 33 bases=('courses.material',),
34 ), 34 ),
files/migrations/0002_topicfile_professor.py
1 # -*- coding: utf-8 -*- 1 # -*- coding: utf-8 -*-
2 -# Generated by Django 1.10 on 2016-11-14 04:44 2 +# Generated by Django 1.10 on 2016-11-15 22:36
3 from __future__ import unicode_literals 3 from __future__ import unicode_literals
4 4
5 from django.conf import settings 5 from django.conf import settings
@@ -11,8 +11,8 @@ class Migration(migrations.Migration): @@ -11,8 +11,8 @@ class Migration(migrations.Migration):
11 initial = True 11 initial = True
12 12
13 dependencies = [ 13 dependencies = [
14 - ('files', '0001_initial'),  
15 migrations.swappable_dependency(settings.AUTH_USER_MODEL), 14 migrations.swappable_dependency(settings.AUTH_USER_MODEL),
  15 + ('files', '0001_initial'),
16 ] 16 ]
17 17
18 operations = [ 18 operations = [
forum/migrations/0001_initial.py
1 # -*- coding: utf-8 -*- 1 # -*- coding: utf-8 -*-
2 -# Generated by Django 1.10 on 2016-11-14 04:44 2 +# Generated by Django 1.10 on 2016-11-15 22:36
3 from __future__ import unicode_literals 3 from __future__ import unicode_literals
4 4
5 from django.db import migrations, models 5 from django.db import migrations, models
forum/migrations/0002_auto_20161114_0144.py
@@ -1,35 +0,0 @@ @@ -1,35 +0,0 @@
1 -# -*- coding: utf-8 -*-  
2 -# Generated by Django 1.10 on 2016-11-14 04:44  
3 -from __future__ import unicode_literals  
4 -  
5 -from django.conf import settings  
6 -from django.db import migrations, models  
7 -import django.db.models.deletion  
8 -  
9 -  
10 -class Migration(migrations.Migration):  
11 -  
12 - initial = True  
13 -  
14 - dependencies = [  
15 - migrations.swappable_dependency(settings.AUTH_USER_MODEL),  
16 - ('forum', '0001_initial'),  
17 - ]  
18 -  
19 - operations = [  
20 - migrations.AddField(  
21 - model_name='postanswer',  
22 - name='user',  
23 - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Autor'),  
24 - ),  
25 - migrations.AddField(  
26 - model_name='post',  
27 - name='forum',  
28 - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='forum.Forum', verbose_name='Forum'),  
29 - ),  
30 - migrations.AddField(  
31 - model_name='post',  
32 - name='user',  
33 - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Autor'),  
34 - ),  
35 - ]  
forum/migrations/0002_auto_20161115_1936.py 0 → 100644
@@ -0,0 +1,35 @@ @@ -0,0 +1,35 @@
  1 +# -*- coding: utf-8 -*-
  2 +# Generated by Django 1.10 on 2016-11-15 22:36
  3 +from __future__ import unicode_literals
  4 +
  5 +from django.conf import settings
  6 +from django.db import migrations, models
  7 +import django.db.models.deletion
  8 +
  9 +
  10 +class Migration(migrations.Migration):
  11 +
  12 + initial = True
  13 +
  14 + dependencies = [
  15 + ('forum', '0001_initial'),
  16 + migrations.swappable_dependency(settings.AUTH_USER_MODEL),
  17 + ]
  18 +
  19 + operations = [
  20 + migrations.AddField(
  21 + model_name='postanswer',
  22 + name='user',
  23 + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Autor'),
  24 + ),
  25 + migrations.AddField(
  26 + model_name='post',
  27 + name='forum',
  28 + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='forum.Forum', verbose_name='Forum'),
  29 + ),
  30 + migrations.AddField(
  31 + model_name='post',
  32 + name='user',
  33 + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Autor'),
  34 + ),
  35 + ]
links/migrations/0001_initial.py
1 # -*- coding: utf-8 -*- 1 # -*- coding: utf-8 -*-
2 -# Generated by Django 1.10 on 2016-11-14 04:44 2 +# Generated by Django 1.10 on 2016-11-15 22:36
3 from __future__ import unicode_literals 3 from __future__ import unicode_literals
4 4
5 from django.db import migrations, models 5 from django.db import migrations, models
poll/migrations/0001_initial.py
1 # -*- coding: utf-8 -*- 1 # -*- coding: utf-8 -*-
2 -# Generated by Django 1.10 on 2016-11-14 04:44 2 +# Generated by Django 1.10 on 2016-11-15 22:36
3 from __future__ import unicode_literals 3 from __future__ import unicode_literals
4 4
5 from django.db import migrations, models 5 from django.db import migrations, models
@@ -23,9 +23,9 @@ class Migration(migrations.Migration): @@ -23,9 +23,9 @@ class Migration(migrations.Migration):
23 ('order', models.PositiveSmallIntegerField(verbose_name='Order')), 23 ('order', models.PositiveSmallIntegerField(verbose_name='Order')),
24 ], 24 ],
25 options={ 25 options={
26 - 'ordering': ('order',),  
27 'verbose_name': 'Answer', 26 'verbose_name': 'Answer',
28 'verbose_name_plural': 'Answers', 27 'verbose_name_plural': 'Answers',
  28 + 'ordering': ('order',),
29 }, 29 },
30 ), 30 ),
31 migrations.CreateModel( 31 migrations.CreateModel(
poll/migrations/0002_auto_20161114_0144.py
@@ -1,30 +0,0 @@ @@ -1,30 +0,0 @@
1 -# -*- coding: utf-8 -*-  
2 -# Generated by Django 1.10 on 2016-11-14 04:44  
3 -from __future__ import unicode_literals  
4 -  
5 -from django.conf import settings  
6 -from django.db import migrations, models  
7 -import django.db.models.deletion  
8 -  
9 -  
10 -class Migration(migrations.Migration):  
11 -  
12 - initial = True  
13 -  
14 - dependencies = [  
15 - migrations.swappable_dependency(settings.AUTH_USER_MODEL),  
16 - ('poll', '0001_initial'),  
17 - ]  
18 -  
19 - operations = [  
20 - migrations.AddField(  
21 - model_name='answersstudent',  
22 - name='student',  
23 - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='answers_stundent', to=settings.AUTH_USER_MODEL, verbose_name='Student'),  
24 - ),  
25 - migrations.AddField(  
26 - model_name='answer',  
27 - name='poll',  
28 - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='answers', to='poll.Poll', verbose_name='Answers'),  
29 - ),  
30 - ]  
poll/migrations/0002_auto_20161115_1936.py 0 → 100644
@@ -0,0 +1,30 @@ @@ -0,0 +1,30 @@
  1 +# -*- coding: utf-8 -*-
  2 +# Generated by Django 1.10 on 2016-11-15 22:36
  3 +from __future__ import unicode_literals
  4 +
  5 +from django.conf import settings
  6 +from django.db import migrations, models
  7 +import django.db.models.deletion
  8 +
  9 +
  10 +class Migration(migrations.Migration):
  11 +
  12 + initial = True
  13 +
  14 + dependencies = [
  15 + migrations.swappable_dependency(settings.AUTH_USER_MODEL),
  16 + ('poll', '0001_initial'),
  17 + ]
  18 +
  19 + operations = [
  20 + migrations.AddField(
  21 + model_name='answersstudent',
  22 + name='student',
  23 + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='answers_stundent', to=settings.AUTH_USER_MODEL, verbose_name='Student'),
  24 + ),
  25 + migrations.AddField(
  26 + model_name='answer',
  27 + name='poll',
  28 + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='answers', to='poll.Poll', verbose_name='Answers'),
  29 + ),
  30 + ]
users/migrations/0001_initial.py
1 # -*- coding: utf-8 -*- 1 # -*- coding: utf-8 -*-
2 -# Generated by Django 1.10 on 2016-11-14 04:44 2 +# Generated by Django 1.10 on 2016-11-15 22:36
3 from __future__ import unicode_literals 3 from __future__ import unicode_literals
4 4
5 import django.contrib.auth.models 5 import django.contrib.auth.models
@@ -26,14 +26,14 @@ class Migration(migrations.Migration): @@ -26,14 +26,14 @@ class Migration(migrations.Migration):
26 ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')), 26 ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')),
27 ('username', models.CharField(help_text='A short name that will be used to identify you in the platform and to access it', max_length=35, unique=True, validators=[django.core.validators.RegexValidator(re.compile('^[\\w.@+-]+$', 32), 'Type a valid username. This fields should only contain letters, numbers and the characteres: @/./+/-/_ .', 'invalid')], verbose_name='Login')), 27 ('username', models.CharField(help_text='A short name that will be used to identify you in the platform and to access it', max_length=35, unique=True, validators=[django.core.validators.RegexValidator(re.compile('^[\\w.@+-]+$', 32), 'Type a valid username. This fields should only contain letters, numbers and the characteres: @/./+/-/_ .', 'invalid')], verbose_name='Login')),
28 ('email', models.EmailField(max_length=254, unique=True, verbose_name='Mail')), 28 ('email', models.EmailField(max_length=254, unique=True, verbose_name='Mail')),
29 - ('name', models.CharField(blank=True, max_length=100, verbose_name='Name')), 29 + ('name', models.CharField(max_length=100, verbose_name='Name')),
30 ('city', models.CharField(blank=True, max_length=90, verbose_name='City')), 30 ('city', models.CharField(blank=True, max_length=90, verbose_name='City')),
31 ('state', models.CharField(blank=True, max_length=30, verbose_name='State')), 31 ('state', models.CharField(blank=True, max_length=30, verbose_name='State')),
32 ('gender', models.CharField(choices=[('M', 'Male'), ('F', 'Female')], max_length=1, verbose_name='Gender')), 32 ('gender', models.CharField(choices=[('M', 'Male'), ('F', 'Female')], max_length=1, verbose_name='Gender')),
33 - ('image', models.ImageField(blank=True, upload_to='users/', verbose_name='Image')),  
34 - ('birth_date', models.DateField(null=True, verbose_name='Birth Date')), 33 + ('image', models.ImageField(blank=True, null=True, upload_to='users/', verbose_name='Image')),
  34 + ('birth_date', models.DateField(verbose_name='Birth Date')),
35 ('phone', models.CharField(blank=True, max_length=30, verbose_name='Phone')), 35 ('phone', models.CharField(blank=True, max_length=30, verbose_name='Phone')),
36 - ('cpf', models.CharField(blank=True, max_length=15, verbose_name='Cpf')), 36 + ('cpf', models.CharField(max_length=15, verbose_name='Cpf')),
37 ('type_profile', models.IntegerField(blank=True, choices=[(1, 'Professor'), (2, 'Student')], default=2, null=True, verbose_name='Type')), 37 ('type_profile', models.IntegerField(blank=True, choices=[(1, 'Professor'), (2, 'Student')], default=2, null=True, verbose_name='Type')),
38 ('titration', models.CharField(blank=True, max_length=50, null=True, verbose_name='Titration')), 38 ('titration', models.CharField(blank=True, max_length=50, null=True, verbose_name='Titration')),
39 ('year_titration', models.CharField(blank=True, max_length=4, null=True, verbose_name='Year of titration')), 39 ('year_titration', models.CharField(blank=True, max_length=4, null=True, verbose_name='Year of titration')),
users/migrations/0002_auto_20161115_1941.py 0 → 100644
@@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
  1 +# -*- coding: utf-8 -*-
  2 +# Generated by Django 1.10 on 2016-11-15 22:41
  3 +from __future__ import unicode_literals
  4 +
  5 +from django.db import migrations, models
  6 +
  7 +
  8 +class Migration(migrations.Migration):
  9 +
  10 + dependencies = [
  11 + ('users', '0001_initial'),
  12 + ]
  13 +
  14 + operations = [
  15 + migrations.AlterField(
  16 + model_name='user',
  17 + name='birth_date',
  18 + field=models.DateField(null=True, verbose_name='Birth Date'),
  19 + ),
  20 + ]
users/models.py
@@ -16,14 +16,14 @@ class User(AbstractBaseUser, PermissionsMixin): @@ -16,14 +16,14 @@ class User(AbstractBaseUser, PermissionsMixin):
16 ) 16 )
17 ], help_text = _('A short name that will be used to identify you in the platform and to access it')) 17 ], help_text = _('A short name that will be used to identify you in the platform and to access it'))
18 email = models.EmailField(_('Mail'), unique = True) 18 email = models.EmailField(_('Mail'), unique = True)
19 - name = models.CharField(_('Name'), max_length = 100, blank = True) 19 + name = models.CharField(_('Name'), max_length = 100)
20 city = models.CharField(_('City'), max_length = 90, blank = True) 20 city = models.CharField(_('City'), max_length = 90, blank = True)
21 state = models.CharField(_('State'), max_length = 30, blank = True) 21 state = models.CharField(_('State'), max_length = 30, blank = True)
22 gender = models.CharField(_('Gender'), max_length = 1, choices = (('M', _('Male')), ('F', _('Female')))) 22 gender = models.CharField(_('Gender'), max_length = 1, choices = (('M', _('Male')), ('F', _('Female'))))
23 - image = models.ImageField(verbose_name = _('Image'), blank = True, upload_to = 'users/') 23 + image = models.ImageField(verbose_name = _('Image'), null=True, blank = True, upload_to = 'users/')
24 birth_date = models.DateField(_('Birth Date'), null=True) 24 birth_date = models.DateField(_('Birth Date'), null=True)
25 phone = models.CharField(_('Phone'), max_length = 30, blank = True) 25 phone = models.CharField(_('Phone'), max_length = 30, blank = True)
26 - cpf = models.CharField(_('Cpf'), max_length = 15, blank = True) 26 + cpf = models.CharField(_('Cpf'), max_length = 15)
27 type_profile = models.IntegerField(_('Type'), null = True, blank = True, choices = ((1, _('Professor')), (2, _('Student'))), default=2) 27 type_profile = models.IntegerField(_('Type'), null = True, blank = True, choices = ((1, _('Professor')), (2, _('Student'))), default=2)
28 titration = models.CharField(_('Titration'), max_length = 50, blank = True, null = True) 28 titration = models.CharField(_('Titration'), max_length = 50, blank = True, null = True)
29 year_titration = models.CharField(_('Year of titration'), max_length = 4, blank = True, null = True) 29 year_titration = models.CharField(_('Year of titration'), max_length = 4, blank = True, null = True)
@@ -56,4 +56,4 @@ class User(AbstractBaseUser, PermissionsMixin): @@ -56,4 +56,4 @@ class User(AbstractBaseUser, PermissionsMixin):
56 if self.image and hasattr(self.image, 'url'): 56 if self.image and hasattr(self.image, 'url'):
57 return self.image.url 57 return self.image.url
58 else: 58 else:
59 - return static('img/no_image.jpg')  
60 \ No newline at end of file 59 \ No newline at end of file
  60 + return static('img/no_image.jpg')