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))
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
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), )
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
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
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))
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), )