Exemplo n.º 1
0
    def save(self, *args, **kwargs):
        """Check whether study is already in references and fetches annotation.
        1. Whether reference nor study exist.
        2. reference exist but not study.
        3. reference does not exit but study
        4. Both reference and study exist."""
        if self.title: kwargs['title'] = self.title
        if self.pmid: kwargs['pmid'] = self.pmid
        if self.link:
            kwargs['link'] = self.link
        if self.pmid:
            reference, created = Reference.objects.get_or_create(
                pmid=self.pmid, defaults=kwargs)
            #print "models.Study.save() if self.pmid:", reference, created
            self.reference_was_created = created
        elif self.title:
            try:
                #print "TRRRRRRRRRRRRRRRYL reference, creating"
                try:
                    reference, created = Reference.objects.get_or_create(
                        title__icontains=self.title, defaults=kwargs)
                except MultipleObjectsReturned as e:
                    references = Reference.objects.filter(
                        title__icontains=self.title)  #, defaults=kwargs)
                    for reference in references:
                        if reference.pmid:
                            break
                    created = False
                except Exception as e:
                    print e
                #print "TRRRRRRRRRRRRRRRYL reference, created", created
                #print reference, created
                self.reference_was_created = created
                #print "self.reference_was_created", self.reference_was_created
                self.reference = reference

                #print self.reference
                #super(Study, self).save()
                #print "Saved!"
                #print "Post save: ", self.reference
            except IntegrityError:
                return None
                #reference = Reference(**kwargs)
                #created = False
        else:
            reference = Reference(**kwargs)
            created = False

        #if not created and self.title:
        #reference.__dict__.update(#**kwargs)
        #reference.save()
        #print reference

        self.pmid = reference.pmid
        self.title = reference.title
        self.reference = reference
        try:
            super(Study, self).save()
        except IntegrityError as e:
            print e
Exemplo n.º 2
0
def duplicates(request):
    dups = Reference.duplicates()
    return render_to_response('datasets/reference_archive.html', {'references': dups},
                              context_instance=RequestContext(request))
Exemplo n.º 3
0
def update_references(request):
    Reference.update()
    render_to_response('datasets/index.html',
                      context_instance=RequestContext(request))