Example #1
0
def description_meta_item_relation_combine_add(request,description_meta_id):
    session = Session()
    item_relation_objects = session.query(ItemRelation).all()
    description_meta_object = session.query(DescriptionMeta).get(description_meta_id)
    session.close()
    
    if description_meta_object is None:
        raise Http404
    
    item_relation_choice = [(obj.id,obj.title) for obj in item_relation_objects]  
   
    initial={"item_relation_choice":item_relation_choice,}
        
    if request.method == 'POST':
        form = DescriptionMetaItemRelationCombinationForm(request.POST,initial=initial,auto_id=False)
        if form.is_valid():
            id = form.save(description_meta_id = description_meta_id)
            if id is not None:
                data = {'template':'description/description_meta_list.html',
                     'ItemClass':DescriptionMeta,
                     'page':1,
                     }
                return HttpResponseRedirect(reverse('description_meta_list', kwargs=data)) 
    else:
        form = DescriptionMetaItemRelationCombinationForm(initial=initial,auto_id=False)
        
    data = {'form': form,'description_meta_object':description_meta_object}
    
    return render_to_response("description/description_meta_item_relation_combine_add.html", data, context_instance=RequestContext(request)) 
Example #2
0
def description_type_detail(request,description_type_id):
    session = Session() 
    
    description_type_object = session.query(DescriptionType).get(description_type_id)
    description_meta_object = session.query(DescriptionMeta).get(description_type_object.description_meta_id)

    if description_type_object is None or description_meta_object is None:
        raise Http404
    objs_in_relation = session.query(DescriptionTypeItemRelationCombination).\
    filter(DescriptionTypeItemRelationCombination.description_type_id == description_type_id).\
    order_by(DescriptionTypeItemRelationCombination.show_order)

    description_type_item_relation_detail_object_list = []
    for obj in objs_in_relation:
        item_relation_object = session.query(ItemRelation).get(obj.item_relation_id)
        item_relation_detail_object = DescriptionTypeItemRelationViewDetail(item_relation_id = item_relation_object.id,                                                            
                                                             item_relation_title = item_relation_object.title,
                                                             multi_number = obj.multi_number, 
                                                             show_order = obj.show_order,
                                                             )
        description_type_item_relation_detail_object_list.append(item_relation_detail_object)
    session.close()
    

        
    data = {'description_type_object':description_type_object,
            'description_meta_object':description_meta_object,
            'detail_list':description_type_item_relation_detail_object_list}
    return render_to_response("description/description_type_detail.html", data, context_instance=RequestContext(request)) 
Example #3
0
    def save(self, commit=True, update=False,item_id=None):
        session = Session()
        
        if update:
            item = session.query(Item).get(item_id)
        else:
            item = Item()

        item.title = self.cleaned_data['title']        
        
        if not update:
            session.add(item)
        session.commit()        
        item.id = item.id
        #新建一个item 自动新建一个关系 和一个组合
        item_relation = ItemRelation(title = item.title)
        session.add(item_relation)
        session.commit()       

        item_relation.id = item_relation.id
        item_relation_combination = ItemRelationCombination(item_id =item.id,                                                                      
                                                            item_relation_id = item_relation.id,
                                                            combination_number = 1,
                                                            show_order = 1,
                                                            )
        session.add(item_relation_combination)
        session.commit()
        session.close()
        
        return item
Example #4
0
def item_relation_combine_add(request,item_relation_id):
    session = Session()
    item_objects = session.query(Item).all()
    item_relation_object = session.query(ItemRelation).get(item_relation_id)
    session.close()
    
    if item_relation_object is None:
        raise Http404
    item_info_list = []
    for item in item_objects:
        item_info_object = ItemRelationCombinationFormInfo(item_id=item.id,item_title=item.title)
        item_info_list.append(item_info_object)
    
    initial={"item_info_list":item_info_list,}    
    if request.method == 'POST':
        form = ItemRelationCombinationForm(request.POST,initial=initial,auto_id=False)
        if form.is_valid():
            id = form.save(item_relation_id = item_relation_id)
            if id is not None:
                data = {'template':'description/item_relation_list.html',
                     'ItemClass':ItemRelation,
                     'page':1,
                     }
                return HttpResponseRedirect(reverse('item_relation_list', kwargs=data)) 
    else:
        form = ItemRelationCombinationForm(initial=initial,auto_id=False)
        
    data = {'form': form,'item_relation_id':item_relation_id}
    
    return render_to_response("description/item_relation_combine_add.html", data, context_instance=RequestContext(request)) 
