Commit 9fe3158ff773e4b606304acc893d16cfe0a08283

Authored by Zambom
1 parent 93aa9f63

Backup/Restore: Fixing blank tag error & add webconference resource

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()
webconference/serializers.py 0 → 100644
@@ -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))