Exemplo n.º 1
0
def admin_enqueue_resources(request):
    if request.POST:
        raw_data = request.POST.get("resources_to_process", None)
        data = raw_data.splitlines()
        for identifier in data:
            # identify this identifier_id
            item = utils.resource_identifier(identifier)
            if item and item.identified:
                queue, created = ResourceQueue.objects.get_or_create(
                    identifier_id=item.identifier_id,
                    plugin_name=item.PLUGIN_NAME,
                    plugin_slug=item.PLUGIN_SLUG,
                    full_url=item.full_url,
                    priority=8,
                )
                if created:
                    msg = "Identifier %(identifier)s has been Queued as PLGUIN: %(plugin)s" % {
                        "identifier": item.identifier_id,
                        "plugin": item.PLUGIN_NAME,
                    }
                    messages.success(request, _(msg))
            else:
                msg = _("Identifier %(identifier)s HAS NOT been Identified" % {"identifier": item.identifier_id})
                messages.success(request, _(msg))

    return render_to_response("admin/admin_enqueue_resources.html", locals(), context_instance=RequestContext(request))
Exemplo n.º 2
0
 def run(self):
     '''
     run the queued resource according to the plugin_name
     '''
     # load parser
     if self.identifier_id and self.plugin_name:
         parsed = resource_identifier(url=self.identifier_id,
                                      plugin_slug=self.plugin_slug)
         if parsed and parsed.identified:
             try:
                 parsed.parse()
                 parsed.index()
                 parsed.download()
                 if parsed.resource:
                     parsed.resource.generate_thumb()
                     activity_queued_item_delivery(self, parsed.resource)
                     self.status = "done"
                 else:
                     self.status = 'error'
                 self.save()
                 return parsed
             except:
                 #raise
                 self.status = 'error'
                 # increase tries TODO
                 # self.tries += 1
                 self.save()
                 return False
Exemplo n.º 3
0
def admin_enqueue_resources(request):
    if request.POST:
        raw_data = request.POST.get('resources_to_process', None)
        data = raw_data.splitlines()
        for identifier in data:
            # identify this identifier_id
            item = utils.resource_identifier(identifier)
            if item and item.identified:
                queue, created = ResourceQueue.objects.get_or_create(
                    identifier_id=item.identifier_id,
                    plugin_name=item.PLUGIN_NAME,
                    plugin_slug=item.PLUGIN_SLUG,
                    full_url=item.full_url,
                    priority=8,
                )
                if created:
                    msg = 'Identifier %(identifier)s has been Queued as PLGUIN: %(plugin)s' % {
                        'identifier': item.identifier_id,
                        'plugin': item.PLUGIN_NAME
                    }
                    messages.success(request, _(msg))
            else:
                msg = _('Identifier %(identifier)s HAS NOT been Identified' %
                        {'identifier': item.identifier_id})
                messages.success(request, _(msg))

    return render_to_response(
        'admin/admin_enqueue_resources.html',
        locals(),
        context_instance=RequestContext(request),
    )
Exemplo n.º 4
0
 def run(self):
     '''
     run the queued resource according to the plugin_name
     '''
     # load parser
     if self.identifier_id and self.plugin_name:
         parsed = resource_identifier(
             url=self.identifier_id,
             plugin_slug=self.plugin_slug
         )
         if parsed and parsed.identified:
             try:
                 parsed.parse()
                 parsed.index()
                 parsed.download()
                 if parsed.resource:
                     print "existe resource"
                     parsed.resource.generate_thumb()
                     activity_queued_item_delivery(self, parsed.resource)
                     self.status = "done"
                 else:
                     self.status = 'error'
                 self.save()
                 return parsed
             except:
                 raise
                 self.status = 'error'
                 # increase tries TODO
                 # self.tries += 1
                 self.save()
                 return False
Exemplo n.º 5
0
 def handle(self, *args, **kwargs):
     print args
     for identifier in args:
         # identify this identifier_id
         item = utils.resource_identifier(identifier)
         if item and item.identified:
             queue,created = ResourceQueue.objects.get_or_create(
                 identifier_id=item.identifier_id,
                 plugin_name=item.PLUGIN_NAME,
                 plugin_slug=item.PLUGIN_SLUG,
                 full_url=item.full_url,
                 priority=1,
             )
             if created:
                 print "QUEUE for IDENTIFIER: %s CREATED" % identifier
         else:
             print "IDENTIFIER %s NOT IDENTIFIED. IGNORING" % identifier
