예제 #1
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
예제 #2
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
예제 #3
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  
예제 #4
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
예제 #5
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
예제 #6
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
예제 #7
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
예제 #8
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
예제 #9
0
 def save(self, commit=True, meta_id=None, update=False, object_id=None):
     session = Session()
     if update:
         input_output_data = session.query(InputOutputData).get(int(object_id))
     else:
         input_output_data = InputOutputData() 
     input_output_data.problem_meta_id = meta_id   
     input_output_data.name = self.cleaned_data['name']
     input_file = self.cleaned_data['input_file']
     output_file = self.cleaned_data['output_file']
     
     if not update:
         session.add(input_output_data)
     session.commit()        
     save_io_file(input_file, output_file, input_output_data, update)
     session.close()
     
     return input_output_data
예제 #10
0
 def save(self, problem=None, user=None):
     if problem is None:
         return
     sub = Submission()
     sub.status = STATUS.pending
     sub.problem_id = problem.id
     sub.code_type = self.cleaned_data["code_type"]
     sub.code = self.cleaned_data["code_text"]
     sub.user = user
     sub.length = len(sub.code)
     session = Session()
     session.query(Problem).filter_by(id = problem.id).update({"submit": Problem.submit+1})
     session.query(User).filter_by(id = user.id).update({"submit": User.submit+1})
     session.add(sub)
     session.commit()
     self.handle_code(sub, self.cleaned_data["code_file"])
     session.close()
     
     return sub
예제 #11
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
예제 #12
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
예제 #13
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
예제 #14
0
 def save(self, commit=True, meta_id=None, update=False, object_id=None):
     session = Session()
     if update:
         description = session.query(Description).get(int(object_id))
     else:
         description = Description()
     description.problem_meta_id = meta_id 
     description.title = self.cleaned_data['title']
     description.content = self.cleaned_data['content']
     description.input = self.cleaned_data['input']
     description.output = self.cleaned_data['output']
     description.sample_input = self.cleaned_data['sample_input']
     description.sample_output = self.cleaned_data['sample_output']
     description.hint = self.cleaned_data['hint']
     description.source = self.cleaned_data['source']               
     
     if not update:
         session.add(description)
     session.commit()
     session.close()
     
     return description