Example #5
0
    def save(self, commit=True, update=False,description_type_id=None,):

        description_type_item_relation_combination_objects = []
        choice_list = []
        
        for obj in self.form_info_list:
            field_info_list = self.cleaned_data[obj.title_field_name].split(',')
            choice_list.append(field_info_list[0])
            if field_info_list[0] == 'True' :
                if field_info_list[1] != 'None' and field_info_list[2] != 'None':
#                    description_type_item_relation_combination --> obj_dtitrc
                    obj_dtitrc = DescriptionTypeItemRelationCombination(description_type_id = description_type_id,
                                                                        item_relation_id = obj.item_relation_id,
                                                                        multi_number = int(field_info_list[1]),
                                                                        show_order = int(field_info_list[2]),
                                                                        relation_items_number = obj.relation_items_number,
                                                                        )

                    description_type_item_relation_combination_objects.append(obj_dtitrc)
                else:
                    return None

        if not 'True' in choice_list:
            return None
        
        session = Session()
        session.add_all(description_type_item_relation_combination_objects)
        session.commit()
        session.close()

        return description_type_id  
Example #6
0
    def save(self, commit=True, update=False,item_relation_combination_id=None,item_relation_id=None,):

        item_relation_combination_objects = []
        choice_list = []
        
        for item_info in self.item_info_list:
            field_info_list = self.cleaned_data[item_info.title_field_name].split(',')
            choice_list.append(field_info_list[0])
            if field_info_list[0] == 'True' :
                if field_info_list[1] != 'None' and field_info_list[2] != 'None':
                    item_relation_combination = ItemRelationCombination(item_id = item_info.item_id,
                                                                        item_relation_id = item_relation_id,
                                                                        combination_number = int(field_info_list[1]),
                                                                        show_order = int(field_info_list[2]),
                                                                        )

                    item_relation_combination_objects.append(item_relation_combination)
                else:
                    return None

        if not 'True' in choice_list:
            return None
        
        session = Session()
        session.add_all(item_relation_combination_objects)
        session.commit()
        session.close()

        return item_relation_id  
Example #7
0
 def save(self, commit=True):
     self.user.set_password(self.cleaned_data['new_password1'])
     if commit:
         session = Session()
         session.query(User).filter_by(id=self.user.id).update({"password": self.user.password})
         session.commit()
         session.close()
     return self.user
Example #8
0
def meta_delete(request, meta_id):
    session = Session()
    meta = session.query(ProblemMeta).get(int(meta_id))
    session.delete(meta)
    session.commit()
    session.close()

    return HttpResponseRedirect(reverse('meta_list', kwargs={'page': 1})) 
Example #9
0
def problem_detail(request, prob_id):
    session = Session()
    prob = session.query(Problem).get(int(prob_id))
    if prob is None:
        session.close()
        raise Http404
    res = render_to_response('problem/problem_detail.html', {"prob": prob},
                             context_instance=RequestContext(request))
    session.close()
    return res
Example #10
0
    def authenticate(self, username=None, password=None):
        session = Session()
        user = session.query(User).filter_by(username=username).first()
        
        if user is not None:
            if not user.check_password(password):
                user = None     

        session.close()
        return user
Example #11
0
 def save(self, commit=True):
     user = User()
     user.username = self.cleaned_data["username"]
     user.set_password(self.cleaned_data["password1"])
     user.is_active = True
     session = Session()
     session.add(user)
     session.commit()
     session.close()
     return user
Example #12
0
def update_last_login(sender, user, **kwargs):
    """
    A signal receiver which updates the last_login date for
    the user logging in.
    """
    user.last_login = timezone.now()
    session = Session()
    session.merge(user)
    session.commit()
    session.close()
Example #13
0
def meta_config_detail(request, detailClass, object_id, template):
    session = Session()
    object_detail = session.query(detailClass).get(int(object_id))
    
    if object_detail is None:
        session.close()
        raise Http404
    res = render_to_response(template, {"object_detail": object_detail},
                             context_instance=RequestContext(request))
    session.close()
    
    return res
Example #14
0
 def clean_username(self):
     # Since User.username is unique, this check is redundant,
     # but it sets a nicer error message than the ORM. See #13147.
     username = self.cleaned_data["username"]
     
     session = Session()
     c_users = session.query(User).filter_by(username=username).count()
     session.close()
     if c_users > 0:
         raise forms.ValidationError(self.error_messages['duplicate_username'])
     else:
         return username
Example #15
0
 def save(self, commit=True, meta_id=None):
     keyword_check_config = KeywordCheckConfig()
     keyword_check_config.problem_meta_id = meta_id
     keyword_check_config.code_type = self.cleaned_data['code_type']                
     keyword_check_config.word = self.cleaned_data['word']
     
     session = Session()
     session.add(keyword_check_config)
     session.commit()
     session.close()
     
     return  keyword_check_config
