예제 #1
0
def delete_study(request, pk):
    try:
        study = Study.objects.get(pk=pk)
    except ObjectDoesNotExist:
        msg = "Error study matching query does not exist."
        messages.add_message(request, messages.ERROR, ugettext(msg))
        return redirect('/lifespan/studies/')
    form = DeleteStudyForm(request.POST or None)
    if request.method == "POST" and form.is_valid:
        if 'cancel' in request.POST:
            return redirect('/lifespan/study/%s' % pk)
        else:
            with reversion.create_revision():
                try:
                    if 'delete_study' in request.POST:
                        study.delete()
                    if 'delete_reference' in request.POST:
                        study.delete()
                        study.reference.delete()
                except AttributeError:
                    msg = "Error study did not have a reference associated."
                    messages.add_message(request, messages.ERROR,
                                         ugettext(msg))
                reversion.set_user(request.user)
                comment = request.POST['comment'] or "Deleted study"
                reversion.set_comment(comment)
                log(request, study, comment)
                return redirect('/lifespan/studies/')
    ctx = {'study': study, 'form': form}
    return render_to_response('lifespan/delete_study.html',
                              ctx,
                              context_instance=RequestContext(request))
예제 #2
0
def delete_study(request, pk):
    try:
        study = Study.objects.get(pk=pk)
    except ObjectDoesNotExist:
        msg = "Error study matching query does not exist."
        messages.add_message(request, messages.ERROR, ugettext(msg))
        return redirect('/lifespan/studies/')
    form = DeleteStudyForm(request.POST or None)
    if request.method == "POST" and form.is_valid:
        if 'cancel' in request.POST:
            return redirect('/lifespan/study/%s' % pk)
        else:
            with reversion.create_revision():
                try:
                    if 'delete_study' in request.POST:
                        study.delete()
                    if 'delete_reference' in request.POST:
                        study.delete()
                        study.reference.delete()
                except AttributeError:
                    msg = "Error study did not have a reference associated."
                    messages.add_message(request, messages.ERROR, ugettext(msg))
                reversion.set_user(request.user)
                comment = request.POST['comment'] or "Deleted study"
                reversion.set_comment(comment)
                log(request, study, comment)
                return redirect('/lifespan/studies/')
    ctx = {'study': study, 'form': form}
    return render_to_response('lifespan/delete_study.html', ctx,
                context_instance=RequestContext(request))
예제 #3
0
 def form_valid(self, form):
     with reversion.create_revision():
         self.object = form.save(commit=False)
         if isinstance(self.request.user, AnonymousUser):
             self.request.user = User.objects.get(username='******')
         self.object.user = self.request.user
         comment = self.request.POST['comment'] or self.comment
         reversion.set_comment(comment)
         self.object.comment = comment
         self.object.save()
         log(self.request, self.object, comment, 1)
         comment = self.request.POST['comment'] or "Engaged quest"
         relation = Relation(fr=self.quest,
                             to=self.object,
                             be=Entry.objects.get(title='solved by'))
         relation.user = self.request.user
         relation.save()
         log(self.request, relation, comment, 1)
         reversion.set_user(self.request.user)
         form.save_m2m()
         self.success_url = self.success_url or self.object.get_absolute_url(
         )
         messages.add_message(self.request, messages.SUCCESS,
                              _(self.message % self.object))
         return HttpResponseRedirect(self.get_success_url())
예제 #4
0
파일: views.py 프로젝트: al-layth/denigma
def edit(request, pk):
    if request.method == 'GET':
        post = Post.objects.get(pk__exact=pk)
        form = PostForm(instance=post)
        Post.text = post.text
    elif request.method == 'POST':
        post = Post.objects.get(pk__exact=pk)

        # Tracking changes:
        changes = []
        if post.title != request.POST['title']:
            s1 = post.title
            s2 = request.POST['title']
            changes.append(
                'title (%s)' %
                "".join(["-"] + s1.split(s2) if len(s1) > len(s2) else ["+"] +
                        s2.split(s1)))
        if post.text != request.POST['text']:
            changes.append('text')
        if set([tag.name for tag in post.tags.all()]) != set(
                request.POST['tags'].split(', ')):
            changes.append('tags')
        if "images" in request.POST:
            dict = {}
            dict.update(request.POST)
            pre_images = set(dict['images'])
            post_images = set(
                [unicode(image.pk) for image in post.images.all()])
            if pre_images != post_images:
                changes.append('images (%s)' %
                               "; ".join(pre_images - post_images))
        if "published" in request.POST:
            if not post.published:
                changes.append('published to True')
        elif post.published:
            changes.append('published to False')

        form = PostForm(request.POST, instance=post)
        if form.is_valid():
            if changes:
                with reversion.create_revision():
                    post = form.save(commit=False)
                    post.updater = request.user
                    form.save()
                    reversion.set_user(request.user)
                    comment = 'Changed %s. %s' % (
                        ', '.join(changes), request.POST['comment'] or '')
                    reversion.set_comment(comment)

                log(request, post, comment)

            else:
                post = form.save(commit=False)
                post.updater = request.user
                form.save()

            return HttpResponseRedirect('/blog/%s' % pk)
    return render_to_response('blog/edit.html', {'form': form},
                              context_instance=RequestContext(request))
