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 | 113 | tags = data["tags"] |
114 | 114 | |
115 | 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 | 124 | resource = get_object_or_404(Resource, id = file_link.id) |
124 | 125 | |
... | ... | @@ -222,12 +223,13 @@ class CompleteFileLinkSerializer(serializers.ModelSerializer): |
222 | 223 | tags = data["tags"] |
223 | 224 | |
224 | 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 | 234 | students = data["students"] |
233 | 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 | 37 | |
38 | 38 | class Meta: |
39 | 39 | model = Goals |
40 | + extra_kwargs = { | |
41 | + "tags": { | |
42 | + "validators": [], | |
43 | + }, | |
44 | + } | |
40 | 45 | exclude = ('students', 'groups',) |
46 | + validators = [] | |
41 | 47 | |
42 | 48 | def create(self, data): |
43 | 49 | topic = data['topic'] |
... | ... | @@ -87,12 +93,13 @@ class SimpleGoalSerializer(serializers.ModelSerializer): |
87 | 93 | tags = data["tags"] |
88 | 94 | |
89 | 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 | 104 | resource = get_object_or_404(Resource, id = goals.id) |
98 | 105 | |
... | ... | @@ -177,12 +184,13 @@ class CompleteGoalSerializer(serializers.ModelSerializer): |
177 | 184 | tags = data["tags"] |
178 | 185 | |
179 | 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 | 195 | students = data["students"] |
188 | 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 | 77 | tags = data["tags"] |
78 | 78 | |
79 | 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 | 88 | resource = get_object_or_404(Resource, id = link.id) |
88 | 89 | |
... | ... | @@ -159,12 +160,13 @@ class CompleteLinkSerializer(serializers.ModelSerializer): |
159 | 160 | tags = data["tags"] |
160 | 161 | |
161 | 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 | 171 | students = data["students"] |
170 | 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 | 106 | tags = data["tags"] |
107 | 107 | |
108 | 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 | 117 | resource = get_object_or_404(Resource, id = pdf.id) |
117 | 118 | |
... | ... | @@ -216,12 +217,13 @@ class CompletePDFFileSerializer(serializers.ModelSerializer): |
216 | 217 | tags = data["tags"] |
217 | 218 | |
218 | 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 | 228 | students = data["students"] |
227 | 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 | 11 | from categories.models import Category |
12 | 12 | import datetime |
13 | 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 | 15 | def __str__(self): |
16 | 16 | return self.name |
17 | 17 | ... | ... |
subjects/views.py
... | ... | @@ -55,6 +55,8 @@ from youtube_video.serializers import SimpleYTVideoSerializer, CompleteYTVideoSe |
55 | 55 | from youtube_video.models import YTVideo |
56 | 56 | from webpage.serializers import SimpleWebpageSerializer, CompleteWebpageSerializer |
57 | 57 | from webpage.models import Webpage |
58 | +from webconference.serializers import SimpleWebconferenceSerializer, CompleteWebconferenceSerializer | |
59 | +from webconference.models import Webconference | |
58 | 60 | |
59 | 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 | 769 | links = Link.objects.filter(id__in = resources_ids) |
768 | 770 | pdffiles = PDFFile.objects.filter(id__in = resources_ids) |
769 | 771 | goals = Goals.objects.filter(id__in = resources_ids) |
772 | + webconferences = Webconference.objects.filter(id__in = resources_ids) | |
770 | 773 | |
771 | 774 | |
772 | 775 | for filelink in filelinks: |
... | ... | @@ -808,6 +811,7 @@ def realize_backup(request, subject): |
808 | 811 | serializer_l = CompleteLinkSerializer(links, many = True) |
809 | 812 | serializer_p = CompletePDFFileSerializer(pdffiles, many = True) |
810 | 813 | serializer_g = CompleteGoalSerializer(goals, many = True) |
814 | + serializer_c = CompleteWebconferenceSerializer(webconferences, many = True) | |
811 | 815 | else: |
812 | 816 | serializer_w = SimpleWebpageSerializer(webpages, many = True) |
813 | 817 | serializer_y = SimpleYTVideoSerializer(ytvideos, many = True) |
... | ... | @@ -815,6 +819,7 @@ def realize_backup(request, subject): |
815 | 819 | serializer_l = SimpleLinkSerializer(links, many = True) |
816 | 820 | serializer_p = SimplePDFFileSerializer(pdffiles, many = True) |
817 | 821 | serializer_g = SimpleGoalSerializer(goals, many = True) |
822 | + serializer_c = SimpleWebconferenceSerializer(webconferences, many = True) | |
818 | 823 | |
819 | 824 | if len(serializer_w.data) > 0: |
820 | 825 | data_list.append(serializer_w.data) |
... | ... | @@ -834,6 +839,9 @@ def realize_backup(request, subject): |
834 | 839 | if len(serializer_g.data) > 0: |
835 | 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 | 845 | json.dump(data_list, file) |
838 | 846 | |
839 | 847 | file.close() |
... | ... | @@ -931,6 +939,11 @@ def realize_restore(request, subject): |
931 | 939 | serial = CompleteYTVideoSerializer(data = line, many = True, context = {'subject': subject, 'files': file}) |
932 | 940 | else: |
933 | 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 | 948 | serial.is_valid() |
936 | 949 | serial.save() | ... | ... |
... | ... | @@ -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 | 252 | \ No newline at end of file | ... | ... |
webpage/serializers.py
... | ... | @@ -77,12 +77,13 @@ class SimpleWebpageSerializer(serializers.ModelSerializer): |
77 | 77 | tags = data["tags"] |
78 | 78 | |
79 | 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 | 88 | resource = get_object_or_404(Resource, id = webpage.id) |
88 | 89 | |
... | ... | @@ -159,12 +160,13 @@ class CompleteWebpageSerializer(serializers.ModelSerializer): |
159 | 160 | tags = data["tags"] |
160 | 161 | |
161 | 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 | 171 | students = data["students"] |
170 | 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 | 78 | tags = data["tags"] |
79 | 79 | |
80 | 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 | 89 | resource = get_object_or_404(Resource, id = ytvideo.id) |
89 | 90 | |
... | ... | @@ -161,12 +162,13 @@ class CompleteYTVideoSerializer(serializers.ModelSerializer): |
161 | 162 | tags = data["tags"] |
162 | 163 | |
163 | 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 | 173 | students = data["students"] |
172 | 174 | subject = get_object_or_404(Subject, slug = self.context.get("subject", None)) | ... | ... |