示例#1
0
def table(request, slugs=None):

    show_categs = bool(int(request.GET.get('show_categs', 1)))
    only_common = bool(int(request.GET.get('only_common', 1)))
    
    drugs = Drug.objects
    if slugs:
        drugs = drugs.filter(slug__in=slugs)
    elif only_common:
        drugs = drugs.filter(common=True)

    drugs = (drugs
        .prefetch_related('category')
        .order_by(F('category__name').asc(nulls_last=True), 'name')
    )
    interactions = Interaction.objects.between(drugs, prefetch=True)

    dummy_risks = Interaction.get_dummy_risks()
    dummy_synergies = Interaction.get_dummy_synergies()

    chart_data = {drug: {} for drug in drugs}
    for inter in interactions:
        chart_data[inter.from_drug][inter.to_drug] = inter
        chart_data[inter.to_drug][inter.from_drug] = inter

    return render(request, 'drugcombinator/table.html', locals())
示例#2
0
    def get_context(self, *args, **kwargs):

        ctx = super().get_context(*args, **kwargs)
        ctx.interactions = ctx.interactions.filter(is_draft=False)
        ctx.dummy_risks = Interaction.get_dummy_risks()
        ctx.dummy_synergies = Interaction.get_dummy_synergies()

        for inter in ctx.interactions:
            inter.drug = inter.other_interactant(ctx.drug)

        return ctx