예제 #5
0
def edit_experiment(request, pk):
    experiment = Experiment.objects.get(pk=pk)
    form = ExperimentForm(request.POST or None, instance=experiment)
    if request.method == "POST" and form.is_valid():
        if "cancel" in request.POST:
            return redirect("/lifespan/experiments/")
        with reversion.create_revision():
            form.save()
            reversion.set_user(request.user)
            comment = request.POST["comment"] or "Changed experiment"
            reversion.set_comment(comment)
            log(request, experiment, comment)
        return redirect("/lifespan/experiment/%s" % pk)
    ctx = {"experiment": experiment, "form": form}
    return render_to_response("lifespan/edit_experiment.html", ctx, context_instance=RequestContext(request))
예제 #6
0
 def form_valid(self, form):
     with reversion.create_revision():
         self.object = form.save(commit=False)
         if isinstance(self.request.user, AnonymousUser):
             self.request.user = User.objects.get(username="******")
         comment = self.request.POST["comment"] or self.comment
         reversion.set_comment(comment)
         self.object.comment = comment
         self.object.save()
         log(self.request, self.object, comment, 1)
         reversion.set_user(self.request.user)
         form.save_m2m()
         self.success_url = self.success_url or self.object.get_absolute_url()
         messages.add_message(self.request, messages.SUCCESS, _(self.message % self.object))
         return HttpResponseRedirect(self.get_success_url())
예제 #7
0
def delete_intervention(request, pk):
    intervention = Intervention.objects.get(pk=pk)
    form = DeleteInterventionForm(request.POST or None)
    if request.method == "POST" and form.is_valid():
        if "cancel" in request.POST:
            return redirect("/lifespan/intervention/%s" % pk)
        elif "delete" in request.POST:
            with reversion.create_revision():
                intervention.delete()
                comment = request.POST["comment"] or "Delete intervention"
                reversion.set_comment(comment)
                log(request, intervention, comment)
                return redirect("/lifespan/interventions/")
    ctx = {"intervention": intervention, "form": form}
    return render_to_response("lifespan/delete_intervention.html", ctx, context_instance=RequestContext(request))
예제 #8
0
def edit_factor(request, pk):
    factor = Factor.objects.get(pk=pk)
    form = FactorForm(request.POST or None, instance=factor)
    if request.method == "POST" and form.is_valid():
        if "cancel" in request.POST:
            return redirect("/lifespan/factor/%s" % pk)
        with reversion.create_revision():
            form.save()
            reversion.set_user(request.user)
            comment = request.POST["comment"] or "Changed factor"
            reversion.set_comment(comment)
            log(request, factor, comment)
            return redirect("/lifespan/factor/%s" % pk)
    ctx = {"factor": factor, "form": form, "action": "Edit"}
    return render_to_response("lifespan/factor_form.html", ctx, context_instance=RequestContext(request))
예제 #9
0
 def delete(self, request, *args, **kwargs):
     #print("data.views.Delete.delete()")
     with reversion.create_revision():
         self.object = self.get_object()
         if isinstance(self.request.user, AnonymousUser):
             self.request.user = User.objects.get(username='******')
         self.object.user = self.request.user
         comment = self.request.POST['comment'] or self.comment
         reversion.set_comment(comment)
         self.object.delete()
         log(self.request, self.object, comment, 3)
         reversion.set_user(self.request.user)
         self.success_url = self.success_url or self.object.get_absolute_url()
         messages.add_message(self.request, messages.SUCCESS,
             _(self.message % self.object))
         return HttpResponseRedirect(self.get_success_url())
예제 #10
0
def edit_factor(request, pk):
    factor = Factor.objects.get(pk=pk)
    form = FactorForm(request.POST or None, instance=factor)
    if request.method == "POST" and form.is_valid():
        if "cancel" in request.POST:
            return redirect('/lifespan/factor/%s' % pk)
        with reversion.create_revision():
            form.save()
            reversion.set_user(request.user)
            comment = request.POST['comment'] or "Changed factor"
            reversion.set_comment(comment)
            log(request, factor, comment)
            return redirect('/lifespan/factor/%s' % pk)
    ctx = {'factor': factor, 'form': form, 'action': 'Edit'}
    return render_to_response('lifespan/factor_form.html', ctx,
        context_instance=RequestContext(request))
예제 #11
0
파일: forms.py 프로젝트: al-layth/denigma
def handlePopAdd(request, addForm, field, template="form/popadd.html"):
    if request.method == "POST":
        form = addForm(request.POST)
        if form.is_valid():
            try:
                with reversion.create_revision():
                    newObject = form.save()
                    reversion.set_user(request.user)
                    comment = request.POST['comment'] or 'Added.'
                    reversion.set_comment(comment)
                    log(request, newObject, comment)
            except forms.ValidationError, error:
                newObject = None
            if newObject:
                return HttpResponse('<script type="text/javascript">opener.dismissAddAnotherPopup(window, "%s", "%s");</script>' %\
                                    (escape(newObject._get_pk_val()), escape(newObject)))
