Repository: Cloud-CV/EvalAI
Issue: Update challenge creation process from zip config file.
Root cause: Unimplemented Feature Gap

## Description
Modify the challenge creation API so that the challenge object and other things are only created when the EvalAI admin creates the challenge by toggling `is_created` to true.

## Deliverables
- [ ] When the `is_created` flag in Challenge Config table is true, then the challenge details must be filled in their respective tables.
- [ ]  When the `is_created` flag is false, the zip doesn't get extracted and the values are not filled in the tables.

Hello there, I want to take this issue to myself. 

@RishabhJain2018 

Sure! You can work on it.

Hello there @RishabhJain2018 , I finally find the time due to my other issue and my understanding of project docs etc.
I want to ask a few questions.  Currently in config table `is_created `column is default false that means it'll always false when challenges are created if a user requests through related endpoint.

- If a user creates a challenge, what will happen after creation ?` is_created `will be false. If is_created false, Where should I keep data other than this table?

- How can I understand `is_created ` is true or false before saving to db or do another operations after challenge creation?  I mean does admin approve challenges or an another task?

Pardon for long questions, It's kinda hard for me to get used to it this kind of project but that's why I'm here. By the way great idea 

@RishabhJain2018 Hey there

@RishabhJain2018 could you please explain more ?

Hi @kaansan Sorry, I missed this thread.
I didn't understand this part: ` that means it'll always false when challenges are created if a user requests through related endpoint.`
What do you mean to say here?

- If a user creates a challenge, what will happen after creation ?is_createdwill be false. If is_created false, Where should I keep data other than this table?

Ans: `is_created` will be false and you will keep the data in this table only.

I have modified the description to be more clear. Please read again.



**When the is_created flag is false, the zip doesn't get extracted and the values are not filled in the tables.**
ok from my understanding. 
`user creates challenge  > challenge is_created field is now false >  if is_created false don't extract and doesn't put on the table.`
**_is_created field never will be True so the question is How I should keep the data in the table.
is_created default False, so if I will not save data to respective table, what to do with it ? 
should I delete ?_** 
I can understand if admin toggles the is_created to True. 
You said at the latter answer,  `is_created will be false and you will keep the data in this table only.`
Ok, What should I do with `is_created false challenges?` is there any workaround for that?. 

@RishabhJain2018 is this still taken ?

@RishabhJain2018 So, basically we need to split the challenge_creation function into 2 parts. First part would just save the **_challenge_config_** object into **_challenge_config_** table (here, **is_created** will be false by default)
Then, the admin will set **is_created** to true. 
This in turn triggers the 2nd part of the function which will extract the zip file and fill all other tables.
Is that correct ?

@RishabhJain2018 @deshraj Could you please confirm my comment ?

@RishabhJain2018 @deshraj As the issue is still open, can I work on it ?

Closing this since it is a very old issue.