Commit d2ba4692004feb2d2400475c8bab6da4282347ef

Authored by Zambom
1 parent c18c7f63

Avoiding duplicate inserts when trying to restore same backup in same subject mu…

…ltiple times & setting returning page
file_link/serializers.py
... ... @@ -67,55 +67,61 @@ class SimpleFileLinkSerializer(serializers.ModelSerializer):
67 67 file_link = None
68 68  
69 69 if not topic["id"] is None:
70   - if topic['id'] == "":
71   - topic_exist = Topic.objects.filter(subject = topic['subject'], name__unaccent__iexact = topic["name"])
72   -
73   - if topic_exist.exists():
74   - topic = topic_exist[0]
75   - else:
76   - topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'])
77   -
78   - data["topic"] = topic
  70 + if "subject" in topic:
  71 + r_exits = Resource.objects.filter(topic__subject = topic["subject"], name__unaccent__iexact = data["name"])
79 72 else:
80   - data["topic"] = get_object_or_404(Topic, id = topic["id"])
81   -
82   -
83   - f = open(os.path.join(settings.MEDIA_ROOT, data["file_content"]), encoding="latin-1")
84   - file = File(f)
  73 + r_exits = Resource.objects.filter(topic__subject__id = topic["subject_id"], name__unaccent__iexact = data["name"])
  74 +
  75 + if not r_exits.exists():
  76 + if topic['id'] == "":
  77 + topic_exist = Topic.objects.filter(subject = topic['subject'], name__unaccent__iexact = topic["name"])
  78 +
  79 + if topic_exist.exists():
  80 + topic = topic_exist[0]
  81 + else:
  82 + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'])
  83 +
  84 + data["topic"] = topic
  85 + else:
  86 + data["topic"] = get_object_or_404(Topic, id = topic["id"])
85 87  
86   - data["file_content"] = file
87 88  
88   - file_link_data = data
89   -
90   - pendencies = file_link_data["pendencies_resource"]
91   - del file_link_data["pendencies_resource"]
  89 + f = open(os.path.join(settings.MEDIA_ROOT, data["file_content"]), encoding="latin-1")
  90 + file = File(f)
92 91  
93   - file_link = FileLink()
94   - file_link.name = file_link_data["name"]
95   - file_link.brief_description = file_link_data["brief_description"]
96   - file_link.show_window = file_link_data["show_window"]
97   - file_link.all_students = file_link_data["all_students"]
98   - file_link.visible = file_link_data["visible"]
99   - file_link.order = file_link_data["order"]
100   - file_link.topic = file_link_data["topic"]
101   - file_link.file_content = file_link_data["file_content"]
  92 + data["file_content"] = file
102 93  
103   - file_link.save()
104   -
105   - tags = data["tags"]
  94 + file_link_data = data
  95 +
  96 + pendencies = file_link_data["pendencies_resource"]
  97 + del file_link_data["pendencies_resource"]
  98 +
  99 + file_link = FileLink()
  100 + file_link.name = file_link_data["name"]
  101 + file_link.brief_description = file_link_data["brief_description"]
  102 + file_link.show_window = file_link_data["show_window"]
  103 + file_link.all_students = file_link_data["all_students"]
  104 + file_link.visible = file_link_data["visible"]
  105 + file_link.order = file_link_data["order"]
  106 + file_link.topic = file_link_data["topic"]
  107 + file_link.file_content = file_link_data["file_content"]
  108 +
  109 + file_link.save()
  110 +
  111 + tags = data["tags"]
106 112  
107   - for tag in tags:
108   - if tag["id"] == "":
109   - tag = Tag.objects.create(name = tag["name"])
110   - else:
111   - tag = get_object_or_404(Tag, id = tag["id"])
  113 + for tag in tags:
  114 + if tag["id"] == "":
  115 + tag = Tag.objects.create(name = tag["name"])
  116 + else:
  117 + tag = get_object_or_404(Tag, id = tag["id"])
112 118  
113   - file_link.tags.add(tag)
114   -
115   - resource = get_object_or_404(Resource, id = file_link.id)
  119 + file_link.tags.add(tag)
  120 +
  121 + resource = get_object_or_404(Resource, id = file_link.id)