Exemplo n.º 6
0
def activity_details(request, object_id):
    activity = get_object_or_404(Activity, id=object_id)
    curricular_grades = CurricularGrade.objects.filter(parent=None)
    # add activity
    if request.POST:
        raw_data = request.POST.get("resources_to_process", None)
        data = raw_data.splitlines()
        for line in data:
            # try scenario: Resource already installed
            try:
                # try to identify this identifier_id
                item = resource_identifier(line)
                if item:
                    resource = Resource.objects.get(resource_reference_string=item.identifier_id)
                    # get contenttype
                    contenttype = ContentType.objects.get_for_model(resource)
                    # define order
                    try:
                        order = activity.activityitem_set.order_by("-order")[0].order + 1
                    except:
                        order = 1
                    # create activity item with it
                    activity_item = ActivityItem.objects.create(
                        order=order, content_type_id=contenttype.id, object_id=resource.id, activity=activity
                    )
                    messages.success(request, u"<b>Sucesso!</b>! %s Adicionado à Atividade!" % item.identifier_id)
                else:
                    messages.warning(request, u"<b>Atenção!</b>! %s não identificado em nenhum plugin!" % line)

            # Resource not found. Queue it under the identifier
            except Resource.DoesNotExist:

                # check if item is identified
                if item and item.identified:
                    # get or create a Queue for this identifier
                    queue, created = ResourceQueue.objects.get_or_create(
                        identifier_id=item.identifier_id,
                        plugin_name=item.PLUGIN_NAME,
                        plugin_slug=item.PLUGIN_SLUG,
                        request_user=request.user,
                        full_url=item.full_url,
                        priority=1,
                    )
                    # queue created.
                    if created:
                        # set order in activity
                        try:
                            order = activity.activityitem_set.order_by("-order")[0].order + 1
                        except:
                            order = 1
                        # create celery queue too
                        # if getattr(settings, 'USE_CELERY', False):
                        #    add_resource_to_queue.delay(queue.id)
                        contenttype = ContentType.objects.get_for_model(queue)
                        # add activity item first
                        activity_item = ActivityItem.objects.create(
                            order=order, content_type_id=contenttype.id, object_id=queue.id, activity=activity
                        )
                        messages.info(
                            request,
                            u"<b>%s</b> foi identificado como pertencendo ao %s e Adicionado à Lista de Downloads"
                            % (item.identifier_id, item.SOURCE_NAME),
                        )
                    # quue not created, already on queued
                    # no
                    else:
                        messages.info(
                            request, u"<b>Informação!</b>! %s Já está na Lista de Download" % item.identifier_id
                        )
                # not identified. warn User
                else:
                    messages.warning(request, u"<b>Atenção!</b>! %s não identificado!" % item.identifier_id)

    return render_to_response("activity_details.html", locals(), context_instance=RequestContext(request))
Exemplo n.º 7
0
def activity_details(request, object_id):
    activity = get_object_or_404(Activity, id=object_id)
    curricular_grades = CurricularGrade.objects.filter(parent=None)
    # add activity
    if request.POST:
        raw_data = request.POST.get('resources_to_process', None)
        data = raw_data.splitlines()
        for line in data:
            # try scenario: Resource already installed
            try:
                # try to identify this identifier_id
                item = resource_identifier(line)
                if item:
                    resource = Resource.objects.get(
                        resource_reference_string=item.identifier_id)
                    # get contenttype
                    contenttype = ContentType.objects.get_for_model(resource)
                    # define order
                    try:
                        order = activity.activityitem_set.order_by(
                            '-order')[0].order + 1
                    except:
                        order = 1
                    # create activity item with it
                    activity_item = ActivityItem.objects.create(
                        order=order,
                        content_type_id=contenttype.id,
                        object_id=resource.id,
                        activity=activity,
                    )
                    messages.success(
                        request,
                        u'<b>Sucesso!</b>! %s Adicionado à Atividade!' %
                        item.identifier_id)
                else:
                    messages.warning(
                        request,
                        u'<b>Atenção!</b>! %s não identificado em nenhum plugin!'
                        % line)

            # Resource not found. Queue it under the identifier
            except Resource.DoesNotExist:

                # check if item is identified
                if item and item.identified:
                    # get or create a Queue for this identifier
                    queue, created = ResourceQueue.objects.get_or_create(
                        identifier_id=item.identifier_id,
                        plugin_name=item.PLUGIN_NAME,
                        plugin_slug=item.PLUGIN_SLUG,
                        request_user=request.user,
                        full_url=item.full_url,
                        priority=1,
                    )
                    # queue created.
                    if created:
                        # set order in activity
                        try:
                            order = activity.activityitem_set.order_by(
                                '-order')[0].order + 1
                        except:
                            order = 1
                        # create celery queue too
                        #if getattr(settings, 'USE_CELERY', False):
                        #    add_resource_to_queue.delay(queue.id)
                        contenttype = ContentType.objects.get_for_model(queue)
                        # add activity item first
                        activity_item = ActivityItem.objects.create(
                            order=order,
                            content_type_id=contenttype.id,
                            object_id=queue.id,
                            activity=activity,
                        )
                        messages.info(
                            request,
                            u'<b>%s</b> foi identificado como pertencendo ao %s e Adicionado à Lista de Downloads'
                            % (item.identifier_id, item.SOURCE_NAME))
                    # quue not created, already on queued
                    # no
                    else:
                        messages.info(
                            request,
                            u'<b>Informação!</b>! %s Já está na Lista de Download'
                            % item.identifier_id)
                # not identified. warn User
                else:
                    messages.warning(
                        request, u'<b>Atenção!</b>! %s não identificado!' %
                        item.identifier_id)

    return render_to_response(
        'activity_details.html',
        locals(),
        context_instance=RequestContext(request),
    )