Commit efe9211511b329a0a898abd09abd21a4c91af927

Authored by Filipe Medeiros
1 parent b5382624

Ajustes nos campos da classe Course

app/templates/home_admin_content.html
@@ -2,16 +2,7 @@ @@ -2,16 +2,7 @@
2 2
3 {% for course in objects %} 3 {% for course in objects %}
4 <div class="panel panel-default courseHome"> 4 <div class="panel panel-default courseHome">
5 - <div class="panel-body">  
6 - <p>{{ course }}</p>  
7 - </div>  
8 - <div class="panel-footer">  
9 - <ul>  
10 - <li>{% trans 'Students' %}: {{ course.max_students }}</li>  
11 - <li>{% trans 'Beginning' %}: {{ course.init_date }}</li>  
12 - <li>{% trans 'End' %}: {{ course.end_date }}</li>  
13 - </ul>  
14 - </div> 5 + <br><h4>{{ course }}</h4>
15 <a href="{% url 'course:update' course.slug %}" class="btn btn-outline-info">{% trans 'Edit' %}</a> 6 <a href="{% url 'course:update' course.slug %}" class="btn btn-outline-info">{% trans 'Edit' %}</a>
16 </div> 7 </div>
17 -{% endfor %}  
18 \ No newline at end of file 8 \ No newline at end of file
  9 +{% endfor %}