116 122  
117   - for pend in pendencies:
118   - Pendencies.objects.create(resource = resource, **pend)
  123 + for pend in pendencies:
  124 + Pendencies.objects.create(resource = resource, **pend)
119 125  
120 126 return file_link
121 127  
... ...
goals/serializers.py
... ... @@ -39,56 +39,62 @@ class SimpleGoalSerializer(serializers.ModelSerializer):
39 39 goals = None
40 40  
41 41 if not topic["id"] is None:
42   - if topic['id'] == "":
43   - topic_exist = Topic.objects.filter(subject = topic['subject'], name__unaccent__iexact = topic["name"])
44   -
45   - if topic_exist.exists():
46   - topic = topic_exist[0]
47   - else:
48   - topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'])
49   -
50   - data["topic"] = topic
  42 + if "subject" in topic:
  43 + r_exits = Resource.objects.filter(topic__subject = topic["subject"], name__unaccent__iexact = data["name"])
51 44 else:
52   - data["topic"] = get_object_or_404(Topic, id = topic["id"])
53   -
54   - goals_data = data
55   -
56   - pendencies = goals_data["pendencies_resource"]
57   - del goals_data["pendencies_resource"]
58   -
59   - goal_items = goals_data["item_goal"]
60   - del goals_data["item_goal"]
61   -
62   - goals = Goals()
63   - goals.name = goals_data["name"]
64   - goals.brief_description = goals_data["brief_description"]
65   - goals.show_window = goals_data["show_window"]
66   - goals.all_students = goals_data["all_students"]
67   - goals.visible = goals_data["visible"]
68   - goals.order = goals_data["order"]
69   - goals.topic = goals_data["topic"]
70   - goals.presentation = goals_data["presentation"]
71   - goals.limit_submission_date = goals_data["limit_submission_date"]
72   -
73   - goals.save()
74   -
75   - tags = data["tags"]
76   -
77   - for tag in tags:
78   - if tag["id"] == "":
79   - tag = Tag.objects.create(name = tag["name"])
  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
80 57 else:
81   - tag = get_object_or_404(Tag, id = tag["id"])
  58 + data["topic"] = get_object_or_404(Topic, id = topic["id"])
  59 +
  60 + goals_data = data
  61 +
  62 + pendencies = goals_data["pendencies_resource"]
  63 + del goals_data["pendencies_resource"]
  64 +
  65 + goal_items = goals_data["item_goal"]
  66 + del goals_data["item_goal"]
  67 +
  68 + goals = Goals()
  69 + goals.name = goals_data["name"]
  70 + goals.brief_description = goals_data["brief_description"]
  71 + goals.show_window = goals_data["show_window"]
  72 + goals.all_students = goals_data["all_students"]
  73 + goals.visible = goals_data["visible"]
  74 + goals.order = goals_data["order"]
  75 + goals.topic = goals_data["topic"]
  76 + goals.presentation = goals_data["presentation"]
  77 + goals.limit_submission_date = goals_data["limit_submission_date"]
  78 +
  79 + goals.save()
  80 +
  81 + tags = data["tags"]
  82 +
  83 + for tag in tags:
  84 + if tag["id"] == "":
  85 + tag = Tag.objects.create(name = tag["name"])
  86 + else:
  87 + tag = get_object_or_404(Tag, id = tag["id"])
82 88  
83   - goals.tags.add(tag)
  89 + goals.tags.add(tag)
84 90  
85   - resource = get_object_or_404(Resource, id = goals.id)
  91 + resource = get_object_or_404(Resource, id = goals.id)
86 92  
87   - for item in goal_items:
88   - GoalItem.objects.create(goal = goals, **item)
  93 + for item in goal_items:
  94 + GoalItem.objects.create(goal = goals, **item)
89 95  
90   - for pend in pendencies:
91   - Pendencies.objects.create(resource = resource, **pend)
  96 + for pend in pendencies:
  97 + Pendencies.objects.create(resource = resource, **pend)
