Commit eb7ac9eb7b60fd1b9ec3fd8cbdb41820e6673cd9
Exists in
master
and in
5 other branches
resolve conflit
Showing
16 changed files
with
358 additions
and
106 deletions
Show diff stats
core/forms.py
| ... | ... | @@ -16,7 +16,7 @@ class RegisterUserForm(forms.ModelForm): |
| 16 | 16 | |
| 17 | 17 | def validate_cpf(self, cpf): |
| 18 | 18 | cpf = ''.join(re.findall('\d', str(cpf))) |
| 19 | - | |
| 19 | + | |
| 20 | 20 | if cpfcnpj.validate(cpf): |
| 21 | 21 | return True |
| 22 | 22 | return False |
| ... | ... | @@ -38,8 +38,8 @@ class RegisterUserForm(forms.ModelForm): |
| 38 | 38 | cpf = self.cleaned_data['cpf'] |
| 39 | 39 | if User.objects.filter(cpf = cpf).exists(): |
| 40 | 40 | raise forms.ValidationError(_('There is already a registeres User with this CPF')) |
| 41 | - if not self.validate_cpf(cpf): | |
| 42 | - raise forms.ValidationError(_('Please enter a valid CPF')) | |
| 41 | + # if not self.validate_cpf(cpf): | |
| 42 | + # raise forms.ValidationError(_('Please enter a valid CPF')) | |
| 43 | 43 | return cpf |
| 44 | 44 | |
| 45 | 45 | def clean_password(self): |
| ... | ... | @@ -68,12 +68,12 @@ class RegisterUserForm(forms.ModelForm): |
| 68 | 68 | def save(self, commit=True): |
| 69 | 69 | super(RegisterUserForm, self).save(commit=False) |
| 70 | 70 | self.instance.set_password(self.cleaned_data['password']) |
| 71 | - | |
| 71 | + | |
| 72 | 72 | self.instance.save() |
| 73 | 73 | return self.instance |
| 74 | 74 | |
| 75 | 75 | class Meta: |
| 76 | 76 | model = User |
| 77 | 77 | # exclude = ['is_staff', 'is_active'] |
| 78 | - fields = ['username', 'name', 'email', 'city', 'state', 'gender', 'cpf', 'birth_date', 'phone', 'image', 'titration', | |
| 78 | + fields = ['username', 'name', 'email', 'city', 'state', 'gender', 'cpf', 'birth_date', 'phone', 'image', 'titration', | |
| 79 | 79 | 'year_titration', 'institution', 'curriculum',] |
| 80 | 80 | \ No newline at end of file | ... | ... |
core/static/css/base/amadeus.css
| ... | ... | @@ -0,0 +1,79 @@ |
| 1 | + | |
| 2 | +var x = 0; | |
| 3 | +$(".edit_card").on('click', function() { | |
| 4 | + $(".presentation").css('display','none'); | |
| 5 | + $(".editation").css('display','block'); | |
| 6 | +}) | |
| 7 | +$(".edit_card_end").on('click', function() { | |
| 8 | + $(".editation").css('display','none'); | |
| 9 | + $(".presentation").css('display','block'); | |
| 10 | +}) | |
| 11 | + | |
| 12 | +$("#bot").on('click', function(){ | |
| 13 | + x = x+1; | |
| 14 | + console.log(2) | |
| 15 | + if(x%2 == 0){ | |
| 16 | + console.log(0) | |
| 17 | + $("#down").attr('class', 'fa fa-caret-square-o-down'); | |
| 18 | +} | |
| 19 | +else{ | |
| 20 | + console.log(1) | |
| 21 | + $("#down").attr('class', 'fa fa-caret-square-o-up'); | |
| 22 | +} | |
| 23 | + | |
| 24 | +}) | |
| 25 | +$("#bot1").on('click', function(){ | |
| 26 | + x = x+1; | |
| 27 | + console.log(2) | |
| 28 | + if(x%2 == 0){ | |
| 29 | + console.log(0) | |
| 30 | + $("#down1").attr('class', 'fa fa-caret-square-o-down'); | |
| 31 | +} | |
| 32 | +else{ | |
| 33 | + console.log(1) | |
| 34 | + $("#down1").attr('class', 'fa fa-caret-square-o-up'); | |
| 35 | +} | |
| 36 | + | |
| 37 | +}) | |
| 38 | + | |
| 39 | +$("#bot2").on('click', function(){ | |
| 40 | + x = x+1; | |
| 41 | + console.log(2) | |
| 42 | + if(x%2 == 0){ | |
| 43 | + console.log(0) | |
| 44 | + $("#down2").attr('class', 'fa fa-caret-square-o-down'); | |
| 45 | +} | |
| 46 | +else{ | |
| 47 | + console.log(1) | |
| 48 | + $("#down2").attr('class', 'fa fa-caret-square-o-up'); | |
| 49 | +} | |
| 50 | + | |
| 51 | +}) | |
| 52 | + | |
| 53 | +$("#bot3").on('click', function(){ | |
| 54 | + x = x+1; | |
| 55 | + console.log(2) | |
| 56 | + if(x%2 == 0){ | |
| 57 | + console.log(0) | |
| 58 | + $("#down3").attr('class', 'fa fa-caret-square-o-down'); | |
| 59 | +} | |
| 60 | +else{ | |
| 61 | + console.log(1) | |
| 62 | + $("#down3").attr('class', 'fa fa-caret-square-o-up'); | |
| 63 | +} | |
| 64 | + | |
| 65 | +}) | |
| 66 | +$("#bot4").on('click', function(){ | |
| 67 | + x = x+1; | |
| 68 | + console.log(2) | |
| 69 | + if(x%2 == 0){ | |
| 70 | + console.log(0) | |
| 71 | + $("#down4").attr('class', 'fa fa-caret-square-o-down'); | |
| 72 | +} | |
| 73 | +else{ | |
| 74 | + console.log(1) | |
| 75 | + $("#down4").attr('class', 'fa fa-caret-square-o-up'); | |
| 76 | +} | |
| 77 | + | |
| 78 | +}) | |
| 79 | + | ... | ... |
core/templates/base.html
| ... | ... | @@ -74,7 +74,7 @@ |
| 74 | 74 | <input type="text" class="form-control" placeholder="{% trans 'Search Files (.pdf, others) and/or activities' %}" name="search"></div> |
| 75 | 75 | <span class="input-group-btn input-group-sm"> |
| 76 | 76 | <button type="submit" class="btn btn-fab btn-fab-mini"> |
| 77 | - <i class="glyphicon glyphicon-search" aria-hidden="true" style="color:#93C741"></i> | |
| 77 | + <i class="fa fa-search" aria-hidden="true" style="color:#93C741"></i> | |
| 78 | 78 | </button> |
| 79 | 79 | </span> |
| 80 | 80 | </div> | ... | ... |
courses/forms.py
| ... | ... | @@ -51,34 +51,37 @@ class CourseForm(forms.ModelForm): |
| 51 | 51 | class Meta: |
| 52 | 52 | model = Course |
| 53 | 53 | fields = ('name', 'objectivies', 'content', 'max_students', 'init_register_date', 'end_register_date', |
| 54 | - 'init_date', 'end_date', 'category',) | |
| 54 | + 'init_date', 'end_date', 'category', 'coordenator') | |
| 55 | 55 | labels = { |
| 56 | - 'name': _('Name'), | |
| 57 | - 'objectivies': _('Objectives'), | |
| 58 | - 'content': _('Content'), | |
| 59 | - 'max_students': _('Number of studets maximum'), | |
| 60 | - 'init_register_date': _('Course registration start date'), | |
| 61 | - 'end_register_date': _('Course registration end date'), | |
| 62 | - 'init_date': _('Course start date'), | |
| 63 | - 'end_date': _('Course end date'), | |
| 64 | - 'category': _('CourseCategory'), | |
| 56 | + 'name': _('Name'), | |
| 57 | + 'objectivies': _('Objectives'), | |
| 58 | + 'content': _('Content'), | |
| 59 | + 'max_students': _('Number of studets maximum'), | |
| 60 | + 'init_register_date': _('Course registration start date'), | |
| 61 | + 'end_register_date': _('Course registration end date'), | |
| 62 | + 'init_date': _('Course start date'), | |
| 63 | + 'end_date': _('Course end date'), | |
| 64 | + 'category': _('CourseCategory'), | |
| 65 | + 'coordenator': _('Coordenator'), | |
| 65 | 66 | } |
| 66 | 67 | help_texts = { |
| 67 | - 'name': _('Course name'), | |
| 68 | - 'objectivies': _('Course objective'), | |
| 69 | - 'content': _('Course modules'), | |
| 70 | - 'max_students': _('Max number of students that a class can have'), | |
| 71 | - 'init_register_date': _('Date that starts the registration period of the course (dd/mm/yyyy)'), | |
| 72 | - 'end_register_date': _('Date that ends the registration period of the course (dd/mm/yyyy)'), | |
| 73 | - 'init_date': _('Date that the course starts (dd/mm/yyyy)'), | |
| 74 | - 'end_date': _('Date that the course ends (dd/mm/yyyy)'), | |
| 75 | - 'category': _('CourseCategory which the course belongs'), | |
| 68 | + 'name': _('Course name'), | |
| 69 | + 'objectivies': _('Course objective'), | |
| 70 | + 'content': _('Course modules'), | |
| 71 | + 'max_students': _('Max number of students that a class can have'), | |
| 72 | + 'init_register_date': _('Date that starts the registration period of the course (dd/mm/yyyy)'), | |
| 73 | + 'end_register_date': _('Date that ends the registration period of the course (dd/mm/yyyy)'), | |
| 74 | + 'init_date': _('Date that the course starts (dd/mm/yyyy)'), | |
| 75 | + 'end_date': _('Date that the course ends (dd/mm/yyyy)'), | |
| 76 | + 'category': _('CourseCategory which the course belongs'), | |
| 77 | + 'coordenator': _('Course Coordenator'), | |
| 76 | 78 | } |
| 77 | 79 | |
| 78 | 80 | widgets = { |
| 79 | - 'categoy': forms.Select(), | |
| 80 | - 'objectivies': SummernoteWidget(attrs={'cols': 80, 'rows': 5}), | |
| 81 | - 'content': SummernoteWidget(attrs={'cols': 80, 'rows': 5}), | |
| 81 | + 'categoy': forms.Select(), | |
| 82 | + 'coordenator': forms.Select(), | |
| 83 | + 'objectivies': SummernoteWidget(attrs={'cols': 80, 'rows': 5}), | |
| 84 | + 'content': SummernoteWidget(attrs={'cols': 80, 'rows': 5}), | |
| 82 | 85 | } |
| 83 | 86 | |
| 84 | 87 | class UpdateCourseForm(CourseForm): |
| ... | ... | @@ -89,35 +92,38 @@ class UpdateCourseForm(CourseForm): |
| 89 | 92 | class Meta: |
| 90 | 93 | model = Course |
| 91 | 94 | fields = ('name', 'objectivies', 'content', 'max_students', 'init_register_date', 'end_register_date', |
| 92 | - 'init_date', 'end_date', 'category','students',) | |
| 95 | + 'init_date', 'end_date', 'category','students', 'coordenator') | |
| 93 | 96 | labels = { |
| 94 | - 'name': _('Name'), | |
| 95 | - 'objectivies': _('Objectives'), | |
| 96 | - 'content': _('Content'), | |
| 97 | - 'max_students': _('Number of studets maximum'), | |
| 98 | - 'init_register_date': _('Course registration start date'), | |
| 99 | - 'end_register_date': _('Course registration end date'), | |
| 100 | - 'init_date': _('Course start date'), | |
| 101 | - 'end_date': _('Course end date'), | |
| 102 | - 'category': _('CourseCategory'), | |
| 103 | - 'students': _('Student'), | |
| 97 | + 'name': _('Name'), | |
| 98 | + 'objectivies': _('Objectives'), | |
| 99 | + 'content': _('Content'), | |
| 100 | + 'max_students': _('Number of studets maximum'), | |
| 101 | + 'init_register_date': _('Course registration start date'), | |
| 102 | + 'end_register_date': _('Course registration end date'), | |
| 103 | + 'init_date': _('Course start date'), | |
| 104 | + 'end_date': _('Course end date'), | |
| 105 | + 'category': _('CourseCategory'), | |
| 106 | + 'coordenator': _('Coordenator'), | |
| 107 | + 'students': _('Student'), | |
| 104 | 108 | } |
| 105 | 109 | help_texts = { |
| 106 | - 'name': _('Course name'), | |
| 107 | - 'objectivies': _('Course objective'), | |
| 108 | - 'content': _('Course modules'), | |
| 109 | - 'max_students': _('Max number of students that a class can have'), | |
| 110 | - 'init_register_date': _('Date that starts the registration period of the course (dd/mm/yyyy)'), | |
| 111 | - 'end_register_date': _('Date that ends the registration period of the course (dd/mm/yyyy)'), | |
| 112 | - 'init_date': _('Date that the course starts (dd/mm/yyyy)'), | |
| 113 | - 'end_date': _('Date that the course ends (dd/mm/yyyy)'), | |
| 114 | - 'category': _('CourseCategory which the course belongs'), | |
| 115 | - 'students': _("Course's Students"), | |
| 110 | + 'name': _('Course name'), | |
| 111 | + 'objectivies': _('Course objective'), | |
| 112 | + 'content': _('Course modules'), | |
| 113 | + 'max_students': _('Max number of students that a class can have'), | |
| 114 | + 'init_register_date': _('Date that starts the registration period of the course (dd/mm/yyyy)'), | |
| 115 | + 'end_register_date': _('Date that ends the registration period of the course (dd/mm/yyyy)'), | |
| 116 | + 'init_date': _('Date that the course starts (dd/mm/yyyy)'), | |
| 117 | + 'end_date': _('Date that the course ends (dd/mm/yyyy)'), | |
| 118 | + 'category': _('CourseCategory which the course belongs'), | |
| 119 | + 'coordenator': _('Course Coordenator'), | |
| 120 | + 'students': _("Course's Students"), | |
| 116 | 121 | } |
| 117 | 122 | widgets = { |
| 118 | - 'categoy': forms.Select(), | |
| 119 | - 'objectivies': SummernoteWidget(attrs={'cols': 80, 'rows': 5}), | |
| 120 | - 'content': SummernoteWidget(attrs={'cols': 80, 'rows': 5}), | |
| 123 | + 'categoy': forms.Select(), | |
| 124 | + 'coordenator': forms.Select(), | |
| 125 | + 'objectivies': SummernoteWidget(attrs={'cols': 80, 'rows': 5}), | |
| 126 | + 'content': SummernoteWidget(attrs={'cols': 80, 'rows': 5}), | |
| 121 | 127 | } |
| 122 | 128 | |
| 123 | 129 | class SubjectForm(forms.ModelForm): | ... | ... |
| ... | ... | @@ -0,0 +1,23 @@ |
| 1 | +# -*- coding: utf-8 -*- | |
| 2 | +# Generated by Django 1.10 on 2016-11-08 15:00 | |
| 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 | + dependencies = [ | |
| 13 | + migrations.swappable_dependency(settings.AUTH_USER_MODEL), | |
| 14 | + ('courses', '0003_remove_course_image'), | |
| 15 | + ] | |
| 16 | + | |
| 17 | + operations = [ | |
| 18 | + migrations.AddField( | |
| 19 | + model_name='course', | |
| 20 | + name='coordenator', | |
| 21 | + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='course_coordenator', to=settings.AUTH_USER_MODEL, verbose_name='Coordenator'), | |
| 22 | + ), | |
| 23 | + ] | ... | ... |
courses/models.py
| ... | ... | @@ -47,6 +47,7 @@ class Course(models.Model): |
| 47 | 47 | init_date = models.DateField(_('Begin of Course Date')) |
| 48 | 48 | end_date = models.DateField(_('End of Course Date')) |
| 49 | 49 | category = models.ForeignKey(CourseCategory, verbose_name = _('Category'), related_name='course_category') |
| 50 | + coordenator = models.ForeignKey(User, verbose_name = _('Coordenator'), related_name ='course_coordenator', null = True) | |
| 50 | 51 | professors = models.ManyToManyField(User,verbose_name=_('Professors'), related_name='courses_professors') |
| 51 | 52 | students = models.ManyToManyField(User,verbose_name=_('Students'), related_name='courses_student', blank = True) |
| 52 | 53 | public = models.BooleanField(_('Public'), default=False) | ... | ... |
courses/templates/course/course_card.html
| ... | ... | @@ -34,6 +34,7 @@ |
| 34 | 34 | <div class="panel-collapse collapseOne-{{course.slug}} collapse in" role="tabpanel" aria-labelledby="headingOne" aria-expanded="true" aria-hidden="false" tabindex="0"> |
| 35 | 35 | <div class="panel-body"> |
| 36 | 36 | <p><b>{% trans 'Course Name' %}: </b>{{course.name}}</p> |
| 37 | + <p><b>{% trans 'Coordenator' %}: </b>{{course.coordenator}}</p> | |
| 37 | 38 | <p><b>{% trans 'Professor' %}: </b>{{course.professors.all.0}}</p> |
| 38 | 39 | <p> |
| 39 | 40 | <b>{% trans 'Description' %}:</b> |
| ... | ... | @@ -41,6 +42,14 @@ |
| 41 | 42 | {{course.content | safe }} |
| 42 | 43 | </i> |
| 43 | 44 | </p> |
| 45 | + <div class="row"> | |
| 46 | + <div class="col-xs-6 col-md-6 data_register_course"> | |
| 47 | + <p><b>{% trans 'Init register' %}: </b>{{course.init_register_date}}</p> | |
| 48 | + </div> | |
| 49 | + <div class="col-xs-6 col-md-6 data_register_course"> | |
| 50 | + <p><b>{% trans 'End register' %}: </b>{{course.end_register_date}}</p> | |
| 51 | + </div> | |
| 52 | + </div> | |
| 44 | 53 | </div> |
| 45 | 54 | </div> |
| 46 | 55 | </div> | ... | ... |
courses/templates/course/view.html
| ... | ... | @@ -94,15 +94,22 @@ |
| 94 | 94 | </div> |
| 95 | 95 | </div> |
| 96 | 96 | <div class="panel-body"> |
| 97 | - <p><b>{% trans 'Coordinator' %}: </b>{% for professor in course.professors.all %}{% if not forloop.first %},{% endif %} | |
| 98 | - {{professor}}{% if forloop.last %}.{% endif %}{% endfor %}</p> | |
| 97 | + <p><b>{% trans 'Coordinator' %}: </b>{{course.coordenator}}</p> | |
| 98 | + <p><b>{% trans 'Teacher' %}: </b>{{course.professors.all.0}}</p> | |
| 99 | 99 | <p> |
| 100 | 100 | <b>{% trans 'Description' %}:</b> |
| 101 | 101 | <i> |
| 102 | 102 | {{ course.objectivies |safe }} |
| 103 | 103 | </i> |
| 104 | 104 | </p> |
| 105 | - | |
| 105 | + <div class="row"> | |
| 106 | + <div class="col-xs-6 col-md-6 data_register_course"> | |
| 107 | + <p><b>{% trans 'Begin of Course Date' %}: </b>{{course.init_date}}</p> | |
| 108 | + </div> | |
| 109 | + <div class="col-xs-6 col-md-6 data_register_course"> | |
| 110 | + <p><b>{% trans 'End of Course Date' %}: </b>{{course.end_date}}</p> | |
| 111 | + </div> | |
| 112 | + </div> | |
| 106 | 113 | </div> |
| 107 | 114 | </div> |
| 108 | 115 | ... | ... |
courses/templates/topic/link_topic_list_edit.html
| 1 | 1 | {% load static i18n list_topic_foruns permission_tags %} |
| 2 | 2 | <div id="list-topic{{ topic.id }}-links-edit"> |
| 3 | -{% for link in links%} | |
| 4 | - | |
| 5 | - <li class="icon_edit_remove" id = "link_edit_icon_{{ link.slug }}"> <a href="javascript:modal.get('{% url 'course:links:update_link' link.slug %}', '#linksModalEdit', '#requisicoes_ajax')"><i class="fa fa-pencil fa-lg" aria-hidden="true"></i></a> <a href="javascript:modal.get('{% url 'course:links:delete_link' link.slug %}', '#linkDeleteModal', '#requisicoes_ajax')"><i class="fa fa-trash fa-lg" aria-hidden="true"></i></a></li> | |
| 6 | - <li id = "link_{{ link.slug }}"><i class="fa fa-link" aria-hidden="true"></i> <a href="javascript:modal.get('{% url 'course:links:view_link' link.slug %}', '#viewLinkModal','#requisicoes_ajax')">{{link.name}}</a></li> | |
| 7 | - | |
| 8 | -{% endfor %} | |
| 3 | + {% for link in links%} | |
| 4 | + <li class="icon_edit_remove" id = "link_edit_icon_{{ link.slug }}"> <a href="javascript:modal.get('{% url 'course:links:update_link' link.slug %}', '#linksModalEdit', '#requisicoes_ajax')"><i class="fa fa-pencil fa-lg" aria-hidden="true"></i></a> <a href="javascript:modal.get('{% url 'course:links:delete_link' link.slug %}', '#linkDeleteModal', '#requisicoes_ajax')"><i class="fa fa-trash fa-lg" aria-hidden="true"></i></a></li> | |
| 5 | + <li id = "link_{{ link.slug }}"><i class="fa fa-link" aria-hidden="true"></i> <a href="javascript:modal.get('{% url 'course:links:view_link' link.slug %}', '#viewLinkModal','#requisicoes_ajax')">{{link.name}}</a></li> | |
| 6 | + {% endfor %} | |
| 9 | 7 | </div> |
| 10 | - | |
| 11 | -{# <div class="row" id="divModalLinkUpdate">#} | |
| 12 | - | |
| 13 | -{# </div>#} | ... | ... |
users/templates/list_users.html
| ... | ... | @@ -62,7 +62,7 @@ |
| 62 | 62 | {% if acc.gender == 'M' %} |
| 63 | 63 | <img src="{% static 'img/male_avatar.png' %}" alt="Avatar" class="img-circle img-responsive img-list-user"> |
| 64 | 64 | {% else %} |
| 65 | - <img src="{% static 'img/female_avatar.png' %}" alt="Avatar" class="img-circle img-responsive img-list-user"> | |
| 65 | + <img src="{% static 'img/female_avatar.png' %}" alt="Avatar" class="img-circle img-responsive img-list-user"> | |
| 66 | 66 | {% endif %} |
| 67 | 67 | {% endif %} |
| 68 | 68 | </div> |
| ... | ... | @@ -76,7 +76,7 @@ |
| 76 | 76 | <a href="javascript:void(0)" class="btn btn-danger btn-raised btn-lg" data-toggle="modal" data-target="#DeleteModal{{ forloop.counter }}">{% trans 'Delete' %}</a> |
| 77 | 77 | </div> |
| 78 | 78 | </div> |
| 79 | - | |
| 79 | + | |
| 80 | 80 | |
| 81 | 81 | <!-- Modal --> |
| 82 | 82 | <div class="modal fade" id="DeleteModal{{ forloop.counter }}" tabindex="-1" role="dialog" aria-labelledby="DeleteModalLabel"> |
| ... | ... | @@ -87,10 +87,10 @@ |
| 87 | 87 | <h4 class="modal-title" id="DeleteModalLabel">{% trans 'Confirm delete' %}</h4> |
| 88 | 88 | </div> |
| 89 | 89 | <div class="modal-body"> |
| 90 | - {% trans 'Are you sure you want to delete the user' %} <b>{{acc.name}}</b>? | |
| 90 | + {% trans 'Are you sure you want to delete the user' %} <b>{{acc.name}}</b>? | |
| 91 | 91 | </div> |
| 92 | 92 | <div class="modal-footer"> |
| 93 | - <a href="#" class="btn btn-raised btn-danger" data-dismiss="modal">{% trans 'Cancel' %}</a> | |
| 93 | + <a href="#" class="btn btn-raised btn-danger" data-dismiss="modal">{% trans 'Cancel' %}</a> | |
| 94 | 94 | <a href="{% url 'users:delete' acc.username %}" class="btn btn-raised btn-success" style="margin-top: 0">{% trans 'Delete' %}</a> |
| 95 | 95 | </div> |
| 96 | 96 | </div> | ... | ... |
users/templates/users/profile.html
| ... | ... | @@ -43,7 +43,7 @@ |
| 43 | 43 | <div class="col-lg-12"> |
| 44 | 44 | <div class="well well-lg"> |
| 45 | 45 | <div class="row"> |
| 46 | - | |
| 46 | + | |
| 47 | 47 | {% if user.image %} |
| 48 | 48 | <div class="col-md-4" style="width: 200px;overflow:hidden;margin-left: 8em;height: 150px;background-image: url('{{user.image.url}}');background-position: center;background-size: cover;"> |
| 49 | 49 | {% else %} |
| ... | ... | @@ -51,7 +51,7 @@ |
| 51 | 51 | {% if user.gender == 'M' %} |
| 52 | 52 | <img src="{% static 'img/male_avatar.png' %}" alt="Avatar" class="img-circle img-responsive img-list-user" style="margin-left: 8em;"> |
| 53 | 53 | {% else %} |
| 54 | - <img src="{% static 'img/female_avatar.png' %}" alt="Avatar" class="img-circle img-responsive img-list-user" style="margin-left: 8em;"> | |
| 54 | + <img src="{% static 'img/female_avatar.png' %}" alt="Avatar" class="img-circle img-responsive img-list-user" style="margin-left: 8em;"> | |
| 55 | 55 | {% endif %} |
| 56 | 56 | {% endif %} |
| 57 | 57 | </div> |
| ... | ... | @@ -65,7 +65,7 @@ |
| 65 | 65 | {% else %} |
| 66 | 66 | <td> {% trans "OffLine" %}</td> |
| 67 | 67 | {% endif %} |
| 68 | - | |
| 68 | + | |
| 69 | 69 | </tr> |
| 70 | 70 | <tr> |
| 71 | 71 | <td>{% trans "Name" %}:</td> |
| ... | ... | @@ -94,7 +94,7 @@ |
| 94 | 94 | {% else %} |
| 95 | 95 | <td>{% trans "Student" %}</td> |
| 96 | 96 | {% endif %} |
| 97 | - | |
| 97 | + | |
| 98 | 98 | </tr> |
| 99 | 99 | <tr> |
| 100 | 100 | <td>{% trans "CPF" %}:</td> |
| ... | ... | @@ -104,7 +104,7 @@ |
| 104 | 104 | {% else %} |
| 105 | 105 | <td>{% trans "doesn't possess CPF" %}</td> |
| 106 | 106 | {% endif %} |
| 107 | - | |
| 107 | + | |
| 108 | 108 | </tr> |
| 109 | 109 | <tr> |
| 110 | 110 | <td>{% trans "Phone Number" %}:</td> |
| ... | ... | @@ -113,7 +113,7 @@ |
| 113 | 113 | {% else %} |
| 114 | 114 | <td>{% trans "doesn't possess Phone" %}</td> |
| 115 | 115 | {% endif %} |
| 116 | - | |
| 116 | + | |
| 117 | 117 | </tr> |
| 118 | 118 | <tr> |
| 119 | 119 | <td>{% trans "Gender" %}:</td> | ... | ... |
users/templates/users/remove_account.html
| ... | ... | @@ -29,7 +29,7 @@ |
| 29 | 29 | <p>{% trans 'All data will be lost and havent how recover it.' %}</p> |
| 30 | 30 | <div class="row"> |
| 31 | 31 | <div class="col-md-3 col-sm-2 col-xs-2"> |
| 32 | - <a href="#" class="btn btn-raised btn-block btn-success" >{% trans 'Remove' %}</a> | |
| 32 | + <a href="{% url 'users:remove' user.username %}" class="btn btn-raised btn-block btn-success" >{% trans 'Remove' %}</a> | |
| 33 | 33 | </div> |
| 34 | 34 | <div class="col-md-3 col-sm-2 col-xs-2"> |
| 35 | 35 | <a href="{% url 'users:profile' %}" class="btn btn-raised btn-block btn-danger" >{% trans 'Cancel' %}</a> | ... | ... |
users/templates/users/search.html
| 1 | -<html> | |
| 2 | -<h1> Links </h1> | |
| 3 | -{% for link in link_list %} | |
| 4 | - {{link.name}} </br> | |
| 5 | -{% endfor %} | |
| 6 | - | |
| 7 | -<h1> Polls </h1> | |
| 8 | -{% for poll in poll_list %} | |
| 9 | - {{poll.name}} </br> | |
| 10 | -{% endfor %} | |
| 11 | - | |
| 12 | -<h1> Exams </h1> | |
| 13 | -{% for exam in exam_list %} | |
| 14 | - {{exam.name}} </br> | |
| 15 | -{% endfor %} | |
| 16 | - | |
| 17 | -<h1> Forums </h1> | |
| 18 | -{% for forum in forum_list %} | |
| 19 | - {{forum.name}} </br> | |
| 20 | -{% endfor %} | |
| 21 | - | |
| 22 | -<h1> Files </h1> | |
| 23 | -{% for file in file_list %} | |
| 24 | - {{file.name}} </br> | |
| 25 | -{% endfor %} | |
| 26 | -</html> | |
| 1 | +{% extends 'home.html' %} | |
| 2 | + | |
| 3 | +{% load i18n pagination django_bootstrap_breadcrumbs permission_tags static %} | |
| 4 | +{% block javascript %} | |
| 5 | + <script type="text/javascript" src="{% static 'js/forum.js' %}"></script> | |
| 6 | + <script src="{% static 'js/file.js' %}"></script> | |
| 7 | + <script type="text/javascript" src="{% static 'js/material.js' %}"></script> | |
| 8 | + <script type = "text/javascript" src="{% static 'js/topic_editation_presentation.js' %}"></script> | |
| 9 | + <script type = "text/javascript" src="{% static 'js/links.js' %}"></script> | |
| 10 | + <script src="{% static 'js/modals_requisitions.js'%}"></script> | |
| 11 | + <script src="{% static 'js/modal_poll.js'%}"></script> | |
| 12 | +{% endblock %} | |
| 13 | + | |
| 14 | +{% block breadcrumbs %} | |
| 15 | + {{ block.super }} | |
| 16 | + {% breadcrumb 'Search' 'users:search' %} | |
| 17 | + | |
| 18 | +{% endblock %} | |
| 19 | + | |
| 20 | + | |
| 21 | +{% block content %} | |
| 22 | +<div class="jumbotron"> | |
| 23 | +<h3>Search Result:</h3> {{qtd}} items found | |
| 24 | +<div class="panel-group"> | |
| 25 | + <div class="panel panel-default"> | |
| 26 | + <div class="panel-heading"> | |
| 27 | + <h4 class="panel-title"> | |
| 28 | + <a data-toggle="collapse" href="#Link" id="bot"> <i class="fa fa-caret-square-o-down" aria-hidden="true" id="down"></i>Links</a> | |
| 29 | + </h4> | |
| 30 | + </div> | |
| 31 | + <div id="Link" class="panel-collapse collapse"> | |
| 32 | + <div class="panel-body"> | |
| 33 | + | |
| 34 | + {% if link_list %} | |
| 35 | + {% for link in link_list %} | |
| 36 | + <li id = "link_{{ link.slug }}"><i class="fa fa-link" aria-hidden="true"></i> <a href="javascript:modal.get('{% url 'course:links:view_link' link.slug %}', '#viewLinkModal','#divModalLink')">{{link.name}}</a></li> | |
| 37 | + {% endfor %} | |
| 38 | + <div class = 'row' id ="divModalLink"> | |
| 39 | + | |
| 40 | + </div> | |
| 41 | + {% else %} | |
| 42 | + {% trans 'No results found'%} | |
| 43 | + {% endif%} | |
| 44 | + </div> | |
| 45 | + | |
| 46 | + </div> | |
| 47 | + </div> | |
| 48 | +</div> | |
| 49 | +<div class="panel-group"> | |
| 50 | + <div class="panel panel-default"> | |
| 51 | + <div class="panel-heading"> | |
| 52 | + <h4 class="panel-title"> | |
| 53 | + <a data-toggle="collapse" href="#File" id="bot1"> <i class="fa fa-caret-square-o-down" aria-hidden="true" id="down1"></i>File</a> | |
| 54 | + </h4> | |
| 55 | + </div> | |
| 56 | + <div id="File" class="panel-collapse collapse"> | |
| 57 | + <div class="panel-body"> | |
| 58 | + {% if file_list %} | |
| 59 | + {% for file in file_list %} | |
| 60 | + <li id="file_{{ file.slug }}"><i class="material-icons">{{ file.file_type.icon }}</i> <a href="{% url 'course:file_material_view' file.slug %}" target="_blank">{{ file.name }}</a></li> | |
| 61 | + {% endfor%} | |
| 62 | + {% else %} | |
| 63 | + {% trans 'No results found' %} | |
| 64 | + {% endif %} | |
| 65 | + | |
| 66 | + <div class="row" id="divModalFile"> | |
| 67 | + | |
| 68 | + </div> | |
| 69 | + </div> | |
| 70 | + | |
| 71 | + | |
| 72 | + </div> | |
| 73 | + </div> | |
| 74 | +</div> | |
| 75 | + | |
| 76 | +<div class="panel-group"> | |
| 77 | + <div class="panel panel-default"> | |
| 78 | + <div class="panel-heading"> | |
| 79 | + <h4 class="panel-title"> | |
| 80 | + <a data-toggle="collapse" href="#Forum" id="bot2"> <i class="fa fa-caret-square-o-down" aria-hidden="true" id="down2"></i>Forum</a> | |
| 81 | + </h4> | |
| 82 | + </div> | |
| 83 | + <div id="Forum" class="panel-collapse collapse"> | |
| 84 | + <div class="panel-body"> | |
| 85 | + {% if forum_list %} | |
| 86 | + {% for forum in forum_list %} | |
| 87 | + <li><i class="fa fa-commenting" aria-hidden="true"></i> <a id="forum_{{ forum.id }}" href="{% url 'course:forum:view' forum.slug %}"> {{ forum }}</a></li> | |
| 88 | + {% endfor %} | |
| 89 | + {% else %} | |
| 90 | + | |
| 91 | + {% trans 'No results found' %} | |
| 92 | + | |
| 93 | + {% endif %} | |
| 94 | + </div> | |
| 95 | + | |
| 96 | + </div> | |
| 97 | + </div> | |
| 98 | +</div> | |
| 99 | +<div class="panel-group"> | |
| 100 | + <div class="panel panel-default"> | |
| 101 | + <div class="panel-heading"> | |
| 102 | + <h4 class="panel-title"> | |
| 103 | + <a data-toggle="collapse" href="#Exam" id="bot3"> <i class="fa fa-caret-square-o-down" aria-hidden="true" id="down3"></i>Exam</a> | |
| 104 | + </h4> | |
| 105 | + </div> | |
| 106 | + <div id="Exam" class="panel-collapse collapse"> | |
| 107 | + <div class="panel-body"> | |
| 108 | + {% if exam_list %} | |
| 109 | + | |
| 110 | + {% else %} | |
| 111 | + {% trans 'No results found' %} | |
| 112 | + {% endif %} | |
| 113 | + </div> | |
| 114 | + | |
| 115 | + </div> | |
| 116 | + </div> | |
| 117 | +</div> | |
| 118 | +<div class="panel-group"> | |
| 119 | + <div class="panel panel-default"> | |
| 120 | + <div class="panel-heading"> | |
| 121 | + <h4 class="panel-title"> | |
| 122 | + <a data-toggle="collapse" href="#Poll" id="bot4"> <i class="fa fa-caret-square-o-down" aria-hidden="true" id="down4"></i>Poll</a> | |
| 123 | + </h4> | |
| 124 | + </div> | |
| 125 | + <div id="Poll" class="panel-collapse collapse"> | |
| 126 | + <div class="panel-body"> | |
| 127 | + {% if poll_list %} | |
| 128 | + {% for poll in poll_list %} | |
| 129 | + <li id="poll_{{poll.slug}}"><i class="material-icons">{% trans 'poll' %}</i> <a href="javascript:modal.get('{% url 'course:poll:view_poll' poll.slug %}','#poll','#modal_poll');">{{ poll.name }}</a></li> | |
| 130 | + {% endfor %} | |
| 131 | + {% else %} | |
| 132 | + {% trans 'No results found' %} | |
| 133 | + {% endif %} | |
| 134 | + <div class="row" id="modal_poll"> | |
| 135 | + | |
| 136 | + </div> | |
| 137 | + </div> | |
| 138 | + </div> | |
| 139 | + </div> | |
| 140 | +</div> | |
| 141 | +</div> | |
| 142 | + | |
| 143 | +<script type="text/javascript" src="{% static 'js/topic_editation_presentation.js' %}"></script> | |
| 144 | +<script type="text/javascript" src="{% static 'js/amadeus.js' %}"> </script> | |
| 145 | +<script> | |
| 146 | + // set up all (import templates, set up navbar and set environment variables) | |
| 147 | + Amadeus.load(function() { | |
| 148 | + // set data to breadcrumb | |
| 149 | + Amadeus.setBreadcrumb(null,'Home'); | |
| 150 | + }); | |
| 151 | +</script> | |
| 152 | + | |
| 153 | +{% endblock %} | ... | ... |
users/urls.py
| ... | ... | @@ -7,7 +7,8 @@ urlpatterns = [ |
| 7 | 7 | url(r'^create/$', views.Create.as_view(), name='create'), |
| 8 | 8 | url(r'^edit/(?P<username>[\w_-]+)/$', views.Update.as_view(), name='update'), |
| 9 | 9 | url(r'^view/(?P<username>[\w_-]+)/$', views.View.as_view(), name='view'), |
| 10 | - url(r'^delete/(?P<username>[\w_-]+)/$', views.delete, name='delete'), | |
| 10 | + url(r'^delete/(?P<username>[\w_-]+)/$', views.delete_user, name='delete'), | |
| 11 | + url(r'^remove/(?P<username>[\w_-]+)/$', views.remove_account, name='remove'), | |
| 11 | 12 | url(r'^profile/$', views.Profile.as_view(), name='profile'), |
| 12 | 13 | url(r'^search/$', views.SearchView.as_view(), name='search'), |
| 13 | 14 | # |
| ... | ... | @@ -15,5 +16,5 @@ urlpatterns = [ |
| 15 | 16 | url(r'^profile/change_password/$', views.Change_password.as_view(), name='change_password'), |
| 16 | 17 | url(r'^profile/remove_account/$', views.Remove_account.as_view(), name='remove_account'), |
| 17 | 18 | url(r'^profile/delete/$', views.DeleteUser.as_view(), name='delete_profile'), |
| 18 | - | |
| 19 | + | |
| 19 | 20 | ] | ... | ... |
users/views.py
| ... | ... | @@ -106,12 +106,17 @@ class View(LoginRequiredMixin, generic.DetailView): |
| 106 | 106 | slug_field = 'username' |
| 107 | 107 | slug_url_kwarg = 'username' |
| 108 | 108 | |
| 109 | -def delete(request,username): | |
| 109 | +def delete_user(request,username): | |
| 110 | 110 | user = get_object_or_404(User,username = username) |
| 111 | 111 | user.delete() |
| 112 | 112 | messages.success(request,_("User deleted Successfully!")) |
| 113 | 113 | return redirect('users:manage') |
| 114 | 114 | |
| 115 | +def remove_account(request,username): | |
| 116 | + user = get_object_or_404(User,username = username) | |
| 117 | + user.delete() | |
| 118 | + messages.success(request,_("User deleted Successfully!")) | |
| 119 | + return redirect('core:logout') | |
| 115 | 120 | |
| 116 | 121 | class Change_password(generic.TemplateView): |
| 117 | 122 | template_name = 'users/change_password.html' | ... | ... |