Ejemplo n.º 1
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)) 
Ejemplo n.º 2
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)) 
Ejemplo n.º 3
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
Ejemplo n.º 4
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
Ejemplo n.º 5
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))
Ejemplo n.º 6
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))
Ejemplo n.º 7
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})) 
Ejemplo n.º 8
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
Ejemplo n.º 9
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})) 
Ejemplo n.º 10
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
Ejemplo n.º 11
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
Ejemplo n.º 12
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
Ejemplo n.º 13
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)) 
Ejemplo n.º 14
0
def description_type_list(request, description_meta_id, page=1):
    session = Session()
    description_meta_object = session.query(DescriptionMeta).get(description_meta_id)
    session.close()
    if description_meta_object is None:
        raise Http404 
    description_type_objects = session.query(DescriptionType).filter(DescriptionType.description_meta_id == description_meta_id)

    paginator = Paginator(description_type_objects, settings.METAS_PER_PAGE)
    
    try:
        objects = paginator.page(description_type_objects)
    except (EmptyPage, InvalidPage):
        objects = paginator.page(paginator.num_pages)
    data = {"objects": objects,"description_meta_object":description_meta_object}
    return render_to_response("description/description_type_list.html", data,
                              context_instance=RequestContext(request))
Ejemplo n.º 15
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  
Ejemplo n.º 16
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)) 
Ejemplo n.º 17
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  
Ejemplo n.º 18
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
Ejemplo n.º 19
0
def meta_detail(request, meta_id):
    session = Session()
    meta = session.query(ProblemMeta).get(meta_id)
    if meta is None:
        raise Http404
    descriptions = meta.descriptions
    io_datas = meta.input_output_datas
    
    data = {"meta": meta,
            "descriptions": descriptions,
            "io_datas": io_datas}
    
    for config_refer in meta.get_config_refer():
        if hasattr(meta, config_refer):
            data.update({config_refer: getattr(meta, config_refer)})
            
    session.close()
    
    return render_to_response('problem/meta_detail.html', data,
                             context_instance=RequestContext(request))
Ejemplo n.º 20
0
def description_type_add(request, description_meta_id):
    session = Session()
    description_meta_object = session.query(DescriptionMeta).get(description_meta_id)
    session.close()

    if description_meta_object is None:
        raise Http404 
    if request.method == 'POST':
        form = DescriptionTypeForm(request.POST)
        
        if form.is_valid():
            description_type = form.save(description_meta_id=description_meta_id)
            data = {'description_type_id':description_type.id, }
            return HttpResponseRedirect(reverse('description_type_item_relation_combine_add', kwargs=data))
    else:
        form = DescriptionTypeForm()
    
   
    data = {'form': form, 'description_meta_id':description_meta_id}
    return render_to_response("description/description_type_add.html", data, context_instance=RequestContext(request)) 
Ejemplo n.º 21
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
Ejemplo n.º 22
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()
Ejemplo n.º 23
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
Ejemplo n.º 24
0
 def save(self, commit=True, update=False, meta_id=0):
     session = Session()
     if update:
         problem_meta = session.query(ProblemMeta).get(meta_id)
     else:
         problem_meta = ProblemMeta()
         
     problem_meta.title = self.cleaned_data['title']
     job_list = ""
     for job in self.cleaned_data['judge_flow']:
         job_list += JUDGE_FLOW_MARK_SEPARATOR + job
     problem_meta.judge_flow = job_list
     session.expire_on_commit = False
     if not update:
         session.add(problem_meta)
     session.commit()
     session.close()
     
     return problem_meta
Ejemplo n.º 25
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
Ejemplo n.º 26
0
def meta_config_edit(request, configForm, editObjectClass, meta_id, object_id,
                     template_name=None, redirect_to=None):
    session = Session()
    meta = session.query(ProblemMeta).get(meta_id)
    if request.method == 'POST':
        request.POST.update({"problem_meta_id":meta_id})
        form = configForm(request.POST, request.FILES)
        
        if form.is_valid():
            obj = form.save(meta_id=meta_id, update=True, object_id=object_id)
            if redirect_to is None:
                res = HttpResponseRedirect(reverse('meta_detail', kwargs={'meta_id': meta_id}))
            else:
                res = HttpResponseRedirect(reverse(redirect_to, kwargs={'id': obj.id}))
            session.close()
            return res
    else:
        session = Session()
        object_detail = session.query(editObjectClass).get(int(object_id))
        
        if object_detail is None:
            session.close()
            raise Http404
        
        edit_object_class_attrs = [attr for attr in editObjectClass.__dict__ if attr[0] != '_']
        initial_data = {}
        
        for attr in edit_object_class_attrs:
            initial_data[attr] = getattr(object_detail,attr)
        
        form = configForm(initial=initial_data)
    res = render_to_response(template_name, {
            'form': form, "meta":meta},
            context_instance=RequestContext(request))
    session.close()
    
    return res 
    
Ejemplo n.º 27
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
Ejemplo n.º 28
0
 def save(self, commit=True, meta_id=None, update=False, object_id=None):
     session = Session()
     if update:
         problem = session.query(Problem).get(int(object_id))
     else:
         problem = Problem()
     problem.problem_meta_id = meta_id
     job_list = self.cleaned_data['judge_flow']
     flow_mark = ""
     for job in job_list:
         flow_mark += JUDGE_FLOW_MARK_SEPARATOR + str(job)
         
     problem.judge_flow = flow_mark
     session.expire_on_commit = False
     if not update:
         session.add(problem)
     session.commit()
     session.close()
     
     return problem
Ejemplo n.º 29
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  
Ejemplo n.º 30
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