92 98  
93 99 return goals
94 100  
... ...
links/serializers.py
... ... @@ -33,49 +33,55 @@ class SimpleLinkSerializer(serializers.ModelSerializer):
33 33 link = None
34 34  
35 35 if not topic["id"] is None:
36   - if topic['id'] == "":
37   - topic_exist = Topic.objects.filter(subject = topic['subject'], name__unaccent__iexact = topic["name"])
38   -
39   - if topic_exist.exists():
40   - topic = topic_exist[0]
41   - else:
42   - topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'])
43   -
44   - data["topic"] = topic
  36 + if "subject" in topic:
  37 + r_exits = Resource.objects.filter(topic__subject = topic["subject"], name__unaccent__iexact = data["name"])
45 38 else:
46   - data["topic"] = get_object_or_404(Topic, id = topic["id"])
47   -
48   - link_data = data
49   -
50   - pendencies = link_data["pendencies_resource"]
51   - del link_data["pendencies_resource"]
52   -
53   - link = Link()
54   - link.name = link_data["name"]
55   - link.brief_description = link_data["brief_description"]
56   - link.show_window = link_data["show_window"]
57   - link.all_students = link_data["all_students"]
58   - link.visible = link_data["visible"]
59   - link.order = link_data["order"]
60   - link.topic = link_data["topic"]
61   - link.link_url = link_data["link_url"]
62   -
63   - link.save()
64   -
65   - tags = data["tags"]
66   -
67   - for tag in tags:
68   - if tag["id"] == "":
69   - tag = Tag.objects.create(name = tag["name"])
  39 + r_exits = Resource.objects.filter(topic__subject__id = topic["subject_id"], name__unaccent__iexact = data["name"])
  40 +
  41 + if not r_exits.exists():
  42 + if topic['id'] == "":
  43 + topic_exist = Topic.objects.filter(subject = topic['subject'], name__unaccent__iexact = topic["name"])
  44 +
  45 + if topic_exist.exists():
  46 + topic = topic_exist[0]
  47 + else:
  48 + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'])
  49 +
  50 + data["topic"] = topic
70 51 else:
71   - tag = get_object_or_404(Tag, id = tag["id"])
  52 + data["topic"] = get_object_or_404(Topic, id = topic["id"])
72 53  
73   - link.tags.add(tag)
74   -
75   - resource = get_object_or_404(Resource, id = link.id)
  54 + link_data = data
  55 +
  56 + pendencies = link_data["pendencies_resource"]
  57 + del link_data["pendencies_resource"]
  58 +
  59 + link = Link()
  60 + link.name = link_data["name"]
  61 + link.brief_description = link_data["brief_description"]
  62 + link.show_window = link_data["show_window"]
  63 + link.all_students = link_data["all_students"]
  64 + link.visible = link_data["visible"]
  65 + link.order = link_data["order"]
  66 + link.topic = link_data["topic"]
  67 + link.link_url = link_data["link_url"]
  68 +
  69 + link.save()
  70 +
  71 + tags = data["tags"]
  72 +
  73 + for tag in tags:
  74 + if tag["id"] == "":
  75 + tag = Tag.objects.create(name = tag["name"])
  76 + else:
  77 + tag = get_object_or_404(Tag, id = tag["id"])
  78 +
  79 + link.tags.add(tag)
  80 +
  81 + resource = get_object_or_404(Resource, id = link.id)
76 82  
77   - for pend in pendencies:
78   - Pendencies.objects.create(resource = resource, **pend)
  83 + for pend in pendencies:
  84 + Pendencies.objects.create(resource = resource, **pend)
79 85  
80 86 return link
81 87  
... ...
pdf_file/serializers.py
... ... @@ -60,55 +60,61 @@ class SimplePDFFileSerializer(serializers.ModelSerializer):
60 60 pdf = None
61 61  
62 62 if not topic["id"] is None:
63   - if topic['id'] == "":
64   - topic_exist = Topic.objects.filter(subject = topic['subject'], name__unaccent__iexact = topic["name"])
65   -
66   - if topic_exist.exists():
67   - topic = topic_exist[0]
68   - else:
69   - topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'])
70   -
71   - data["topic"] = topic
  63 + if "subject" in topic:
  64 + r_exits = Resource.objects.filter(topic__subject = topic["subject"], name__unaccent__iexact = data["name"])