예제 #12
0
def delete_intervention(request, pk):
    intervention = Intervention.objects.get(pk=pk)
    form = DeleteInterventionForm(request.POST or None)
    if request.method == "POST" and form.is_valid():
        if 'cancel' in request.POST:
            return redirect('/lifespan/intervention/%s' % pk)
        elif 'delete' in request.POST:
            with reversion.create_revision():
                intervention.delete()
                comment = request.POST['comment'] or "Delete intervention"
                reversion.set_comment(comment)
                log(request, intervention, comment)
                return redirect('/lifespan/interventions/')
    ctx = {'intervention': intervention, 'form': form}
    return render_to_response('lifespan/delete_intervention.html', ctx,
        context_instance=RequestContext(request))
예제 #13
0
파일: views.py 프로젝트: denigma/denigma
def edit_tissue(request, pk):
    tissue = Tissue.objects.get(pk=pk)
    form = TissueForm(request.POST or None, instance=tissue)
    if request.method == "POST" and form.is_valid():
        if "cancel" in request.POST:
            return redirect('/annotations/tissue/%s' % pk)
        with reversion.create_revision():
            form.save()
            reversion.set_user(request.user)
            comment = request.POST['comment'] or "Changed tissue."
            reversion.set_comment(comment)
            log(request, tissue, comment)
            return redirect('/annotations/tissue/%s' % pk)
    ctx = {'tissue': tissue, 'form': form, 'action': 'Edit'}
    return render_to_response('annotations/tissue_form.html', ctx,
        context_instance=RequestContext(request))
예제 #14
0
파일: views.py 프로젝트: denigma/denigma
def edit_species(request, pk):
    species = Species.objects.get(pk=pk)
    form = SpeciesForm(request.POST or None, instance=species)
    if request.method == "POST" and form.is_valid():
        if "cancel" in request.POST:
            return redirect('/annotations/species/%s' % pk)
        with reversion.create_revision():
            form.save()
            reversion.set_user(request.user)
            comment = request.POST['comment'] or "Changed tissue"
            reversion.set_comment(comment)
            log(request, species, comment)
            return redirect('/annotations/species/%s.html' % pk)
    ctx = {'species': species, 'form': form, 'action': 'Edit'}
    return render_to_response('annotations/species_form.html', ctx,
        context_instance=RequestContext(request))
예제 #15
0
파일: views.py 프로젝트: denigma/lifespan
def edit_species(request, pk):
    species = Species.objects.get(pk=pk)
    form = SpeciesForm(request.POST or None, instance=species)
    if request.method == "POST" and form.is_valid():
        if "cancel" in request.POST:
            return redirect('/annotations/species/%s' % pk)
        with reversion.create_revision():
            form.save()
            reversion.set_user(request.user)
            comment = request.POST['comment'] or "Changed tissue"
            reversion.set_comment(comment)
            log(request, species, comment)
            return redirect('/annotations/species/%s.html' % pk)
    ctx = {'species': species, 'form': form, 'action': 'Edit'}
    return render_to_response('annotations/species_form.html',
                              ctx,
                              context_instance=RequestContext(request))
예제 #16
0
def edit_experiment(request, pk):
    experiment = Experiment.objects.get(pk=pk)
    form = ExperimentForm(request.POST or None, instance=experiment)
    if request.method == "POST" and form.is_valid():
        if "cancel" in request.POST:
            return redirect('/lifespan/experiments/')
        with reversion.create_revision():
            form.save()
            reversion.set_user(request.user)
            comment = request.POST['comment'] or "Changed experiment"
            reversion.set_comment(comment)
            log(request, experiment, comment)
        return redirect('/lifespan/experiment/%s' % pk)
    ctx = {'experiment': experiment, 'form': form}
    return render_to_response('lifespan/edit_experiment.html',
                              ctx,
                              context_instance=RequestContext(request))
예제 #17
0
def delete_intervention(request, pk):
    intervention = Intervention.objects.get(pk=pk)
    form = DeleteInterventionForm(request.POST or None)
    if request.method == "POST" and form.is_valid():
        if 'cancel' in request.POST:
            return redirect('/lifespan/intervention/%s' % pk)
        elif 'delete' in request.POST:
            with reversion.create_revision():
                intervention.delete()
                comment = request.POST['comment'] or "Delete intervention"
                reversion.set_comment(comment)
                log(request, intervention, comment)
                return redirect('/lifespan/interventions/')
    ctx = {'intervention': intervention, 'form': form}
    return render_to_response('lifespan/delete_intervention.html',
                              ctx,
                              context_instance=RequestContext(request))
예제 #18
0
def edit_factor(request, pk):
    factor = Factor.objects.get(pk=pk)
    form = FactorForm(request.POST or None, instance=factor)
    if request.method == "POST" and form.is_valid():
        if "cancel" in request.POST:
            return redirect('/lifespan/factor/%s' % pk)
        with reversion.create_revision():
            form.save()
            reversion.set_user(request.user)
            comment = request.POST['comment'] or "Changed factor"
            reversion.set_comment(comment)
            log(request, factor, comment)
            return redirect('/lifespan/factor/%s' % pk)
    ctx = {'factor': factor, 'form': form, 'action': 'Edit'}
    return render_to_response('lifespan/factor_form.html',
                              ctx,
                              context_instance=RequestContext(request))
