Beispiel #1
0
    def create(self, data):
        topic = data['topic']

        ytvideo = None

        if not topic["id"] is None:
            if "subject" in topic:
                r_exits = Resource.objects.filter(
                    topic__subject=topic["subject"],
                    name__unaccent__iexact=data["name"])
            else:
                r_exits = Resource.objects.filter(
                    topic__subject__id=topic["subject_id"],
                    name__unaccent__iexact=data["name"])

            if not r_exits.exists():
                if topic['id'] == "":
                    topic_exist = Topic.objects.filter(
                        subject=topic['subject'],
                        name__unaccent__iexact=topic["name"])

                    if topic_exist.exists():
                        topic = topic_exist[0]
                    else:
                        topic = Topic.objects.create(
                            name=topic['name'],
                            subject=topic['subject'],
                            repository=topic['repository'],
                            visible=topic['visible'],
                            order=topic['order'],
                            description=topic['description'])

                    data["topic"] = topic
                else:
                    data["topic"] = get_object_or_404(Topic, id=topic["id"])

                ytvideo_data = data

                pendencies = ytvideo_data["pendencies_resource"]
                del ytvideo_data["pendencies_resource"]

                ytvideo = YTVideo()
                ytvideo.name = ytvideo_data["name"]
                ytvideo.brief_description = ytvideo_data["brief_description"]
                ytvideo.show_window = ytvideo_data["show_window"]
                ytvideo.all_students = ytvideo_data["all_students"]
                ytvideo.visible = ytvideo_data["visible"]
                ytvideo.order = ytvideo_data["order"]
                ytvideo.topic = ytvideo_data["topic"]
                ytvideo.url = ytvideo_data["url"]

                ytvideo.save()

                tags = data["tags"]

                for tag in tags:
                    if not tag["name"] == "":
                        if tag["id"] == "":
                            tag = Tag.objects.create(name=tag["name"])
                        else:
                            tag = get_object_or_404(Tag, id=tag["id"])

                        ytvideo.tags.add(tag)

                students = data["students"]
                subject = get_object_or_404(Subject,
                                            slug=self.context.get(
                                                "subject", None))

                for student_data in students:
                    logs = student_data["get_items"]

                    if student_data["id"] == "":
                        u_exist = User.objects.filter(
                            email=student_data["email"])

                        if not u_exist.exists():
                            student = u_exist[0]

                            for log in logs:
                                log["user_id"] = student.id

                                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"])

                                if not l_exists.exists():
                                    Log.objects.create(**log)
                        else:
                            student = User()
                            student.email = student_data["email"]
                            student.username = student_data["username"]
                            student.last_name = student_data["last_name"]
                            student.social_name = student_data["social_name"]
                            student.show_email = student_data["show_email"]
                            student.is_staff = student_data["is_staff"]
                            student.is_active = student_data["is_active"]
                            student.image = student_data["image"]

                            student.save()

                            for log in logs:
                                log["user_id"] = student.id

                                Log.objects.create(**log)
                    else:
                        student = get_object_or_404(User,
                                                    id=student_data["id"])

                        for log in logs:
                            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"])

                            if not l_exists.exists():
                                Log.objects.create(**log)

                    ytvideo.students.add(student)
                    subject.students.add(student)

                groups = data["groups"]

                for group_data in groups:
                    g_exists = StudentsGroup.objects.filter(
                        subject=subject, slug=group_data["slug"])

                    if g_exists.exists():
                        group = g_exists[0]
                    else:
                        group = StudentsGroup()
                        group.name = group_data["name"]
                        group.description = group_data["description"]
                        group.subject = subject

                        group.save()

                        for participant in group_data["participants"]:
                            p_user = get_object_or_404(
                                User, email=participant["email"])

                            group.participants.add(p_user)

                    ytvideo.groups.add(group)

                resource = get_object_or_404(Resource, id=ytvideo.id)

                for pend in pendencies:
                    Pendencies.objects.create(resource=resource, **pend)

        return ytvideo
	def create(self, data):
		topic = data['topic']

		webpage = None

		if not topic["id"] is None:
			if "subject" in topic:
				r_exits = Resource.objects.filter(topic__subject = topic["subject"], name__unaccent__iexact = data["name"])
			else:
				r_exits = Resource.objects.filter(topic__subject__id = topic["subject_id"], name__unaccent__iexact = data["name"])

			if not r_exits.exists():
				if topic['id'] == "":
					topic_exist = Topic.objects.filter(subject = topic['subject'], name__unaccent__iexact = topic["name"])

					if topic_exist.exists():
						topic = topic_exist[0]
					else:
						topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'], description = topic['description'])
					
					data["topic"] = topic
				else:
					data["topic"] = get_object_or_404(Topic, id = topic["id"])

				webpage_data = data
				
				pendencies = webpage_data["pendencies_resource"]
				del webpage_data["pendencies_resource"]

				webpage = Webpage()
				webpage.name = webpage_data["name"]
				webpage.brief_description = webpage_data["brief_description"]
				webpage.show_window = webpage_data["show_window"]
				webpage.all_students = webpage_data["all_students"]
				webpage.visible = webpage_data["visible"]
				webpage.order = webpage_data["order"]
				webpage.topic = webpage_data["topic"]
				webpage.content = webpage_data["content"]

				webpage.save()

				tags = data["tags"]

				for tag in tags:
					if not tag["name"] == "":
						if tag["id"] == "":
							tag = Tag.objects.create(name = tag["name"])
						else:
							tag = get_object_or_404(Tag, id = tag["id"])

						webpage.tags.add(tag)

				students = data["students"]
				subject = get_object_or_404(Subject, slug = self.context.get("subject", None))

				for student_data in students:
					logs = student_data["get_items"]
					
					if student_data["id"] == "":
						u_exist = User.objects.filter(email = student_data["email"])


						if not u_exist.exists():
							student = u_exist[0]

							for log in logs:
								log["user_id"] = student.id

								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"])

								if not l_exists.exists():
									Log.objects.create(**log)
						else:
							student = User()
							student.email = student_data["email"]
							student.username = student_data["username"]
							student.last_name = student_data["last_name"] 
							student.social_name = student_data["social_name"] 
							student.show_email = student_data["show_email"] 
							student.is_staff = student_data["is_staff"] 
							student.is_active = student_data["is_active"]
							student.image = student_data["image"]

							student.save()

							for log in logs:
								log["user_id"] = student.id

								Log.objects.create(**log)
					else:
						student = get_object_or_404(User, id = student_data["id"])

						for log in logs:
							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"])

							if not l_exists.exists():
								Log.objects.create(**log)

					webpage.students.add(student)
					subject.students.add(student)

				groups = data["groups"]

				for group_data in groups:
					g_exists = StudentsGroup.objects.filter(subject = subject, slug = group_data["slug"])

					if g_exists.exists():
						group = g_exists[0]
					else:
						group = StudentsGroup()
						group.name = group_data["name"]
						group.description = group_data["description"]
						group.subject = subject

						group.save()

						for participant in group_data["participants"]:
							p_user = get_object_or_404(User, email = participant["email"])

							group.participants.add(p_user)

					webpage.groups.add(group)

				resource = get_object_or_404(Resource, id = webpage.id)

				for pend in pendencies:
					Pendencies.objects.create(resource = resource, **pend)

		return webpage