72 65 else:
73   - data["topic"] = get_object_or_404(Topic, id = topic["id"])
74   -
75   -
76   - f = open(os.path.join(settings.MEDIA_ROOT, data["file"]), encoding="latin-1")
77   - file = File(f)
78   -
79   - data["file"] = file
80   -
81   - pdf_data = data
82   -
83   - pendencies = pdf_data["pendencies_resource"]
84   - del pdf_data["pendencies_resource"]
85   -
86   - pdf = PDFFile()
87   - pdf.name = pdf_data["name"]
88   - pdf.brief_description = pdf_data["brief_description"]
89   - pdf.show_window = pdf_data["show_window"]
90   - pdf.all_students = pdf_data["all_students"]
91   - pdf.visible = pdf_data["visible"]
92   - pdf.order = pdf_data["order"]
93   - pdf.topic = pdf_data["topic"]
94   - pdf.file = pdf_data["file"]
  66 + r_exits = Resource.objects.filter(topic__subject__id = topic["subject_id"], name__unaccent__iexact = data["name"])
  67 +
  68 + if not r_exits.exists():
  69 + if topic['id'] == "":
  70 + topic_exist = Topic.objects.filter(subject = topic['subject'], name__unaccent__iexact = topic["name"])
  71 +
  72 + if topic_exist.exists():
  73 + topic = topic_exist[0]
  74 + else:
  75 + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'])
  76 +
  77 + data["topic"] = topic
  78 + else:
  79 + data["topic"] = get_object_or_404(Topic, id = topic["id"])
95 80  
96   - pdf.save()
97 81  
98   - tags = data["tags"]
  82 + f = open(os.path.join(settings.MEDIA_ROOT, data["file"]), encoding="latin-1")
  83 + file = File(f)
99 84  
100   - for tag in tags:
101   - if tag["id"] == "":
102   - tag = Tag.objects.create(name = tag["name"])
103   - else:
104   - tag = get_object_or_404(Tag, id = tag["id"])
  85 + data["file"] = file
105 86  
106   - pdf.tags.add(tag)
107   -
108   - resource = get_object_or_404(Resource, id = pdf.id)
  87 + pdf_data = data
  88 +
  89 + pendencies = pdf_data["pendencies_resource"]
  90 + del pdf_data["pendencies_resource"]
  91 +
  92 + pdf = PDFFile()
  93 + pdf.name = pdf_data["name"]
  94 + pdf.brief_description = pdf_data["brief_description"]
  95 + pdf.show_window = pdf_data["show_window"]
  96 + pdf.all_students = pdf_data["all_students"]
  97 + pdf.visible = pdf_data["visible"]
  98 + pdf.order = pdf_data["order"]
  99 + pdf.topic = pdf_data["topic"]
  100 + pdf.file = pdf_data["file"]
  101 +
  102 + pdf.save()
  103 +
  104 + tags = data["tags"]
  105 +
  106 + for tag in tags:
  107 + if tag["id"] == "":
  108 + tag = Tag.objects.create(name = tag["name"])
  109 + else:
  110 + tag = get_object_or_404(Tag, id = tag["id"])
  111 +
  112 + pdf.tags.add(tag)
  113 +
  114 + resource = get_object_or_404(Resource, id = pdf.id)
109 115  
110   - for pend in pendencies:
111   - Pendencies.objects.create(resource = resource, **pend)
  116 + for pend in pendencies:
  117 + Pendencies.objects.create(resource = resource, **pend)
112 118  
113 119 return pdf
114 120  
... ...
subjects/views.py
... ... @@ -822,12 +822,6 @@ def realize_backup(request, subject):
822 822 data_list.append(serializer_g.data)
823 823  
824 824 json.dump(data_list, file)
825   - # json.dump(serializer_w.data, file)
826   - # json.dump(serializer_y.data, file)
827   - # json.dump(serializer_f.data, file)
828   - # json.dump(serializer_l.data, file)
829   - # json.dump(serializer_p.data, file)
830   - # json.dump(serializer_g.data, file)
831 825  
832 826 file.close()
833 827  
... ... @@ -909,4 +903,6 @@ def realize_restore(request, subject):
909 903 serial.is_valid()
910 904 serial.save()
911 905  
912   - return JsonResponse({'message': 'ok'})
913 906 \ No newline at end of file
  907 + messages.success(request, _('Backup restored successfully!'))
  908 +
  909 + return redirect(reverse_lazy('subjects:restore', kwargs = {"slug": subject}))