예제 #19
0
파일: views.py 프로젝트: denigma/lifespan
def edit_tissue(request, pk):
    tissue = Tissue.objects.get(pk=pk)
    form = TissueForm(request.POST or None, instance=tissue)
    if request.method == "POST" and form.is_valid():
        if "cancel" in request.POST:
            return redirect('/annotations/tissue/%s' % pk)
        with reversion.create_revision():
            form.save()
            reversion.set_user(request.user)
            comment = request.POST['comment'] or "Changed tissue."
            reversion.set_comment(comment)
            log(request, tissue, comment)
            return redirect('/annotations/tissue/%s' % pk)
    ctx = {'tissue': tissue, 'form': form, 'action': 'Edit'}
    return render_to_response('annotations/tissue_form.html',
                              ctx,
                              context_instance=RequestContext(request))
예제 #20
0
파일: views.py 프로젝트: denigma/denigma
def add_classification(request, template='annotations/classification_form.html'):
    form = ClassificationForm(request.POST or None)
    if request.method == "POST" and form.is_valid():
        with reversion.create_revision():
            classification = form.save(commit=False)
            form.save()
            if isinstance(request.user, AnonymousUser):
                request.user = User.objects.get(username="******")
            reversion.set_user(request.user)
            comment = request.POST['comment'] or "Added classification"
            reversion.set_comment(comment)
            log(request, classification, comment)
            msg = "Successfully added classification."
            messages.add_message(request, messages.SUCCESS, _(msg))
            return redirect('/annotations/classification/%s' %
                            classification.pk)
    return render(request, template, {'form': form, 'action': 'Add'})
예제 #21
0
파일: views.py 프로젝트: denigma/lifespan
def edit_classification(request, pk):
    classification = Classification.objects.get(pk=pk)
    form = ClassificationForm(request.POST or None, instance=classification)
    if request.method == "POST" and form.is_valid():
        if "cancel" in request.POST:
            return redirect('/annotations/classifications/')
        with reversion.create_revision():
            form.save()
            reversion.set_user(request.user)
            comment = request.POST['comment'] or "Changed classification"
            reversion.set_comment(comment)
            log(request, classification, comment)
        return redirect('/annotations/classification/%s' % pk)
    ctx = {'classification': classification, 'form': form, 'action': 'Edit'}
    return render_to_response('annotations/classification_form.html',
                              ctx,
                              context_instance=RequestContext(request))
예제 #22
0
def delete_experiment(request, pk):
    experiment = Experiment.objects.get(pk=pk)
    form = DeleteExperimentForm(request.POST or None)
    if request.method == "POST" and form.is_valid():
        if 'cancel' in request.POST:
            return redirect('/lifespan/experiment/%s' % pk)
        elif 'delete_experiment' in request.POST:
            with reversion.create_revision():
                experiment.delete()
                reversion.set_user(request.user)
                comment = request.POST['comment'] or "Deleted experiment"
                reversion.set_comment(comment)
                log(request, experiment, comment)
                return redirect('/lifespan/experiments/')
    ctx = {'experiment': experiment, 'form': form}
    return render_to_response('lifespan/delete_experiment.html', ctx,
        context_instance=RequestContext(request))
예제 #23
0
 def delete(self, request, *args, **kwargs):
     #print("data.views.Delete.delete()")
     with reversion.create_revision():
         self.object = self.get_object()
         if isinstance(self.request.user, AnonymousUser):
             self.request.user = User.objects.get(username='******')
         self.object.user = self.request.user
         comment = self.request.POST['comment'] or self.comment
         reversion.set_comment(comment)
         self.object.delete()
         log(self.request, self.object, comment, 3)
         reversion.set_user(self.request.user)
         self.success_url = self.success_url or self.object.get_absolute_url(
         )
         messages.add_message(self.request, messages.SUCCESS,
                              _(self.message % self.object))
         return HttpResponseRedirect(self.get_success_url())
예제 #24
0
def add_factor(request):
    form = FactorForm(request.POST or None)
    if request.method == "POST" and form.is_valid():
        with reversion.create_revision():
            factor = form.save(commit=False)
            form.save()
            if isinstance(request.user, AnonymousUser):
                request.user = User.objects.get(username="******")
            reversion.set_user(request.user)
            comment = "Added factor. %s" % request.POST["comment"] or ""
            reversion.set_comment(comment)
            log(request, factor, comment)
            msg = "Successfully added factor."
            messages.add_message(request, messages.SUCCESS, ugettext(msg))
            return redirect("/lifespan/factor/%s" % factor.pk)
    ctx = {"form": form, "action": "Add"}
    return render_to_response("lifespan/factor_form.html", ctx, context_instance=RequestContext(request))
