Skip to content

Instantly share code, notes, and snippets.

@akoumjian
Created November 15, 2013 02:07

Revisions

  1. akoumjian created this gist Nov 15, 2013.
    138 changes: 138 additions & 0 deletions rodney.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,138 @@
    from django.db import models

    class ProcessorMake(models.Model):
    name = models.CharField(max_length=20)

    def __unicode__(self):
    return self.name

    class ProcessorLine(models.Model):
    processormake = models.ForeignKey(ProcessorMake)
    name = models.CharField(max_length=20)

    def __unicode__(self):
    return self.name

    class ProcessorModel(models.Model):
    processormodel = models.ForeignKey(ProcessorLine)
    name = models.CharField(max_length=20)

    def __unicode__(self):
    return self.name

    initial_data.yaml

    - model: paq.ProcessorMake
    pk: 1
    fields:
    name: AMD
    - model: paq.ProcessorMake
    pk: 2
    fields:
    name: Intel

    - model: paq.ProcessorLine
    pk: 1
    fields:
    processormake: 1
    name: FX
    - model: paq.ProcessorLine
    pk: 2
    fields:
    processormake: 1
    name: A-Series
    - model: paq.ProcessorLine
    pk: 3
    fields:
    processormake: 1
    name: Phenom II
    - model: paq.ProcessorLine
    pk: 4
    fields:
    processormake: 1
    name: Athlon II
    - model: paq.ProcessorLine
    pk: 5
    fields:
    processormake: 1
    name: Sempron


    views.py

    from django.shortcuts import render
    from models import ProcessorMake, ProcessorLine, ProcessorModel
    from forms import ProcessorMakeForm, ProcessorLineForm, ProcessorModelForm

    def chooseprocessor(request):
    make = request.session.get('make', None)
    line = request.session.get('line', None)
    model = request.session.get('model', None)
    if 'make' in request.session and 'line' in request.session and 'model' in request.session:
    pass

    if 'make' in request.session and 'line' in request.session:
    make=ProcessorMake.objects.get(id=reques­t.session['make'])
    line=ProcessorLine.objects.get(id=reques­t.session['line'])

    if request.method == 'GET':
    pass

    elif request.method == 'POST':
    pass

    # User chose Make just now or sometime in the past
    if 'make' in request.session:
    make=ProcessorMake.objects.get(id=reques­t.session['make'])

    # User left and came back
    if request.method == 'GET':
    form = ProcessorLineForm()
    form.fields["name"]=ProcessorL­ine.objects.filter(processormake__id=mak­e.pk)
    return render(request, 'chooseprocessorline.html', { 'form': form, 'make': make.name })

    # User just chose Line on the previous screen
    elif request.method == 'POST':
    form = ProcessorLineForm(request.POST)
    if form.is_valid():
    line=ProcessorLine.objects.get(name=form­.cleaned_data['name'])
    request.session['line']=line.pk
    form = ProcessorModelForm()
    form.fields["name"]=ProcessorM­odel.objects.filter(processorline__id=li­ne.pk)

    return render(request, 'chooseprocessormodel.html', { 'form': form, 'make': make.name, 'line': line.name })
    else:
    return render(request, 'chooseprocessorline.html', { 'form': form, 'make': make.name })


    # User either newly here or cookies were deleted
    if request.method == 'GET':
    form = ProcessorMakeForm()

    return render(request, 'chooseprocessormake.html', { 'form': form, })

    if request.method == 'POST': # User just chose Make
    form = ProcessorMakeForm(request.POST)
    if form.is_valid():
    make=ProcessorMake.objects.get(name=form­.cleaned_data['name'])
    request.session['make']=make.pk
    form = ProcessorLineForm()
    form.fields["name"]=ProcessorL­ine.objects.filter(processormake__id=mak­e.pk)

    return render(request, 'chooseprocessorline.html', { 'form': form, 'make': make.name })

    return render(request, 'chooseprocessormake.html', { 'form': form, })

    def chooseprocessorbak(request):
    if request.method == 'POST':
    form = ProcessorMakeForm(request.POST)
    if form.is_valid():
    primarykey=ProcessorMake.objects.get(nam­e=form.cleaned_data['name'])
    request.session['make']=primarykey
    request.session['started']=True

    return render(request, 'paqsuccess.html', { 'form': form.cleaned_data, 'primarykey': primarykey.pk })
    else:
    form = ProcessorMakeForm()

    return render(request, 'paq.html', { 'form': form, })