914 910 \ No newline at end of file
... ...
webpage/serializers.py
... ... @@ -33,49 +33,55 @@ class SimpleWebpageSerializer(serializers.ModelSerializer):
33 33 webpage = None
34 34  
35 35 if not topic["id"] is None:
36   - if topic['id'] == "":
37   - topic_exist = Topic.objects.filter(subject = topic['subject'], name__unaccent__iexact = topic["name"])
38   -
39   - if topic_exist.exists():
40   - topic = topic_exist[0]
41   - else:
42   - topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'])
43   -
44   - data["topic"] = topic
  36 + if "subject" in topic:
  37 + r_exits = Resource.objects.filter(topic__subject = topic["subject"], name__unaccent__iexact = data["name"])
45 38 else:
46   - data["topic"] = get_object_or_404(Topic, id = topic["id"])
47   -
48   - webpage_data = data
49   -
50   - pendencies = webpage_data["pendencies_resource"]
51   - del webpage_data["pendencies_resource"]
52   -
53   - webpage = Webpage()
54   - webpage.name = webpage_data["name"]
55   - webpage.brief_description = webpage_data["brief_description"]
56   - webpage.show_window = webpage_data["show_window"]
57   - webpage.all_students = webpage_data["all_students"]
58   - webpage.visible = webpage_data["visible"]
59   - webpage.order = webpage_data["order"]
60   - webpage.topic = webpage_data["topic"]
61   - webpage.content = webpage_data["content"]
62   -
63   - webpage.save()
64   -
65   - tags = data["tags"]
66   -
67   - for tag in tags:
68   - if tag["id"] == "":
69   - tag = Tag.objects.create(name = tag["name"])
  39 + r_exits = Resource.objects.filter(topic__subject__id = topic["subject_id"], name__unaccent__iexact = data["name"])
  40 +
  41 + if not r_exits.exists():
  42 + if topic['id'] == "":
  43 + topic_exist = Topic.objects.filter(subject = topic['subject'], name__unaccent__iexact = topic["name"])
  44 +
  45 + if topic_exist.exists():
  46 + topic = topic_exist[0]
  47 + else:
  48 + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'])
  49 +
  50 + data["topic"] = topic
70 51 else:
71   - tag = get_object_or_404(Tag, id = tag["id"])
  52 + data["topic"] = get_object_or_404(Topic, id = topic["id"])
  53 +
  54 + webpage_data = data
  55 +
  56 + pendencies = webpage_data["pendencies_resource"]
  57 + del webpage_data["pendencies_resource"]
  58 +
  59 + webpage = Webpage()
  60 + webpage.name = webpage_data["name"]
  61 + webpage.brief_description = webpage_data["brief_description"]
  62 + webpage.show_window = webpage_data["show_window"]
  63 + webpage.all_students = webpage_data["all_students"]
  64 + webpage.visible = webpage_data["visible"]
  65 + webpage.order = webpage_data["order"]
  66 + webpage.topic = webpage_data["topic"]
  67 + webpage.content = webpage_data["content"]
  68 +
  69 + webpage.save()
  70 +
  71 + tags = data["tags"]
  72 +
  73 + for tag in tags:
  74 + if tag["id"] == "":
  75 + tag = Tag.objects.create(name = tag["name"])
  76 + else:
  77 + tag = get_object_or_404(Tag, id = tag["id"])
72 78  
73   - webpage.tags.add(tag)
  79 + webpage.tags.add(tag)
74 80  
75   - resource = get_object_or_404(Resource, id = webpage.id)
  81 + resource = get_object_or_404(Resource, id = webpage.id)
76 82  
77   - for pend in pendencies:
78   - Pendencies.objects.create(resource = resource, **pend)
  83 + for pend in pendencies:
  84 + Pendencies.objects.create(resource = resource, **pend)