예제 #25
0
def delete_classification(request, pk):
    classification = Classification.objects.get(pk=pk)
    form = DeleteClassificationForm(request.POST or None)
    if request.method == "POST" and form.is_valid():
        if "cancel" in request.POST:
            return redirect('/annotations/classification/%s' % pk)
        elif "delete_classification" in request.POST:
            with reversion.create_revision():
                classification.delete()
                reversion.set_user(request.user)
                comment = request.POST['comment'] or "Delete classification"
                log(request, classification, comment)
                msg = "Successfully deleted classification %s." % classification.title
                messages.add_message(request, messages.SUCCESS, _(msg))
                return redirect('/annotations/classifications/')
    ctx = {'classification': classification, 'form': form}
    return render_to_response('annotations/delete_classification.html', ctx,
        context_instance=RequestContext(request))
예제 #26
0
 def form_valid(self, form):
     with reversion.create_revision():
         self.object = form.save(commit=False)
         print("self.object: %s" % self.object)
         if isinstance(self.request.user, AnonymousUser):
             self.request.user = User.objects.get(username='******')
         comment = self.request.POST['comment'] or self.comment
         reversion.set_comment(comment)
         self.object.comment = comment
         self.object.save()
         log(self.request, self.object, comment, 2)
         reversion.set_user(self.request.user)
         form.save_m2m()
         self.success_url = self.success_url or self.object.get_absolute_url(
         )
         messages.add_message(self.request, messages.SUCCESS,
                              _(self.message % self.object))
         return HttpResponseRedirect(self.get_success_url())
예제 #27
0
파일: views.py 프로젝트: denigma/denigma
def edit_classification(request, pk):
    classification = Classification.objects.get(pk=pk)
    form = ClassificationForm(request.POST or None, instance=classification)
    if request.method == "POST" and form.is_valid():
        if "cancel" in request.POST:
            return redirect('/annotations/classifications/')
        with reversion.create_revision():
            form.save()
            reversion.set_user(request.user)
            comment = request.POST['comment'] or "Changed classification"
            reversion.set_comment(comment)
            log(request, classification, comment)
        return redirect('/annotations/classification/%s' % pk)
    ctx = {'classification': classification,
           'form': form,
           'action': 'Edit'}
    return render_to_response('annotations/classification_form.html', ctx,
        context_instance=RequestContext(request))
예제 #28
0
def add_experiment(request, pk):
    form = ExperimentForm(request.POST or None, pk=pk)  # A form bound to the POST data
    if request.method == "POST" and form.is_valid():  # All validation rules pass
        with reversion.create_revision():
            experiment = form.save(commit=False)
            # print("Experiment id: %s" % experiment.id)
            # print form
            form.save()
            if isinstance(request.user, AnonymousUser):
                request.user = User.objects.get(username="******")
            reversion.set_user(request.user)
            comment = "Added experiment."
            reversion.set_comment(comment)
            log(request, experiment, comment)
            msg = "Successfully added experiment."
            messages.add_message(request, messages.SUCCESS, ugettext(msg))
            return redirect("/lifespan/experiment/%s" % experiment.pk)
    return render_to_response("lifespan/add_experiment.html", {"form": form}, context_instance=RequestContext(request))
예제 #29
0
파일: views.py 프로젝트: denigma/lifespan
def add_classification(request,
                       template='annotations/classification_form.html'):
    form = ClassificationForm(request.POST or None)
    if request.method == "POST" and form.is_valid():
        with reversion.create_revision():
            classification = form.save(commit=False)
            form.save()
            if isinstance(request.user, AnonymousUser):
                request.user = User.objects.get(username="******")
            reversion.set_user(request.user)
            comment = request.POST['comment'] or "Added classification"
            reversion.set_comment(comment)
            log(request, classification, comment)
            msg = "Successfully added classification."
            messages.add_message(request, messages.SUCCESS, _(msg))
            return redirect('/annotations/classification/%s' %
                            classification.pk)
    return render(request, template, {'form': form, 'action': 'Add'})
예제 #30
0
def add_intervention(request):
    form = InterventionForm(request.POST or None)
    if request.method == "POST" and form.is_valid():
        with reversion.create_revision():
            intervention = form.save(commit=False)
            form.save()
            if isinstance(request.user, AnonymousUser):
                request.user = User.objects.get(username="******")
            reversion.set_user(request.user)
            comment = "Added intervention. %s" % request.POST['comment'] or ''
            reversion.set_comment(comment)
            log(request, intervention, comment)
            msg = "Successfully added intervention."
            messages.add_message(request, messages.SUCCESS, ugettext(msg))
            return redirect('/lifespan/intervention/%s' % intervention.pk)
    ctx = {'form': form, 'action': 'Add'}
    return render_to_response('lifespan/intervention_form.html', ctx,
        context_instance=RequestContext(request))
예제 #31
0
파일: views.py 프로젝트: denigma/lifespan
def add_tissue(request):
    form = TissueForm(request.POST or None)
    if request.method == "POST" and form.is_valid():
        with reversion.create_revision():
            tissue = form.save(commit=False)
            form.save()
            if isinstance(request.user, AnonymousUser):
                request.user = User.objects.get(username="******")
            reversion.set_user(request.user)
            comment = "Added tissue. %s" % request.POST['comment'] or ''
            reversion.set_comment(comment)
            log(request, tissue, comment)
            msg = "Successfully added tissue."
            messages.add_message(request, messages.SUCCESS, ugettext(msg))
            return redirect('/annotations/tissue/%s' % tissue.pk)
    ctx = {'form': form, 'action': 'Add'}
    return render_to_response('annotations/tissue_form.html',
                              ctx,
                              context_instance=RequestContext(request))