courses/forms.py
@@ -16,60 +16,19 @@ class CategoryCourseForm(forms.ModelForm): @@ -16,60 +16,19 @@ class CategoryCourseForm(forms.ModelForm):
16 'name': _('CourseCategory name') 16 'name': _('CourseCategory name')
17 } 17 }
18 18
19 -  
20 class CourseForm(forms.ModelForm): 19 class CourseForm(forms.ModelForm):
21 - def clean_end_register_date(self):  
22 - init_register_date = self.cleaned_data['init_register_date']  
23 - end_register_date = self.cleaned_data['end_register_date']  
24 -  
25 - if init_register_date and end_register_date and end_register_date < init_register_date:  
26 - raise forms.ValidationError(_('The end date may not be before the start date.'))  
27 - return end_register_date  
28 -  
29 - def clean_init_date(self):  
30 - end_register_date = self.cleaned_data['end_register_date']  
31 - init_date = self.cleaned_data['init_date']  
32 -  
33 - if end_register_date and init_date and init_date <= end_register_date:  
34 - raise forms.ValidationError(_('The course start date must be after the end of registration.'))  
35 - return init_date  
36 -  
37 - def clean_end_date(self):  
38 - init_date = self.cleaned_data['init_date']  
39 - end_date = self.cleaned_data['end_date']  
40 -  
41 - if init_date and end_date and end_date < init_date:  
42 - raise forms.ValidationError(_('The end date may not be before the start date.'))  
43 - return end_date  
44 -  
45 20
46 class Meta: 21 class Meta:
47 model = Course 22 model = Course
48 - fields = ('name', 'objectivies', 'content', 'max_students', 'init_register_date', 'end_register_date',  
49 - 'init_date', 'end_date', 'category', 'coordenator','public') 23 + fields = ('name', 'category', 'coordenator','public')
50 labels = { 24 labels = {
51 'name': _('Name'), 25 'name': _('Name'),
52 - 'objectivies': _('Objectives'),  
53 - 'content': _('Content'),  
54 - 'max_students': _('Number of studets maximum'),  
55 - 'init_register_date': _('Course registration start date'),  
56 - 'end_register_date': _('Course registration end date'),  
57 - 'init_date': _('Course start date'),  
58 - 'end_date': _('Course end date'),  
59 'category': _('Category'), 26 'category': _('Category'),
60 'coordenator': _('Coordenator'), 27 'coordenator': _('Coordenator'),
61 'public':_('Public'), 28 'public':_('Public'),
62 } 29 }
63 help_texts = { 30 help_texts = {
64 'name': _('Course name'), 31 'name': _('Course name'),
65 - 'objectivies': _('Course objective'),  
66 - 'content': _('Course modules'),  
67 - 'max_students': _('Max number of students that a class can have'),  
68 - 'init_register_date': _('Date that starts the registration period of the course (dd/mm/yyyy)'),  
69 - 'end_register_date': _('Date that ends the registration period of the course (dd/mm/yyyy)'),  
70 - 'init_date': _('Date that the course starts (dd/mm/yyyy)'),  
71 - 'end_date': _('Date that the course ends (dd/mm/yyyy)'),  
72 - 'category': _('CourseCategory which the course belongs'),  
73 'coordenator': _('Course Coordenator'), 32 'coordenator': _('Course Coordenator'),
74 'public':_('To define if the course can be accessed by people not registered'), 33 'public':_('To define if the course can be accessed by people not registered'),
75 } 34 }
@@ -77,77 +36,31 @@ class CourseForm(forms.ModelForm): @@ -77,77 +36,31 @@ class CourseForm(forms.ModelForm):
77 widgets = { 36 widgets = {
78 'ategoy': forms.Select(), 37 'ategoy': forms.Select(),
79 'coordenator': forms.Select(), 38 'coordenator': forms.Select(),
80 - 'content': SummernoteWidget(),  
81 - 'objectivies': SummernoteWidget(),  
82 } 39 }
83 40
84 class UpdateCourseForm(CourseForm): 41 class UpdateCourseForm(CourseForm):
85 42
86 - def clean_end_register_date(self):  
87 - init_register_date = self.cleaned_data['init_register_date']  
88 - end_register_date = self.cleaned_data['end_register_date']  
89 -  
90 - if init_register_date and end_register_date and end_register_date < init_register_date:  
91 - raise forms.ValidationError(_('The end date may not be before the start date.'))  
92 - return end_register_date  
93 -  
94 - def clean_init_date(self):  
95 - end_register_date = self.cleaned_data['end_register_date']  
96 - init_date = self.cleaned_data['init_date']  
97 -  
98 - if end_register_date and init_date and init_date <= end_register_date:  
99 - raise forms.ValidationError(_('The course start date must be after the end of registration.'))  
100 - return init_date  
101 -  
102 - def clean_end_date(self):  
103 - init_date = self.cleaned_data['init_date']  
104 - end_date = self.cleaned_data['end_date']  
105 -  
106 - if init_date and end_date and end_date < init_date:  
107 - raise forms.ValidationError(_('The end date may not be before the start date.'))  
108 - return end_date  
109 -  
110 def __init__(self, *args, **kwargs): 43 def __init__(self, *args, **kwargs):
111 super(UpdateCourseForm, self).__init__(*args, **kwargs) 44 super(UpdateCourseForm, self).__init__(*args, **kwargs)
112 self.fields["students"].required = False 45 self.fields["students"].required = False
113 46
114 class Meta: 47 class Meta:
115 model = Course 48 model = Course
116 - fields = ('name', 'objectivies', 'content', 'max_students', 'init_register_date', 'end_register_date',  
117 - 'init_date', 'end_date', 'category','students', 'coordenator','public') 49 + fields = ('name', 'category', 'coordenator','public')
118 labels = { 50 labels = {
119 'name': _('Name'), 51 'name': _('Name'),
120 - 'objectivies': _('Objectives'),  
121 - 'content': _('Content'),  
122 - 'max_students': _('Number of studets maximum'),  
123 - 'init_register_date': _('Course registration start date'),  
124 - 'end_register_date': _('Course registration end date'),  
125 - 'init_date': _('Course start date'),  
126 - 'end_date': _('Course end date'),  
127 'category': _('Category'), 52 'category': _('Category'),
128 'coordenator': _('Coordenator'), 53 'coordenator': _('Coordenator'),
129 - 'students': _('Student'),  
130 'public':_('Public'), 54 'public':_('Public'),
131 } 55 }
132 help_texts = { 56 help_texts = {
133 'name': _('Course name'), 57 'name': _('Course name'),
134 - 'objectivies': _('Course objective'),  
135 - 'content': _('Course modules'),  
136 - 'max_students': _('Max number of students that a class can have'),  
137 - 'init_register_date': _('Date that starts the registration period of the course (dd/mm/yyyy)'),  
138 - 'end_register_date': _('Date that ends the registration period of the course (dd/mm/yyyy)'),  
139 - 'init_date': _('Date that the course starts (dd/mm/yyyy)'),  
140 - 'end_date': _('Date that the course ends (dd/mm/yyyy)'),  
141 - 'category': _('CourseCategory which the course belongs'),  
142 'coordenator': _('Course Coordenator'), 58 'coordenator': _('Course Coordenator'),
143 - 'students': _("Course's Students"),  
144 'public':_('To define if the course can be accessed by people not registered'), 59 'public':_('To define if the course can be accessed by people not registered'),
145 } 60 }
146 widgets = { 61 widgets = {
147 'categoy': forms.Select(), 62 'categoy': forms.Select(),
148 'coordenator': forms.Select(), 63 'coordenator': forms.Select(),
149 - 'content': SummernoteWidget(),  
150 - 'objectivies': SummernoteWidget(),  
151 } 64 }
152 65
153 class SubjectForm(forms.ModelForm): 66 class SubjectForm(forms.ModelForm):
courses/migrations/0001_initial.py
@@ -57,20 +57,13 @@ class Migration(migrations.Migration): @@ -57,20 +57,13 @@ class Migration(migrations.Migration):
57 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 57 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
58 ('name', models.CharField(max_length=100, verbose_name='Name')), 58 ('name', models.CharField(max_length=100, verbose_name='Name')),
59 ('slug', autoslug.fields.AutoSlugField(editable=False, populate_from='name', unique=True, verbose_name='Slug')), 59 ('slug', autoslug.fields.AutoSlugField(editable=False, populate_from='name', unique=True, verbose_name='Slug')),
60 - ('objectivies', models.TextField(blank=True, verbose_name='Objectivies')),  
61 - ('content', models.TextField(blank=True, verbose_name='Content')),  
62 - ('max_students', models.PositiveIntegerField(blank=True, verbose_name='Maximum Students')),  
63 ('create_date', models.DateTimeField(auto_now_add=True, verbose_name='Creation Date')), 60 ('create_date', models.DateTimeField(auto_now_add=True, verbose_name='Creation Date')),
64 - ('init_register_date', models.DateField(verbose_name='Register Date (Begin)')),  
65 - ('end_register_date', models.DateField(verbose_name='Register Date (End)')),  
66 - ('init_date', models.DateField(verbose_name='Begin of Course Date')),  
67 - ('end_date', models.DateField(verbose_name='End of Course Date')),  
68 ('public', models.BooleanField(default=False, verbose_name='Public')), 61 ('public', models.BooleanField(default=False, verbose_name='Public')),
69 ], 62 ],
70 options={ 63 options={
71 'verbose_name_plural': 'Courses', 64 'verbose_name_plural': 'Courses',
72 'verbose_name': 'Course', 65 'verbose_name': 'Course',
73 - 'ordering': ('create_date', 'name'), 66 + 'ordering': ('create_date', 'name'),
74 }, 67 },
75 ), 68 ),
76 migrations.CreateModel( 69 migrations.CreateModel(
courses/models.py
@@ -38,16 +38,9 @@ class Course(models.Model): @@ -38,16 +38,9 @@ class Course(models.Model):
38 38
39 name = models.CharField(_('Name'), max_length = 100) 39 name = models.CharField(_('Name'), max_length = 100)
40 slug = AutoSlugField(_("Slug"),populate_from='name',unique=True) 40 slug = AutoSlugField(_("Slug"),populate_from='name',unique=True)
41 - objectivies = models.TextField(_('Objectivies'), blank = True)  
42 - content = models.TextField(_('Content'), blank = True)  
43 - max_students = models.PositiveIntegerField(_('Maximum Students'), blank = True)  
44 - create_date = models.DateTimeField(_('Creation Date'), auto_now_add = True)  
45 - init_register_date = models.DateField(_('Register Date (Begin)'))  
46 - end_register_date = models.DateField(_('Register Date (End)'))  
47 - init_date = models.DateField(_('Begin of Course Date'))  
48 - end_date = models.DateField(_('End of Course Date')) 41 + create_date = models.DateTimeField(_('Creation Date'), auto_now_add = True, blank = True)
49 category = models.ForeignKey(CourseCategory, verbose_name = _('Category'), related_name='course_category') 42 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) 43 + coordenator = models.ForeignKey(User, verbose_name = _('Coordenator'), related_name ='course_coordenator', null = True, blank = True)
51 professors = models.ManyToManyField(User,verbose_name=_('Professors'), related_name='courses_professors') 44 professors = models.ManyToManyField(User,verbose_name=_('Professors'), related_name='courses_professors')
52 students = models.ManyToManyField(User,verbose_name=_('Students'), related_name='courses_student', blank = True) 45 students = models.ManyToManyField(User,verbose_name=_('Students'), related_name='courses_student', blank = True)
53 public = models.BooleanField(_('Public'), default=False) 46 public = models.BooleanField(_('Public'), default=False)
courses/serializers.py
@@ -6,8 +6,7 @@ class CourseSerializer(serializers.ModelSerializer): @@ -6,8 +6,7 @@ class CourseSerializer(serializers.ModelSerializer):
6 #The set comes from the ManyToMany Relationship in django 6 #The set comes from the ManyToMany Relationship in django
7 class Meta: 7 class Meta:
8 model = Course 8 model = Course
9 - fields = ('name', 'slug', 'objectivies', 'content', 'max_students', 'create_date',  
10 - 'init_register_date', 'end_register_date', 'init_date', 'end_date', 'public', 'category' ,'students', 'professors') 9 + fields = ('name', 'category', 'coordenator','public')
11 10
12 class SubjectSerializer(serializers.ModelSerializer): 11 class SubjectSerializer(serializers.ModelSerializer):
13 class Meta: 12 class Meta:
@@ -18,5 +17,3 @@ class TopicSerializer(serializers.ModelSerializer): @@ -18,5 +17,3 @@ class TopicSerializer(serializers.ModelSerializer):
18 class Meta: 17 class Meta:
19 model = Topic 18 model = Topic
20 fields = ('name', 'slug','description','create_date','update_date','visible','owner','subject') 19 fields = ('name', 'slug','description','create_date','update_date','visible','owner','subject')
21 -  
22 -  
courses/templates/course/course_card.html
@@ -3,9 +3,6 @@ @@ -3,9 +3,6 @@
3 <div class="panel panel-info"> 3 <div class="panel panel-info">
4 <div class="panel-heading course"> 4 <div class="panel-heading course">
5 <div class="row"> 5 <div class="row">
6 - <div class="col-md-1 moreAccordion" data-toggle="collapse" data-parent="#accordion-{{course.slug}}" href=".collapseOne-{{course.slug}}" aria-expanded="false" aria-controls="collapseOne-{{course.slug}}">  
7 - <button class="btn btn-default btn-sm caret-square"><i class="fa fa-caret-square-o-down fa-2x" aria-hidden="true"></i></button>  
8 - </div>  
9 <div class="col-xs-5 col-md-5 titleTopic"> 6 <div class="col-xs-5 col-md-5 titleTopic">
10 <a role="button" href="{% url 'course:view' course.slug %}"> 7 <a role="button" href="{% url 'course:view' course.slug %}">
11 <h4>{{course.name}}</h4> 8 <h4>{{course.name}}</h4>
@@ -31,27 +28,6 @@ @@ -31,27 +28,6 @@
31 {% endif %} 28 {% endif %}
32 </div> 29 </div>
33 </div> 30 </div>
34 - <div class="panel-collapse collapseOne-{{course.slug}} collapse in" role="tabpanel" aria-labelledby="headingOne" aria-expanded="true" aria-hidden="false" tabindex="0">  
35 - <div class="panel-body">  
36 - <p><b>{% trans 'Course Name' %}: </b>{{course.name}}</p>  
37 - <p><b>{% trans 'Coordenator' %}: </b>{{course.coordenator}}</p>  
38 - <p><b>{% trans 'Professor' %}: </b>{{course.professors.all.0}}</p>  
39 - <p>  
40 - <b>{% trans 'Description' %}:</b>  
41 - <i>  
42 - {{course.content | safe }}  
43 - </i>  
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>  
53 - </div>  
54 - </div>  
55 </div> 31 </div>
56 </div> 32 </div>
57 33
courses/templates/course/view.html
@@ -47,21 +47,6 @@ @@ -47,21 +47,6 @@
47 </div> 47 </div>
48 <div class="panel-body"> 48 <div class="panel-body">
49 <p><b>{% trans 'Coordinator' %}: </b>{{course.coordenator}}</p> 49 <p><b>{% trans 'Coordinator' %}: </b>{{course.coordenator}}</p>
50 - <p><b>{% trans 'Teacher' %}: </b>{{course.professors.all.0}}</p>  
51 - <p>  
52 - <b>{% trans 'Description' %}:</b>  
53 - <i>  
54 - {{ course.objectivies |safe }}  
55 - </i>  
56 - </p>  
57 - <div class="row">  
58 - <div class="col-xs-6 col-md-6 data_register_course">  
59 - <p><b>{% trans 'Begin of Course Date' %}: </b>{{course.init_date}}</p>  
60 - </div>  
61 - <div class="col-xs-6 col-md-6 data_register_course">  
62 - <p><b>{% trans 'End of Course Date' %}: </b>{{course.end_date}}</p>  
63 - </div>  
64 - </div>  
65 </div> 50 </div>
66 </div> 51 </div>
67 52
@@ -84,20 +69,12 @@ @@ -84,20 +69,12 @@
84 </div> 69 </div>
85 </div> 70 </div>
86 71
87 -<div class="panel-group ui-accordion ui-widget ui-helper-reset ui-sortable" id="accordion" role="tablist" aria-multiselectable="false">  
88 - <div>  
89 -  
90 - <div class="panel panel-info">  
91 -</div>  
92 -</div> 72 +<div class="panel-group ui-accordion ui-widget ui-helper-reset ui-sortable" id="accordion" role="tablist" aria-multiselectable="false"></div>
93 <div class="cards-detail"> 73 <div class="cards-detail">
94 {% for subject in subjects %} 74 {% for subject in subjects %}
95 <div class="panel panel-default panel_{{ subject.id }}"> 75 <div class="panel panel-default panel_{{ subject.id }}">
96 <div class="panel-heading heading_{{subject.id}} subject ui-sortable-handle"> 76 <div class="panel-heading heading_{{subject.id}} subject ui-sortable-handle">
97 <div class="row"> 77 <div class="row">
98 - <div class="col-md-1 moreAccordion" data-toggle="collapse" data-parent="#accordion-{{subject.slug}}" href=".collapseSubject-{{subject.slug}}" aria-expanded="false" aria-controls="collapseSubject-{{subject.slug}}">  
99 - <button class="btn btn-default btn-sm caret-square"><i class="fa fa-caret-square-o-down fa-2x" aria-hidden="true"></i></button>  
100 - </div>  
101 <div class="col-xs-9 col-md-10 titleTopic"> 78 <div class="col-xs-9 col-md-10 titleTopic">
102 <a role="button" href="{% url 'course:view_subject' subject.slug %}"> 79 <a role="button" href="{% url 'course:view_subject' subject.slug %}">
103 <h4>{{subject.name}}</h4> 80 <h4>{{subject.name}}</h4>
@@ -126,29 +103,6 @@ @@ -126,29 +103,6 @@
126 {% endif %} 103 {% endif %}
127 </div> 104 </div>
128 </div> 105 </div>
129 - <div class="panel-collapse collapseSubject-{{subject.slug}} collapse in" aria-labelledby="heading_{{subject.id}}" aria-expanded="true" aria-hidden="false">  
130 - <div class="panel-body">  
131 - <p><b>{% trans "Professor" %}: </b>{% for professor in subject.professors.all %}{% if not forloop.first %},{% endif %}  
132 - {{professor}}{% if forloop.last %}.{% endif %}{% endfor %}</p>  
133 - <p>  
134 - <b>{% trans 'Category' %}: </b><i>{{ subject.category }}</i>  
135 - </p>  
136 - <p>  
137 - <b>{% trans "Description" %}: </b>  
138 - <i>  
139 - {{subject.description | safe}}  
140 - </i>  
141 - </p>  
142 - <div class="row">  
143 - <div class="col-xs-6 col-md-6">  
144 - <p><b>{% trans "Begining" %}: </b>{{subject.init_date}}</p>  
145 - </div>  
146 - <div class="col-xs-6 col-md-6">  
147 - <p><b>{% trans "End" %}: </b>{{subject.end_date}}</p>  
148 - </div>  
149 - </div>  
150 - </div>  
151 - </div>  
152 </div> 106 </div>
153 {% endfor %} 107 {% endfor %}
154 108
@@ -159,10 +113,7 @@ @@ -159,10 +113,7 @@
159 <a href="{% url 'course:create_subject' course.slug %}" data-toggle="modal" data-target="" class="btn btn-primary btn-lg btn-block btn-raised">{% trans 'Create Subject' %}<div class="ripple-container"></div></a> 113 <a href="{% url 'course:create_subject' course.slug %}" data-toggle="modal" data-target="" class="btn btn-primary btn-lg btn-block btn-raised">{% trans 'Create Subject' %}<div class="ripple-container"></div></a>
160 </div> 114 </div>
161 {% endif %} 115 {% endif %}
162 -  
163 -</div>  
164 </div> 116 </div>
165 </div> 117 </div>
166 -<div class="row" id="modal_subject">  
167 118
168 {% endblock %} 119 {% endblock %}