Beispiel #3
0
    def create(self, data):
        topic = data['topic']

        request = self.context.get('request', None)

        h5p = None

        if not topic["id"] is None:

            if "subject" in topic:
                r_exits = Resource.objects.filter(
                    topic__subject=topic["subject"],
                    name__unaccent__iexact=data["name"])
            else:
                r_exits = Resource.objects.filter(
                    topic__subject__id=topic["subject_id"],
                    name__unaccent__iexact=data["name"])

            if not r_exits.exists():
                if topic['id'] == "":
                    topic_exist = Topic.objects.filter(
                        subject=topic['subject'],
                        name__unaccent__iexact=topic["name"])

                    if topic_exist.exists():
                        topic = topic_exist[0]
                    else:
                        topic = Topic.objects.create(
                            name=topic['name'],
                            subject=topic['subject'],
                            repository=topic['repository'],
                            visible=topic['visible'],
                            order=topic['order'],
                            description=topic['description'])

                    data["topic"] = topic
                else:
                    data["topic"] = get_object_or_404(Topic, id=topic["id"])

                h5p_data = data

                pendencies = h5p_data["pendencies_resource"]
                del h5p_data["pendencies_resource"]

                if h5p_data["tmph5pfile"]:
                    interface = H5PDjango(request.user)
                    validator = interface.h5pGetInstance(
                        'validator', h5p_data['folderpath'],
                        h5p_data['tmph5pfile'])

                    if validator.isValidPackage(False, False):
                        _mutable = request.POST._mutable

                        request.POST._mutable = True

                        request.POST["name"] = h5p_data["name"]
                        request.POST['file_uploaded'] = True
                        request.POST['disable'] = 0
                        request.POST['author'] = request.user.username
                        request.POST['h5p_upload'] = h5p_data['tmph5pfile']
                        request.POST['h5p_upload_folder'] = h5p_data[
                            'folderpath']

                        request.POST._mutable = _mutable

                        if h5pInsert(request, interface):
                            contentResource = h5p_contents.objects.all(
                            ).order_by('-content_id')[0]

                            h5p = H5P()
                            h5p.name = h5p_data["name"]
                            h5p.brief_description = h5p_data[
                                "brief_description"]
                            h5p.show_window = h5p_data["show_window"]
                            h5p.all_students = h5p_data["all_students"]
                            h5p.visible = h5p_data["visible"]
                            h5p.order = h5p_data["order"]
                            h5p.topic = h5p_data["topic"]
                            h5p.file = h5p_data["file"]
                            h5p.data_ini = h5p_data["data_ini"]
                            h5p.data_end = h5p_data["data_end"]
                            h5p.h5p_resource = contentResource

                            h5p.save()

                            tags = data["tags"]

                            for tag in tags:
                                if not tag["name"] == "":
                                    if tag["id"] == "":
                                        tag = Tag.objects.create(
                                            name=tag["name"])
                                    else:
                                        tag = get_object_or_404(Tag,
                                                                id=tag["id"])

                                    h5p.tags.add(tag)

                            students = data["students"]
                            subject = get_object_or_404(Subject,
                                                        slug=self.context.get(
                                                            "subject", None))

                            for student_data in students:
                                logs = student_data["get_items"]

                                if student_data["id"] == "":
                                    u_exist = User.objects.filter(
                                        email=student_data["email"])

                                    if not u_exist.exists():
                                        student = u_exist[0]

                                        for log in logs:
                                            log["user_id"] = student.id

                                            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"])

                                            if not l_exists.exists():
                                                Log.objects.create(**log)
                                    else:
                                        student = User()
                                        student.email = student_data["email"]
                                        student.username = student_data[
                                            "username"]
                                        student.last_name = student_data[
                                            "last_name"]
                                        student.social_name = student_data[
                                            "social_name"]
                                        student.show_email = student_data[
                                            "show_email"]
                                        student.is_staff = student_data[
                                            "is_staff"]
                                        student.is_active = student_data[
                                            "is_active"]
                                        student.image = student_data["image"]

                                        student.save()

                                        for log in logs:
                                            log["user_id"] = student.id

                                            Log.objects.create(**log)
                                else:
                                    student = get_object_or_404(
                                        User, id=student_data["id"])

                                    for log in logs:
                                        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"])

                                        if not l_exists.exists():
                                            Log.objects.create(**log)

                                h5p.students.add(student)
                                subject.students.add(student)

                            groups = data["groups"]

                            for group_data in groups:
                                g_exists = StudentsGroup.objects.filter(
                                    subject=subject, slug=group_data["slug"])

                                if g_exists.exists():
                                    group = g_exists[0]
                                else:
                                    group = StudentsGroup()
                                    group.name = group_data["name"]
                                    group.description = group_data[
                                        "description"]
                                    group.subject = subject

                                    group.save()

                                    for participant in group_data[
                                            "participants"]:
                                        p_user = get_object_or_404(
                                            User, email=participant["email"])

                                        group.participants.add(p_user)

                                h5p.groups.add(group)

                            resource = get_object_or_404(Resource, id=h5p.id)

                            for pend in pendencies:
                                Pendencies.objects.create(resource=resource,
                                                          **pend)

        return h5p