예제 #32
0
파일: views.py 프로젝트: al-layth/denigma
def add(request):
    form = PostForm(request.POST or None)
    if request.POST and form.is_valid():
        with reversion.create_revision():
            post = form.save(commit=False)
            if isinstance(request.user, AnonymousUser):
                request.user = User.objects.get(username="******")
            post.creator = request.user
            post.updater = request.user
            form.save()
            reversion.set_user(request.user)
            comment = request.POST['comment'] or "Initial version."
            reversion.set_comment(comment)
            log(request, post, comment)
            return redirect('/blog/')
            #return render_to_response('blog/index.html',
            #                          context_instance=RequestContext(request))
    return render_to_response('blog/add.html', {'form': form},
                              context_instance=RequestContext(request))
예제 #33
0
파일: views.py 프로젝트: denigma/denigma
def delete_tissue(request, pk):
    tissue = Tissue.objects.get(pk=pk)
    form = DeleteTissueForm(request.POST or None)

    if request.method == "POST" and form.is_valid():

        if "cancel" in request.POST:
            return redirect('/annotations/tissue/%s' % pk)
        elif "delete" in request.POST:
            #print tissue, form.is_valid()
            with reversion.create_revision():
                tissue.delete()
                reversion.set_user(request.user)
                comment = request.POST['comment'] or "Changed tissue"
                reversion.set_comment(comment)
                log(request, tissue, comment)
                return redirect('/annotations/tissues/')
    ctx = {'tissue': tissue, 'form': form}
    return render_to_response('annotations/delete_tissue.html', ctx,
        context_instance=RequestContext(request))
예제 #34
0
파일: views.py 프로젝트: denigma/lifespan
def delete_classification(request, pk):
    classification = Classification.objects.get(pk=pk)
    form = DeleteClassificationForm(request.POST or None)
    if request.method == "POST" and form.is_valid():
        if "cancel" in request.POST:
            return redirect('/annotations/classification/%s' % pk)
        elif "delete_classification" in request.POST:
            with reversion.create_revision():
                classification.delete()
                reversion.set_user(request.user)
                comment = request.POST['comment'] or "Delete classification"
                log(request, classification, comment)
                msg = "Successfully deleted classification %s." % \
                      classification.title
                messages.add_message(request, messages.SUCCESS, _(msg))
                return redirect('/annotations/classifications/')
    ctx = {'classification': classification, 'form': form}
    return render_to_response('annotations/delete_classification.html',
                              ctx,
                              context_instance=RequestContext(request))
예제 #35
0
def add_experiment(request, pk):
    form = ExperimentForm(request.POST or None,
                          pk=pk)  # A form bound to the POST data
    if request.method == "POST" and form.is_valid(
    ):  # All validation rules pass
        with reversion.create_revision():
            experiment = form.save(commit=False)
            #print("Experiment id: %s" % experiment.id)
            #print form
            form.save()
            if isinstance(request.user, AnonymousUser):
                request.user = User.objects.get(username="******")
            reversion.set_user(request.user)
            comment = "Added experiment."
            reversion.set_comment(comment)
            log(request, experiment, comment)
            msg = "Successfully added experiment."
            messages.add_message(request, messages.SUCCESS, ugettext(msg))
            return redirect('/lifespan/experiment/%s' % experiment.pk)
    return render_to_response('lifespan/add_experiment.html', {'form': form},
                              context_instance=RequestContext(request))
예제 #36
0
파일: views.py 프로젝트: denigma/lifespan
def delete_tissue(request, pk):
    tissue = Tissue.objects.get(pk=pk)
    form = DeleteTissueForm(request.POST or None)

    if request.method == "POST" and form.is_valid():

        if "cancel" in request.POST:
            return redirect('/annotations/tissue/%s' % pk)
        elif "delete" in request.POST:
            #print tissue, form.is_valid()
            with reversion.create_revision():
                tissue.delete()
                reversion.set_user(request.user)
                comment = request.POST['comment'] or "Changed tissue"
                reversion.set_comment(comment)
                log(request, tissue, comment)
                return redirect('/annotations/tissues/')
    ctx = {'tissue': tissue, 'form': form}
    return render_to_response('annotations/delete_tissue.html',
                              ctx,
                              context_instance=RequestContext(request))
예제 #37
0
def edit_study(request, pk):
    study = Study.objects.get(pk=pk)
    if request.method == "GET":
        form = EditStudyForm(instance=study)
    elif request.method == "POST":
        if "cancel" in request.POST:
            return redirect("/lifespan/studies/")
        with reversion.create_revision():
            form = EditStudyForm(request.POST, instance=study)

            if form.is_valid():
                form.save()
                reversion.set_user(request.user)
                comment = request.POST["comment"] or "Changed study"
                reversion.set_comment(comment)
                log(request, study, comment)
                return redirect("/lifespan/study/%s" % pk)
    else:
        form = EditStudyForm(instance=study)
    ctx = {"form": form, "study": study}
    return render_to_response("lifespan/edit_study.html", ctx, context_instance=RequestContext(request))
