Commit 9fe3158ff773e4b606304acc893d16cfe0a08283
1 parent
93aa9f63
Exists in
master
and in
2 other branches
Backup/Restore: Fixing blank tag error & add webconference resource
Showing
9 changed files
with
343 additions
and
61 deletions
Show diff stats
file_link/serializers.py
@@ -113,12 +113,13 @@ class SimpleFileLinkSerializer(serializers.ModelSerializer): | @@ -113,12 +113,13 @@ class SimpleFileLinkSerializer(serializers.ModelSerializer): | ||
113 | tags = data["tags"] | 113 | tags = data["tags"] |
114 | 114 | ||
115 | for tag in tags: | 115 | for tag in tags: |
116 | - if tag["id"] == "": | ||
117 | - tag = Tag.objects.create(name = tag["name"]) | ||
118 | - else: | ||
119 | - tag = get_object_or_404(Tag, id = tag["id"]) | 116 | + if not tag["name"] == "": |
117 | + if tag["id"] == "": | ||
118 | + tag = Tag.objects.create(name = tag["name"]) | ||
119 | + else: | ||
120 | + tag = get_object_or_404(Tag, id = tag["id"]) | ||
120 | 121 | ||
121 | - file_link.tags.add(tag) | 122 | + file_link.tags.add(tag) |
122 | 123 | ||
123 | resource = get_object_or_404(Resource, id = file_link.id) | 124 | resource = get_object_or_404(Resource, id = file_link.id) |
124 | 125 | ||
@@ -222,12 +223,13 @@ class CompleteFileLinkSerializer(serializers.ModelSerializer): | @@ -222,12 +223,13 @@ class CompleteFileLinkSerializer(serializers.ModelSerializer): | ||
222 | tags = data["tags"] | 223 | tags = data["tags"] |
223 | 224 | ||
224 | for tag in tags: | 225 | for tag in tags: |
225 | - if tag["id"] == "": | ||
226 | - tag = Tag.objects.create(name = tag["name"]) | ||
227 | - else: | ||
228 | - tag = get_object_or_404(Tag, id = tag["id"]) | 226 | + if not tag["name"] == "": |
227 | + if tag["id"] == "": | ||
228 | + tag = Tag.objects.create(name = tag["name"]) | ||
229 | + else: | ||
230 | + tag = get_object_or_404(Tag, id = tag["id"]) | ||
229 | 231 | ||
230 | - file_link.tags.add(tag) | 232 | + file_link.tags.add(tag) |
231 | 233 | ||
232 | students = data["students"] | 234 | students = data["students"] |
233 | subject = get_object_or_404(Subject, slug = self.context.get("subject", None)) | 235 | subject = get_object_or_404(Subject, slug = self.context.get("subject", None)) |
goals/serializers.py
@@ -37,7 +37,13 @@ class SimpleGoalSerializer(serializers.ModelSerializer): | @@ -37,7 +37,13 @@ class SimpleGoalSerializer(serializers.ModelSerializer): | ||
37 | 37 | ||
38 | class Meta: | 38 | class Meta: |
39 | model = Goals | 39 | model = Goals |
40 | + extra_kwargs = { | ||
41 | + "tags": { | ||
42 | + "validators": [], | ||
43 | + }, | ||
44 | + } | ||
40 | exclude = ('students', 'groups',) | 45 | exclude = ('students', 'groups',) |
46 | + validators = [] | ||
41 | 47 | ||
42 | def create(self, data): | 48 | def create(self, data): |
43 | topic = data['topic'] | 49 | topic = data['topic'] |
@@ -87,12 +93,13 @@ class SimpleGoalSerializer(serializers.ModelSerializer): | @@ -87,12 +93,13 @@ class SimpleGoalSerializer(serializers.ModelSerializer): | ||
87 | tags = data["tags"] | 93 | tags = data["tags"] |
88 | 94 | ||
89 | for tag in tags: | 95 | for tag in tags: |
90 | - if tag["id"] == "": | ||
91 | - tag = Tag.objects.create(name = tag["name"]) | ||
92 | - else: | ||
93 | - tag = get_object_or_404(Tag, id = tag["id"]) | 96 | + if not tag["name"] == "": |
97 | + if tag["id"] == "": | ||
98 | + tag = Tag.objects.create(name = tag["name"]) | ||
99 | + else: | ||
100 | + tag = get_object_or_404(Tag, id = tag["id"]) | ||
94 | 101 | ||
95 | - goals.tags.add(tag) | 102 | + goals.tags.add(tag) |
96 | 103 | ||
97 | resource = get_object_or_404(Resource, id = goals.id) | 104 | resource = get_object_or_404(Resource, id = goals.id) |
98 | 105 | ||
@@ -177,12 +184,13 @@ class CompleteGoalSerializer(serializers.ModelSerializer): | @@ -177,12 +184,13 @@ class CompleteGoalSerializer(serializers.ModelSerializer): | ||
177 | tags = data["tags"] | 184 | tags = data["tags"] |
178 | 185 | ||
179 | for tag in tags: | 186 | for tag in tags: |
180 | - if tag["id"] == "": | ||
181 | - tag = Tag.objects.create(name = tag["name"]) | ||
182 | - else: | ||
183 | - tag = get_object_or_404(Tag, id = tag["id"]) | 187 | + if not tag["name"] == "": |
188 | + if tag["id"] == "": | ||
189 | + tag = Tag.objects.create(name = tag["name"]) | ||
190 | + else: | ||
191 | + tag = get_object_or_404(Tag, id = tag["id"]) | ||
184 | 192 | ||
185 | - goals.tags.add(tag) | 193 | + goals.tags.add(tag) |
186 | 194 | ||
187 | students = data["students"] | 195 | students = data["students"] |
188 | subject = get_object_or_404(Subject, slug = self.context.get("subject", None)) | 196 | subject = get_object_or_404(Subject, slug = self.context.get("subject", None)) |
links/serializers.py
@@ -77,12 +77,13 @@ class SimpleLinkSerializer(serializers.ModelSerializer): | @@ -77,12 +77,13 @@ class SimpleLinkSerializer(serializers.ModelSerializer): | ||
77 | tags = data["tags"] | 77 | tags = data["tags"] |
78 | 78 | ||
79 | for tag in tags: | 79 | for tag in tags: |
80 | - if tag["id"] == "": | ||
81 | - tag = Tag.objects.create(name = tag["name"]) | ||
82 | - else: | ||
83 | - tag = get_object_or_404(Tag, id = tag["id"]) | 80 | + if not tag["name"] == "": |
81 | + if tag["id"] == "": | ||
82 | + tag = Tag.objects.create(name = tag["name"]) | ||
83 | + else: | ||
84 | + tag = get_object_or_404(Tag, id = tag["id"]) | ||
84 | 85 | ||
85 | - link.tags.add(tag) | 86 | + link.tags.add(tag) |
86 | 87 | ||
87 | resource = get_object_or_404(Resource, id = link.id) | 88 | resource = get_object_or_404(Resource, id = link.id) |
88 | 89 | ||
@@ -159,12 +160,13 @@ class CompleteLinkSerializer(serializers.ModelSerializer): | @@ -159,12 +160,13 @@ class CompleteLinkSerializer(serializers.ModelSerializer): | ||
159 | tags = data["tags"] | 160 | tags = data["tags"] |
160 | 161 | ||
161 | for tag in tags: | 162 | for tag in tags: |
162 | - if tag["id"] == "": | ||
163 | - tag = Tag.objects.create(name = tag["name"]) | ||
164 | - else: | ||
165 | - tag = get_object_or_404(Tag, id = tag["id"]) | 163 | + if not tag["name"] == "": |
164 | + if tag["id"] == "": | ||
165 | + tag = Tag.objects.create(name = tag["name"]) | ||
166 | + else: | ||
167 | + tag = get_object_or_404(Tag, id = tag["id"]) | ||
166 | 168 | ||
167 | - link.tags.add(tag) | 169 | + link.tags.add(tag) |
168 | 170 | ||
169 | students = data["students"] | 171 | students = data["students"] |
170 | subject = get_object_or_404(Subject, slug = self.context.get("subject", None)) | 172 | subject = get_object_or_404(Subject, slug = self.context.get("subject", None)) |
pdf_file/serializers.py
@@ -106,12 +106,13 @@ class SimplePDFFileSerializer(serializers.ModelSerializer): | @@ -106,12 +106,13 @@ class SimplePDFFileSerializer(serializers.ModelSerializer): | ||
106 | tags = data["tags"] | 106 | tags = data["tags"] |
107 | 107 | ||
108 | for tag in tags: | 108 | for tag in tags: |
109 | - if tag["id"] == "": | ||
110 | - tag = Tag.objects.create(name = tag["name"]) | ||
111 | - else: | ||
112 | - tag = get_object_or_404(Tag, id = tag["id"]) | 109 | + if not tag["name"] == "": |
110 | + if tag["id"] == "": | ||
111 | + tag = Tag.objects.create(name = tag["name"]) | ||
112 | + else: | ||
113 | + tag = get_object_or_404(Tag, id = tag["id"]) | ||
113 | 114 | ||
114 | - pdf.tags.add(tag) | 115 | + pdf.tags.add(tag) |
115 | 116 | ||
116 | resource = get_object_or_404(Resource, id = pdf.id) | 117 | resource = get_object_or_404(Resource, id = pdf.id) |
117 | 118 | ||
@@ -216,12 +217,13 @@ class CompletePDFFileSerializer(serializers.ModelSerializer): | @@ -216,12 +217,13 @@ class CompletePDFFileSerializer(serializers.ModelSerializer): | ||
216 | tags = data["tags"] | 217 | tags = data["tags"] |
217 | 218 | ||
218 | for tag in tags: | 219 | for tag in tags: |
219 | - if tag["id"] == "": | ||
220 | - tag = Tag.objects.create(name = tag["name"]) | ||
221 | - else: | ||
222 | - tag = get_object_or_404(Tag, id = tag["id"]) | 220 | + if not tag["name"] == "": |
221 | + if tag["id"] == "": | ||
222 | + tag = Tag.objects.create(name = tag["name"]) | ||
223 | + else: | ||
224 | + tag = get_object_or_404(Tag, id = tag["id"]) | ||
223 | 225 | ||
224 | - pdf.tags.add(tag) | 226 | + pdf.tags.add(tag) |
225 | 227 | ||
226 | students = data["students"] | 228 | students = data["students"] |
227 | subject = get_object_or_404(Subject, slug = self.context.get("subject", None)) | 229 | subject = get_object_or_404(Subject, slug = self.context.get("subject", None)) |
subjects/models.py
@@ -11,7 +11,7 @@ from django.core.exceptions import ValidationError | @@ -11,7 +11,7 @@ from django.core.exceptions import ValidationError | ||
11 | from categories.models import Category | 11 | from categories.models import Category |
12 | import datetime | 12 | import datetime |
13 | class Tag(models.Model): | 13 | class Tag(models.Model): |
14 | - name = models.CharField( _("Name"), unique = True,max_length= 200) | 14 | + name = models.CharField( _("Name"), unique = True,max_length= 200, blank = True) |
15 | def __str__(self): | 15 | def __str__(self): |
16 | return self.name | 16 | return self.name |
17 | 17 |
subjects/views.py
@@ -55,6 +55,8 @@ from youtube_video.serializers import SimpleYTVideoSerializer, CompleteYTVideoSe | @@ -55,6 +55,8 @@ from youtube_video.serializers import SimpleYTVideoSerializer, CompleteYTVideoSe | ||
55 | from youtube_video.models import YTVideo | 55 | from youtube_video.models import YTVideo |
56 | from webpage.serializers import SimpleWebpageSerializer, CompleteWebpageSerializer | 56 | from webpage.serializers import SimpleWebpageSerializer, CompleteWebpageSerializer |
57 | from webpage.models import Webpage | 57 | from webpage.models import Webpage |
58 | +from webconference.serializers import SimpleWebconferenceSerializer, CompleteWebconferenceSerializer | ||
59 | +from webconference.models import Webconference | ||
58 | 60 | ||
59 | from amadeus.permissions import has_category_permissions, has_subject_permissions, has_subject_view_permissions, has_resource_permissions | 61 | from amadeus.permissions import has_category_permissions, has_subject_permissions, has_subject_view_permissions, has_resource_permissions |
60 | 62 | ||
@@ -767,6 +769,7 @@ def realize_backup(request, subject): | @@ -767,6 +769,7 @@ def realize_backup(request, subject): | ||
767 | links = Link.objects.filter(id__in = resources_ids) | 769 | links = Link.objects.filter(id__in = resources_ids) |
768 | pdffiles = PDFFile.objects.filter(id__in = resources_ids) | 770 | pdffiles = PDFFile.objects.filter(id__in = resources_ids) |
769 | goals = Goals.objects.filter(id__in = resources_ids) | 771 | goals = Goals.objects.filter(id__in = resources_ids) |
772 | + webconferences = Webconference.objects.filter(id__in = resources_ids) | ||
770 | 773 | ||
771 | 774 | ||
772 | for filelink in filelinks: | 775 | for filelink in filelinks: |
@@ -808,6 +811,7 @@ def realize_backup(request, subject): | @@ -808,6 +811,7 @@ def realize_backup(request, subject): | ||
808 | serializer_l = CompleteLinkSerializer(links, many = True) | 811 | serializer_l = CompleteLinkSerializer(links, many = True) |
809 | serializer_p = CompletePDFFileSerializer(pdffiles, many = True) | 812 | serializer_p = CompletePDFFileSerializer(pdffiles, many = True) |
810 | serializer_g = CompleteGoalSerializer(goals, many = True) | 813 | serializer_g = CompleteGoalSerializer(goals, many = True) |
814 | + serializer_c = CompleteWebconferenceSerializer(webconferences, many = True) | ||
811 | else: | 815 | else: |
812 | serializer_w = SimpleWebpageSerializer(webpages, many = True) | 816 | serializer_w = SimpleWebpageSerializer(webpages, many = True) |
813 | serializer_y = SimpleYTVideoSerializer(ytvideos, many = True) | 817 | serializer_y = SimpleYTVideoSerializer(ytvideos, many = True) |
@@ -815,6 +819,7 @@ def realize_backup(request, subject): | @@ -815,6 +819,7 @@ def realize_backup(request, subject): | ||
815 | serializer_l = SimpleLinkSerializer(links, many = True) | 819 | serializer_l = SimpleLinkSerializer(links, many = True) |
816 | serializer_p = SimplePDFFileSerializer(pdffiles, many = True) | 820 | serializer_p = SimplePDFFileSerializer(pdffiles, many = True) |
817 | serializer_g = SimpleGoalSerializer(goals, many = True) | 821 | serializer_g = SimpleGoalSerializer(goals, many = True) |
822 | + serializer_c = SimpleWebconferenceSerializer(webconferences, many = True) | ||
818 | 823 | ||
819 | if len(serializer_w.data) > 0: | 824 | if len(serializer_w.data) > 0: |
820 | data_list.append(serializer_w.data) | 825 | data_list.append(serializer_w.data) |
@@ -834,6 +839,9 @@ def realize_backup(request, subject): | @@ -834,6 +839,9 @@ def realize_backup(request, subject): | ||
834 | if len(serializer_g.data) > 0: | 839 | if len(serializer_g.data) > 0: |
835 | data_list.append(serializer_g.data) | 840 | data_list.append(serializer_g.data) |
836 | 841 | ||
842 | + if len(serializer_c.data) > 0: | ||
843 | + data_list.append(serializer_c.data) | ||
844 | + | ||
837 | json.dump(data_list, file) | 845 | json.dump(data_list, file) |
838 | 846 | ||
839 | file.close() | 847 | file.close() |
@@ -931,6 +939,11 @@ def realize_restore(request, subject): | @@ -931,6 +939,11 @@ def realize_restore(request, subject): | ||
931 | serial = CompleteYTVideoSerializer(data = line, many = True, context = {'subject': subject, 'files': file}) | 939 | serial = CompleteYTVideoSerializer(data = line, many = True, context = {'subject': subject, 'files': file}) |
932 | else: | 940 | else: |
933 | serial = SimpleYTVideoSerializer(data = line, many = True, context = {'subject': subject}) | 941 | serial = SimpleYTVideoSerializer(data = line, many = True, context = {'subject': subject}) |
942 | + elif line[0]["_my_subclass"] == "webconference": | ||
943 | + if "students" in line[0]: | ||
944 | + serial = CompleteWebconferenceSerializer(data = line, many = True, context = {'subject': subject, 'files': file}) | ||
945 | + else: | ||
946 | + serial = SimpleWebconferenceSerializer(data = line, many = True, context = {'subject': subject}) | ||
934 | 947 | ||
935 | serial.is_valid() | 948 | serial.is_valid() |
936 | serial.save() | 949 | serial.save() |
@@ -0,0 +1,251 @@ | @@ -0,0 +1,251 @@ | ||
1 | +import os | ||
2 | +from django.conf import settings | ||
3 | +from django.core.files import File | ||
4 | +from rest_framework import serializers | ||
5 | +from django.shortcuts import get_object_or_404 | ||
6 | + | ||
7 | +from subjects.serializers import TagSerializer | ||
8 | +from topics.serializers import TopicSerializer | ||
9 | +from pendencies.serializers import PendenciesSerializer | ||
10 | +from students_group.serializers import StudentsGroupSerializer | ||
11 | +from users.serializers import UserBackupSerializer | ||
12 | + | ||
13 | +from subjects.models import Tag, Subject | ||
14 | +from topics.models import Topic, Resource | ||
15 | +from pendencies.models import Pendencies | ||
16 | +from students_group.models import StudentsGroup | ||
17 | +from log.models import Log | ||
18 | +from users.models import User | ||
19 | + | ||
20 | +from .models import Webconference | ||
21 | + | ||
22 | +class SimpleWebconferenceSerializer(serializers.ModelSerializer): | ||
23 | + topic = TopicSerializer('get_subject') | ||
24 | + tags = TagSerializer(many = True) | ||
25 | + pendencies_resource = PendenciesSerializer(many = True) | ||
26 | + | ||
27 | + def get_subject(self, obj): | ||
28 | + subject = self.context.get("subject", None) | ||
29 | + | ||
30 | + return subject | ||
31 | + | ||
32 | + class Meta: | ||
33 | + model = Webconference | ||
34 | + exclude = ('students', 'groups',) | ||
35 | + | ||
36 | + def create(self, data): | ||
37 | + topic = data['topic'] | ||
38 | + | ||
39 | + webconference = None | ||
40 | + | ||
41 | + if not topic["id"] is None: | ||
42 | + if "subject" in topic: | ||
43 | + r_exits = Resource.objects.filter(topic__subject = topic["subject"], name__unaccent__iexact = data["name"]) | ||
44 | + else: | ||
45 | + r_exits = Resource.objects.filter(topic__subject__id = topic["subject_id"], name__unaccent__iexact = data["name"]) | ||
46 | + | ||
47 | + if not r_exits.exists(): | ||
48 | + if topic['id'] == "": | ||
49 | + topic_exist = Topic.objects.filter(subject = topic['subject'], name__unaccent__iexact = topic["name"]) | ||
50 | + | ||
51 | + if topic_exist.exists(): | ||
52 | + topic = topic_exist[0] | ||
53 | + else: | ||
54 | + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order']) | ||
55 | + | ||
56 | + data["topic"] = topic | ||
57 | + else: | ||
58 | + data["topic"] = get_object_or_404(Topic, id = topic["id"]) | ||
59 | + | ||
60 | + webconference_data = data | ||
61 | + | ||
62 | + pendencies = webconference_data["pendencies_resource"] | ||
63 | + del webconference_data["pendencies_resource"] | ||
64 | + | ||
65 | + webconference = Webconference() | ||
66 | + webconference.name = webconference_data["name"] | ||
67 | + webconference.brief_description = webconference_data["brief_description"] | ||
68 | + webconference.show_window = webconference_data["show_window"] | ||
69 | + webconference.all_students = webconference_data["all_students"] | ||
70 | + webconference.visible = webconference_data["visible"] | ||
71 | + webconference.order = webconference_data["order"] | ||
72 | + webconference.topic = webconference_data["topic"] | ||
73 | + webconference.presentation = webconference_data["presentation"] | ||
74 | + webconference.start = webconference_data["start"] | ||
75 | + webconference.end = webconference_data["end"] | ||
76 | + | ||
77 | + webconference.save() | ||
78 | + | ||
79 | + tags = data["tags"] | ||
80 | + | ||
81 | + for tag in tags: | ||
82 | + if not tag["name"] == "": | ||
83 | + if tag["id"] == "": | ||
84 | + tag = Tag.objects.create(name = tag["name"]) | ||
85 | + else: | ||
86 | + tag = get_object_or_404(Tag, id = tag["id"]) | ||
87 | + | ||
88 | + webconference.tags.add(tag) | ||
89 | + | ||
90 | + resource = get_object_or_404(Resource, id = webconference.id) | ||
91 | + | ||
92 | + for pend in pendencies: | ||
93 | + Pendencies.objects.create(resource = resource, **pend) | ||
94 | + | ||
95 | + return webconference | ||
96 | + | ||
97 | + def update(self, instance, data): | ||
98 | + return instance | ||
99 | + | ||
100 | +class CompleteWebconferenceSerializer(serializers.ModelSerializer): | ||
101 | + topic = TopicSerializer('get_subject') | ||
102 | + tags = TagSerializer(many = True) | ||
103 | + pendencies_resource = PendenciesSerializer(many = True) | ||
104 | + groups = StudentsGroupSerializer('get_files', many = True) | ||
105 | + students = UserBackupSerializer('get_files', many = True) | ||
106 | + | ||
107 | + def get_subject(self, obj): | ||
108 | + subject = self.context.get("subject", None) | ||
109 | + | ||
110 | + return subject | ||
111 | + | ||
112 | + def get_files(self, obj): | ||
113 | + files = self.context.get("files", None) | ||
114 | + | ||
115 | + return files | ||
116 | + | ||
117 | + class Meta: | ||
118 | + model = Webconference | ||
119 | + fields = '__all__' | ||
120 | + | ||
121 | + def create(self, data): | ||
122 | + topic = data['topic'] | ||
123 | + | ||
124 | + webconference = None | ||
125 | + | ||
126 | + if not topic["id"] is None: | ||
127 | + if "subject" in topic: | ||
128 | + r_exits = Resource.objects.filter(topic__subject = topic["subject"], name__unaccent__iexact = data["name"]) | ||
129 | + else: | ||
130 | + r_exits = Resource.objects.filter(topic__subject__id = topic["subject_id"], name__unaccent__iexact = data["name"]) | ||
131 | + | ||
132 | + if not r_exits.exists(): | ||
133 | + if topic['id'] == "": | ||
134 | + topic_exist = Topic.objects.filter(subject = topic['subject'], name__unaccent__iexact = topic["name"]) | ||
135 | + | ||
136 | + if topic_exist.exists(): | ||
137 | + topic = topic_exist[0] | ||
138 | + else: | ||
139 | + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order']) | ||
140 | + | ||
141 | + data["topic"] = topic | ||
142 | + else: | ||
143 | + data["topic"] = get_object_or_404(Topic, id = topic["id"]) | ||
144 | + | ||
145 | + webconference_data = data | ||
146 | + | ||
147 | + pendencies = webconference_data["pendencies_resource"] | ||
148 | + del webconference_data["pendencies_resource"] | ||
149 | + | ||
150 | + webconference = Webconference() | ||
151 | + webconference.name = webconference_data["name"] | ||
152 | + webconference.brief_description = webconference_data["brief_description"] | ||
153 | + webconference.show_window = webconference_data["show_window"] | ||
154 | + webconference.all_students = webconference_data["all_students"] | ||
155 | + webconference.visible = webconference_data["visible"] | ||
156 | + webconference.order = webconference_data["order"] | ||
157 | + webconference.topic = webconference_data["topic"] | ||
158 | + webconference.presentation = webconference_data["presentation"] | ||
159 | + webconference.start = webconference_data["start"] | ||
160 | + webconference.end = webconference_data["end"] | ||
161 | + | ||
162 | + webconference.save() | ||
163 | + | ||
164 | + tags = data["tags"] | ||
165 | + | ||
166 | + for tag in tags: | ||
167 | + if not tag["name"] == "": | ||
168 | + if tag["id"] == "": | ||
169 | + tag = Tag.objects.create(name = tag["name"]) | ||
170 | + else: | ||
171 | + tag = get_object_or_404(Tag, id = tag["id"]) | ||
172 | + | ||
173 | + webconference.tags.add(tag) | ||
174 | + | ||
175 | + students = data["students"] | ||
176 | + subject = get_object_or_404(Subject, slug = self.context.get("subject", None)) | ||
177 | + | ||
178 | + for student_data in students: | ||
179 | + logs = student_data["get_items"] | ||
180 | + | ||
181 | + if student_data["id"] == "": | ||
182 | + u_exist = User.objects.filter(email = student_data["email"]) | ||
183 | + | ||
184 | + | ||
185 | + if not u_exist.exists(): | ||
186 | + student = u_exist[0] | ||
187 | + | ||
188 | + for log in logs: | ||
189 | + log["user_id"] = student.id | ||
190 | + | ||
191 | + l_exists = Log.objects.filter(user_id = log["user_id"], user = log["user"], user_email = log["user_email"], action = log["action"], resource = log["resource"], component = log["component"], context = log["context"]) | ||
192 | + | ||
193 | + if not l_exists.exists(): | ||
194 | + Log.objects.create(**log) | ||
195 | + else: | ||
196 | + student = User() | ||
197 | + student.email = student_data["email"] | ||
198 | + student.username = student_data["username"] | ||
199 | + student.last_name = student_data["last_name"] | ||
200 | + student.social_name = student_data["social_name"] | ||
201 | + student.show_email = student_data["show_email"] | ||
202 | + student.is_staff = student_data["is_staff"] | ||
203 | + student.is_active = student_data["is_active"] | ||
204 | + student.image = student_data["image"] | ||
205 | + | ||
206 | + student.save() | ||
207 | + | ||
208 | + for log in logs: | ||
209 | + log["user_id"] = student.id | ||
210 | + | ||
211 | + Log.objects.create(**log) | ||
212 | + else: | ||
213 | + student = get_object_or_404(User, id = student_data["id"]) | ||
214 | + | ||
215 | + for log in logs: | ||
216 | + l_exists = Log.objects.filter(user_id = log["user_id"], user = log["user"], user_email = log["user_email"], action = log["action"], resource = log["resource"], component = log["component"], context = log["context"]) | ||
217 | + | ||
218 | + if not l_exists.exists(): | ||
219 | + Log.objects.create(**log) | ||
220 | + | ||
221 | + webconference.students.add(student) | ||
222 | + subject.students.add(student) | ||
223 | + | ||
224 | + groups = data["groups"] | ||
225 | + | ||
226 | + for group_data in groups: | ||
227 | + g_exists = StudentsGroup.objects.filter(subject = subject, slug = group_data["slug"]) | ||
228 | + | ||
229 | + if g_exists.exists(): | ||
230 | + group = g_exists[0] | ||
231 | + else: | ||
232 | + group = StudentsGroup() | ||
233 | + group.name = group_data["name"] | ||
234 | + group.description = group_data["description"] | ||
235 | + group.subject = subject | ||
236 | + | ||
237 | + group.save() | ||
238 | + | ||
239 | + for participant in group_data["participants"]: | ||
240 | + p_user = get_object_or_404(User, email = participant["email"]) | ||
241 | + | ||
242 | + group.participants.add(p_user) | ||
243 | + | ||
244 | + webconference.groups.add(group) | ||
245 | + | ||
246 | + resource = get_object_or_404(Resource, id = webconference.id) | ||
247 | + | ||
248 | + for pend in pendencies: | ||
249 | + Pendencies.objects.create(resource = resource, **pend) | ||
250 | + | ||
251 | + return webconference | ||
0 | \ No newline at end of file | 252 | \ No newline at end of file |
webpage/serializers.py
@@ -77,12 +77,13 @@ class SimpleWebpageSerializer(serializers.ModelSerializer): | @@ -77,12 +77,13 @@ class SimpleWebpageSerializer(serializers.ModelSerializer): | ||
77 | tags = data["tags"] | 77 | tags = data["tags"] |
78 | 78 | ||
79 | for tag in tags: | 79 | for tag in tags: |
80 | - if tag["id"] == "": | ||
81 | - tag = Tag.objects.create(name = tag["name"]) | ||
82 | - else: | ||
83 | - tag = get_object_or_404(Tag, id = tag["id"]) | 80 | + if not tag["name"] == "": |
81 | + if tag["id"] == "": | ||
82 | + tag = Tag.objects.create(name = tag["name"]) | ||
83 | + else: | ||
84 | + tag = get_object_or_404(Tag, id = tag["id"]) | ||
84 | 85 | ||
85 | - webpage.tags.add(tag) | 86 | + webpage.tags.add(tag) |
86 | 87 | ||
87 | resource = get_object_or_404(Resource, id = webpage.id) | 88 | resource = get_object_or_404(Resource, id = webpage.id) |
88 | 89 | ||
@@ -159,12 +160,13 @@ class CompleteWebpageSerializer(serializers.ModelSerializer): | @@ -159,12 +160,13 @@ class CompleteWebpageSerializer(serializers.ModelSerializer): | ||
159 | tags = data["tags"] | 160 | tags = data["tags"] |
160 | 161 | ||
161 | for tag in tags: | 162 | for tag in tags: |
162 | - if tag["id"] == "": | ||
163 | - tag = Tag.objects.create(name = tag["name"]) | ||
164 | - else: | ||
165 | - tag = get_object_or_404(Tag, id = tag["id"]) | 163 | + if not tag["name"] == "": |
164 | + if tag["id"] == "": | ||
165 | + tag = Tag.objects.create(name = tag["name"]) | ||
166 | + else: | ||
167 | + tag = get_object_or_404(Tag, id = tag["id"]) | ||
166 | 168 | ||
167 | - webpage.tags.add(tag) | 169 | + webpage.tags.add(tag) |
168 | 170 | ||
169 | students = data["students"] | 171 | students = data["students"] |
170 | subject = get_object_or_404(Subject, slug = self.context.get("subject", None)) | 172 | subject = get_object_or_404(Subject, slug = self.context.get("subject", None)) |
youtube_video/serializers.py
@@ -78,12 +78,13 @@ class SimpleYTVideoSerializer(serializers.ModelSerializer): | @@ -78,12 +78,13 @@ class SimpleYTVideoSerializer(serializers.ModelSerializer): | ||
78 | tags = data["tags"] | 78 | tags = data["tags"] |
79 | 79 | ||
80 | for tag in tags: | 80 | for tag in tags: |
81 | - if tag["id"] == "": | ||
82 | - tag = Tag.objects.create(name = tag["name"]) | ||
83 | - else: | ||
84 | - tag = get_object_or_404(Tag, id = tag["id"]) | 81 | + if not tag["name"] == "": |
82 | + if tag["id"] == "": | ||
83 | + tag = Tag.objects.create(name = tag["name"]) | ||
84 | + else: | ||
85 | + tag = get_object_or_404(Tag, id = tag["id"]) | ||
85 | 86 | ||
86 | - ytvideo.tags.add(tag) | 87 | + ytvideo.tags.add(tag) |
87 | 88 | ||
88 | resource = get_object_or_404(Resource, id = ytvideo.id) | 89 | resource = get_object_or_404(Resource, id = ytvideo.id) |
89 | 90 | ||
@@ -161,12 +162,13 @@ class CompleteYTVideoSerializer(serializers.ModelSerializer): | @@ -161,12 +162,13 @@ class CompleteYTVideoSerializer(serializers.ModelSerializer): | ||
161 | tags = data["tags"] | 162 | tags = data["tags"] |
162 | 163 | ||
163 | for tag in tags: | 164 | for tag in tags: |
164 | - if tag["id"] == "": | ||
165 | - tag = Tag.objects.create(name = tag["name"]) | ||
166 | - else: | ||
167 | - tag = get_object_or_404(Tag, id = tag["id"]) | 165 | + if not tag["name"] == "": |
166 | + if tag["id"] == "": | ||
167 | + tag = Tag.objects.create(name = tag["name"]) | ||
168 | + else: | ||
169 | + tag = get_object_or_404(Tag, id = tag["id"]) | ||
168 | 170 | ||
169 | - ytvideo.tags.add(tag) | 171 | + ytvideo.tags.add(tag) |
170 | 172 | ||
171 | students = data["students"] | 173 | students = data["students"] |
172 | subject = get_object_or_404(Subject, slug = self.context.get("subject", None)) | 174 | subject = get_object_or_404(Subject, slug = self.context.get("subject", None)) |