Example #16
0
 def save(self, commit=True, meta_id=None):
     compilable_code_generation_config = CompilableCodeGenerationConfig() 
     compilable_code_generation_config.problem_meta_id = meta_id    
     compilable_code_generation_config.code_type = self.cleaned_data['code_type']
     compilable_code_generation_config.generation_method = self.cleaned_data['generation_method']  
     compilable_code_generation_config.requirement = self.cleaned_data['requirement']      
     
     session = Session()
     session.add(compilable_code_generation_config)
     session.commit()
     session.close()
     
     return  compilable_code_generation_config  
Example #17
0
def meta_list(request, page=1):
    session = Session()
    metas_all = session.query(ProblemMeta).all()
    session.close()
    
    paginator = Paginator(metas_all, settings.METAS_PER_PAGE)
    
    try:
         metas = paginator.page(metas_all)
    except (EmptyPage, InvalidPage):
        metas = paginator.page(paginator.num_pages)
    return render_to_response('problem/meta_list.html', {"metas": metas},
                              context_instance=RequestContext(request))
Example #18
0
def show_list(request, template, ItemClass, page=1):
    session = Session()
    objects_all = session.query(ItemClass).all()
    session.close()
    
    paginator = Paginator(objects_all, settings.METAS_PER_PAGE)
    
    try:
        objects = paginator.page(objects_all)
    except (EmptyPage, InvalidPage):
        objects = paginator.page(paginator.num_pages)
    data = {"objects": objects}
    return render_to_response(template, data,
                              context_instance=RequestContext(request))
Example #19
0
def submit(request, prob_id):
    session = Session()
    prob = session.query(Problem).get(int(prob_id))
    if request.method == "POST":
        form = SubmissionForm(request.POST, request.FILES)
        if form.is_valid():
            form.save(problem=prob, user=request.user)
            return HttpResponseRedirect(reverse('status', kwargs={'page': 1}))
    else:
        form = SubmissionForm()
    res = render_to_response('problem/submit.html', {"prob": prob, "form": form},
                             context_instance=RequestContext(request))
    session.close()
    return res
Example #20
0
def meta_config_delete(request, deleteObjectClass, meta_id, object_id):
    session = Session()
    object_delete = session.query(deleteObjectClass).get(int(object_id))
    if object_delete is None:
        session.close()
        raise Http404
    
    if hasattr(object_delete, "on_delete"):
        object_delete.on_delete()
        
    session.delete(object_delete)
    session.commit()
    session.close()
    return HttpResponseRedirect(reverse('meta_detail', kwargs={'meta_id': meta_id})) 
Example #21
0
def status(request, page=1):
    session = Session()
    sub_all = session.query(Submission).order_by(Submission.sub_time.desc())
    
    paginator = Paginator(sub_all, 100)#settings.METAS_PER_PAGE)
    
    try:
         subs = paginator.page(sub_all)
    except (EmptyPage, InvalidPage):
        subs = paginator.page(paginator.num_pages)
    res = render_to_response('problem/status_list.html', {"subs": subs},
                             context_instance=RequestContext(request))
    session.close()
    
    return res
Example #22
0
def problem_list_admin(request, page=1):
    session = Session()
    prob_all = session.query(Problem).all()
    
    paginator = Paginator(prob_all, settings.METAS_PER_PAGE)
    
    try:
         probs = paginator.page(prob_all)
    except (EmptyPage, InvalidPage):
        probs = paginator.page(paginator.num_pages)
    res = render_to_response('problem/problem_list_admin.html', {"probs": probs},
                             context_instance=RequestContext(request))
    session.close()
    
    return res
Example #23
0
 def clean_email(self):
     """
     Validates that an active user exists with the given email address.
     """
     email = self.cleaned_data["email"]
     session = Session()
     self.users_cache = session.query(User).filter_by(email=email,
                                            is_active=True)
     session.close()
     if not len(self.users_cache):
         raise forms.ValidationError(self.error_messages['unknown'])
     if any((user.password == UNUSABLE_PASSWORD)
            for user in self.users_cache):
         raise forms.ValidationError(self.error_messages['unusable'])
     return email
Example #24
0
 def save(self, commit=True, meta_id=None, update=False, object_id=None):
     session = Session()        
     if update:
         output_check_config = session.query(OutputCheckConfig).get(int(object_id))
     else:
         output_check_config = OutputCheckConfig() 
     output_check_config.problem_meta_id = meta_id
     output_check_config.check_method = self.cleaned_data['check_method']   
     
     if not update:
         session.add(output_check_config)
     session.commit()
     session.close()
     
     return  output_check_config