예제 #38
0
 def form_valid(self, form):
     with reversion.create_revision():
         self.object = form.save(commit=False)
         if isinstance(self.request.user, AnonymousUser):
             self.request.user = User.objects.get(username='******')
         self.object.user = self.request.user
         comment = self.request.POST['comment'] or self.comment
         reversion.set_comment(comment)
         self.object.comment = comment
         self.object.save()
         log(self.request, self.object, comment, 1)
         comment = self.request.POST['comment'] or "Engaged quest"
         relation = Relation(fr=self.quest, to=self.object, be=Entry.objects.get(title='solved by'))
         relation.user = self.request.user
         relation.save()
         log(self.request, relation, comment, 1)
         reversion.set_user(self.request.user)
         form.save_m2m()
         self.success_url = self.success_url or self.object.get_absolute_url()
         messages.add_message(self.request, messages.SUCCESS,
             _(self.message % self.object))
         return HttpResponseRedirect(self.get_success_url())
예제 #39
0
def edit_study(request, pk):
    study = Study.objects.get(pk=pk)
    if request.method == "GET":
        form = EditStudyForm(instance=study)
    elif request.method == "POST":
        if "cancel" in request.POST:
            return redirect('/lifespan/studies/')
        with reversion.create_revision():
            form = EditStudyForm(request.POST, instance=study)

            if form.is_valid():
                form.save()
                reversion.set_user(request.user)
                comment = request.POST['comment'] or "Changed study"
                reversion.set_comment(comment)
                log(request, study, comment)
                return redirect('/lifespan/study/%s' % pk)
    else:
        form = EditStudyForm(instance=study)
    ctx = {'form': form, 'study': study}
    return render_to_response('lifespan/edit_study.html',
                              ctx,
                              context_instance=RequestContext(request))
예제 #40
0
def add_studies(request):
    titles = request.POST['titles'].replace('\r', '').split('\n')
    pmids = request.POST['pmids'].replace('\r', '').split('\n')
    taxid = request.POST.get('species', None)
    if taxid:
        species = Species.objects.get(taxid=taxid)

    comment = request.POST['comment'] or "Adding studies"

    succieded = []
    warned = []
    failed = []

    with reversion.create_revision():
        #print "Titles", titles
        #print "pmids", pmids
        for title in titles:
            if not title: continue
            #print "Title:", title
            #study, created = Study.objects.get_or_create(title=title)
            study = Study(title=title)
            study.save()
            try:
                print vars(study)
            except UnicodeEncodeError as e:
                print e
            print study.reference_was_created
            if not study.reference_was_created:#study.reference.authors:
                warned.append(title)
                messages.add_message(request, messages.WARNING, ugettext("Already in db: %s" % title))
                created = False
            else:
                created = True
            try:
                study_confirm = Study.objects.get(title__icontains=title)
                if study_confirm:
                    succieded.append(title)
                    print "Authors:", study.reference.authors
                    messages.add_message(request, messages.SUCCESS, ugettext("Succeeded: %s" % title))
                else:
                    failed.append(title)
                    messages.add_message(request, messages.ERROR, ugettext("Failed: %s" % title))

                if taxid:
                    study_confirm.species.add(species)
                    print("Adding species")
                    #study_confirm.save()

            except Exception as e:
                print e
                failed.append(title)
                messages.add_message(request, messages.ERROR, ugettext("Failed: %s" % title))
                messages.add_message(request, messages.WARNING, ugettext("However added %s" % study.title))
                if taxid:
                    print("Adding species")
                    try:
                        study.species.add(species)
                    except ValueError as e: #Exception Value: 'Study' instance needs to have a primary key value before a many-to-many relationship can be used.
                        messages.add_message(request, messages.ERROR, ugettext("Error: %s" % e))
            log(request, study, comment)


        for pmid in pmids:
            if not pmid: continue
            print "PMID:", pmid
            study = Study(pmid=pmid)
            study.save()
            #print "views.add.studies for pmid in pmids:", vars(study)
            if not study.reference_was_created:
                warned.append(pmid)
                messages.add_message(request, messages.WARNING, ugettext("Already in db: %s" % pmid))
                created = False
            else:
                created = True
            try:
                study_confirm = Study.objects.get(pmid=pmid)
                if study_confirm:
                    succieded.append(pmid)
                    messages.add_message(request, messages.SUCCESS, ugettext("Succeeded: %s" % pmid))
                else:
                    failed.append(pmid)
                    messages.add_message(request, messages.ERROR, ugettext("Failed: %s" % pmid))

                if taxid:
                    print("Adding species")
                    study_confirm.species.add(species)

            except Exception as e:
                print e
                failed.append(pmid)
                messages.add_message(request, messages.ERROR, ugettext("Failed: %s" % pmid))
                messages.add_message(request, messages.WARNING, ugettext("However added %s" % study.pmid))
                if taxid:
                    print("Adding species")
                    try:
                        study.species.add(species)
                    except ValueError as e:
                        messages.add_message(request, messages.ERROR, ugettext("Error: %s" % e))

            log(request, study, comment)
        if isinstance(request.user, AnonymousUser):
            request.user = User.objects.get(username="******")
        reversion.set_user(request.user)
        reversion.set_comment(comment)

    if succieded:
        msg = "Successfully added the following %i studies: \n%s" % (len(succieded), "\n".join(succieded))
        messages.add_message(request, messages.SUCCESS, ugettext(msg))
    if warned:
        msg = "Found already in db the following %i studies: \n%s" % (len(warned), "\n".join(warned))
        messages.add_message(request, messages.WARNING, ugettext(msg))
    if failed:
        msg = "Failed to fetch information on the following %i studies: \n%s" % (len(failed), "\n".join(failed))
        messages.add_message(request, messages.ERROR, ugettext(msg))

    return HttpResponseRedirect('/lifespan/studies/')