79 85  
80 86 return webpage
81 87  
... ...
youtube_video/serializers.py
... ... @@ -33,50 +33,56 @@ class SimpleYTVideoSerializer(serializers.ModelSerializer):
33 33 ytvideo = None
34 34  
35 35 if not topic["id"] is None:
36   - if topic['id'] == "":
37   - topic_exist = Topic.objects.filter(subject = topic['subject'], name__unaccent__iexact = topic["name"])
38   -
39   - if topic_exist.exists():
40   - topic = topic_exist[0]
41   - else:
42   - topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'])
43   -
44   - data["topic"] = topic
  36 + if "subject" in topic:
  37 + r_exits = Resource.objects.filter(topic__subject = topic["subject"], name__unaccent__iexact = data["name"])
45 38 else:
46   - data["topic"] = get_object_or_404(Topic, id = topic["id"])
47   -
48   -
49   - ytvideo_data = data
50   -
51   - pendencies = ytvideo_data["pendencies_resource"]
52   - del ytvideo_data["pendencies_resource"]
53   -
54   - ytvideo = YTVideo()
55   - ytvideo.name = ytvideo_data["name"]
56   - ytvideo.brief_description = ytvideo_data["brief_description"]
57   - ytvideo.show_window = ytvideo_data["show_window"]
58   - ytvideo.all_students = ytvideo_data["all_students"]
59   - ytvideo.visible = ytvideo_data["visible"]
60   - ytvideo.order = ytvideo_data["order"]
61   - ytvideo.topic = ytvideo_data["topic"]
62   - ytvideo.url = ytvideo_data["url"]
63   -
64   - ytvideo.save()
65   -
66   - tags = data["tags"]
67   -
68   - for tag in tags:
69   - if tag["id"] == "":
70   - tag = Tag.objects.create(name = tag["name"])
  39 + r_exits = Resource.objects.filter(topic__subject__id = topic["subject_id"], name__unaccent__iexact = data["name"])
  40 +
  41 + if not r_exits.exists():
  42 + if topic['id'] == "":
  43 + topic_exist = Topic.objects.filter(subject = topic['subject'], name__unaccent__iexact = topic["name"])
  44 +
  45 + if topic_exist.exists():
  46 + topic = topic_exist[0]
  47 + else:
  48 + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'])
  49 +
  50 + data["topic"] = topic
71 51 else:
72   - tag = get_object_or_404(Tag, id = tag["id"])
  52 + data["topic"] = get_object_or_404(Topic, id = topic["id"])
  53 +
73 54  
74   - ytvideo.tags.add(tag)
  55 + ytvideo_data = data
75 56  
76   - resource = get_object_or_404(Resource, id = ytvideo.id)
  57 + pendencies = ytvideo_data["pendencies_resource"]
  58 + del ytvideo_data["pendencies_resource"]
  59 +
  60 + ytvideo = YTVideo()
  61 + ytvideo.name = ytvideo_data["name"]
  62 + ytvideo.brief_description = ytvideo_data["brief_description"]
  63 + ytvideo.show_window = ytvideo_data["show_window"]
  64 + ytvideo.all_students = ytvideo_data["all_students"]
  65 + ytvideo.visible = ytvideo_data["visible"]
  66 + ytvideo.order = ytvideo_data["order"]
  67 + ytvideo.topic = ytvideo_data["topic"]
  68 + ytvideo.url = ytvideo_data["url"]
  69 +
  70 + ytvideo.save()
  71 +
  72 + tags = data["tags"]
  73 +
  74 + for tag in tags:
  75 + if tag["id"] == "":
  76 + tag = Tag.objects.create(name = tag["name"])
  77 + else:
  78 + tag = get_object_or_404(Tag, id = tag["id"])
  79 +
  80 + ytvideo.tags.add(tag)
  81 +
  82 + resource = get_object_or_404(Resource, id = ytvideo.id)
77 83  
78   - for pend in pendencies:
79   - Pendencies.objects.create(resource = resource, **pend)
  84 + for pend in pendencies:
  85 + Pendencies.objects.create(resource = resource, **pend)
80 86  
81 87 return ytvideo
82 88  
... ...