Example #25
0
 def save(self, commit=True, meta_id=None, update=False, object_id=None):
     session = Session()
     if update:
         compile_config = session.query(CompileConfig).get(int(object_id))
     else:
         compile_config = CompileConfig() 
     compile_config.problem_meta_id = meta_id      
     compile_config.code_type = self.cleaned_data['code_type']
     compile_config.config = self.cleaned_data['config']        
     
     if not update:
         session.add(compile_config)
     session.commit()
     session.close()
     
     return compile_config
Example #26
0
def meta_edit(request, meta_id):
    session = Session()
    meta = session.query(ProblemMeta).get(meta_id)
    if meta is None:
        session.close()
        raise Http404
    if request.method == "POST":
        form = ProblemMetaForm(request.POST)
        if form.is_valid():
            meta = form.save(update=True, meta_id=meta_id)
            return HttpResponseRedirect(reverse('meta_detail', kwargs={'meta_id': meta.id}))
    else:
        form = ProblemMetaForm(initial={"title":meta.title, "judge_flow":meta.judge_flow})
   
    data = {'form': form}
    return render_to_response("problem/problem_meta_edit.html", data, context_instance=RequestContext(request)) 
Example #27
0
def description_type_item_relation_combine_add(request,description_type_id):
    session = Session()
    description_type_object = session.query(DescriptionType).get(description_type_id)
    
    if description_type_object is None:
        raise Http404
    description_meta_id = description_type_object.description_meta_id
    
    description_meta_object = session.query(DescriptionMeta).get(description_meta_id)
    if description_meta_object is None:
        raise Http404
    
    objs_in_relation = session.query(DescriptionMetaItemRelationCombination).filter(DescriptionMetaItemRelationCombination.description_meta_id == description_meta_id)

    form_info_list = []
    for obj in objs_in_relation:
        item_relation_object = session.query(ItemRelation).get(obj.item_relation_id)
        objs_in_relation_combination = session.query(ItemRelationCombination).filter(ItemRelationCombination.item_relation_id == item_relation_object.id)
        relation_items_number = 0
        for o in objs_in_relation_combination:
            relation_items_number += o.combination_number
        form_info_obj = DescriptionMetaItemRelationCombinationFormInfo(item_relation_id = item_relation_object.id,                                                            
                                                             item_relation_title = item_relation_object.title,
                                                             relation_items_number = relation_items_number
                                                             )
        form_info_list.append(form_info_obj)
    session.close()    

     
   
    initial={"form_info_list":form_info_list,}
        
    if request.method == 'POST':
        form = DescriptionTypeItemRelationCombinationForm(request.POST,initial=initial,auto_id=False)
        if form.is_valid():
            id = form.save(description_type_id = description_type_id)
            if id is not None:
                 
                data = {'description_meta_id':description_meta_id,'page':1}
                return HttpResponseRedirect(reverse('description_type_list', kwargs=data)) 
    else:
        form = DescriptionTypeItemRelationCombinationForm(initial=initial,auto_id=False)
        
    data = {'form': form,'description_type_id':description_type_id}
    
    return render_to_response("description/description_type_item_relation_combine_add.html", data, context_instance=RequestContext(request)) 
Example #28
0
    def save(self, commit=True, update=False,item_relation_id=None):
        session = Session()
        
        if update:
            item_relation = session.query(ItemRelation).get(item_relation_id)
        else:
            item_relation = ItemRelation()

        item_relation.title = self.cleaned_data['title']        
        
        if not update:
            session.add(item_relation)
        session.commit()        
        item_relation.id = item_relation.id
        session.close()
        
        return item_relation
Example #29
0
    def save(self, commit=True, update=False,description_meta_id=None):
        session = Session()
        
        if update:
            description_meta = session.query(DescriptionMeta).get(description_meta_id)
        else:
            description_meta = DescriptionMeta()

        description_meta.title = self.cleaned_data['title']        
        
        if not update:
            session.add(description_meta)
        session.commit()        
        description_meta.id = description_meta.id
        session.close()
        
        return description_meta
Example #30
0
 def save(self, commit=True, meta_id=None, update=False, object_id=None):
     session = Session()
     if update:
         run_config = session.query(RuntimeConfig).get(int(object_id))
     else:
         run_config = RuntimeConfig() 
     run_config.problem_meta_id = meta_id
     run_config.code_type = self.cleaned_data['code_type'] 
     run_config.memory = self.cleaned_data['memory'] 
     run_config.time = self.cleaned_data['time']   
     
     if not update:
         session.add(run_config)
     session.commit()
     session.close()
     
     return  run_config