예제 #41
0
def add_studies(request):
    titles = request.POST['titles'].replace('\r', '').split('\n')
    pmids = request.POST['pmids'].replace('\r', '').split('\n')
    taxid = request.POST.get('species', None)
    if taxid:
        species = Species.objects.get(taxid=taxid)

    comment = request.POST['comment'] or "Adding studies"

    succieded = []
    warned = []
    failed = []

    with reversion.create_revision():
        #print "Titles", titles
        #print "pmids", pmids
        for title in titles:
            if not title: continue
            #print "Title:", title
            #study, created = Study.objects.get_or_create(title=title)
            study = Study(title=title)
            study.save()
            try:
                print vars(study)
            except UnicodeEncodeError as e:
                print e
            print study.reference_was_created
            if not study.reference_was_created:  #study.reference.authors:
                warned.append(title)
                messages.add_message(request, messages.WARNING,
                                     ugettext("Already in db: %s" % title))
                created = False
            else:
                created = True
            try:
                study_confirm = Study.objects.get(title__icontains=title)
                if study_confirm:
                    succieded.append(title)
                    print "Authors:", study.reference.authors
                    messages.add_message(request, messages.SUCCESS,
                                         ugettext("Succeeded: %s" % title))
                else:
                    failed.append(title)
                    messages.add_message(request, messages.ERROR,
                                         ugettext("Failed: %s" % title))

                if taxid:
                    study_confirm.species.add(species)
                    print("Adding species")
                    #study_confirm.save()

            except Exception as e:
                print e
                failed.append(title)
                messages.add_message(request, messages.ERROR,
                                     ugettext("Failed: %s" % title))
                messages.add_message(
                    request, messages.WARNING,
                    ugettext("However added %s" % study.title))
                if taxid:
                    print("Adding species")
                    try:
                        study.species.add(species)
                    except ValueError as e:  #Exception Value: 'Study' instance needs to have a primary key value before a many-to-many relationship can be used.
                        messages.add_message(request, messages.ERROR,
                                             ugettext("Error: %s" % e))
            log(request, study, comment)

        for pmid in pmids:
            if not pmid: continue
            print "PMID:", pmid
            study = Study(pmid=pmid)
            study.save()
            #print "views.add.studies for pmid in pmids:", vars(study)
            if not study.reference_was_created:
                warned.append(pmid)
                messages.add_message(request, messages.WARNING,
                                     ugettext("Already in db: %s" % pmid))
                created = False
            else:
                created = True
            try:
                study_confirm = Study.objects.get(pmid=pmid)
                if study_confirm:
                    succieded.append(pmid)
                    messages.add_message(request, messages.SUCCESS,
                                         ugettext("Succeeded: %s" % pmid))
                else:
                    failed.append(pmid)
                    messages.add_message(request, messages.ERROR,
                                         ugettext("Failed: %s" % pmid))

                if taxid:
                    print("Adding species")
                    study_confirm.species.add(species)

            except Exception as e:
                print e
                failed.append(pmid)
                messages.add_message(request, messages.ERROR,
                                     ugettext("Failed: %s" % pmid))
                messages.add_message(request, messages.WARNING,
                                     ugettext("However added %s" % study.pmid))
                if taxid:
                    print("Adding species")
                    try:
                        study.species.add(species)
                    except ValueError as e:
                        messages.add_message(request, messages.ERROR,
                                             ugettext("Error: %s" % e))

            log(request, study, comment)
        if isinstance(request.user, AnonymousUser):
            request.user = User.objects.get(username="******")
        reversion.set_user(request.user)
        reversion.set_comment(comment)

    if succieded:
        msg = "Successfully added the following %i studies: \n%s" % (
            len(succieded), "\n".join(succieded))
        messages.add_message(request, messages.SUCCESS, ugettext(msg))
    if warned:
        msg = "Found already in db the following %i studies: \n%s" % (
            len(warned), "\n".join(warned))
        messages.add_message(request, messages.WARNING, ugettext(msg))
    if failed:
        msg = "Failed to fetch information on the following %i studies: \n%s" % (
            len(failed), "\n".join(failed))
        messages.add_message(request, messages.ERROR, ugettext(msg))

    return HttpResponseRedirect('/lifespan/studies/')