@@ -21,3 +21,11 @@ type Dataset struct { | |||
Attachments []*Attachment `xorm:"-"` | |||
} | |||
func CreateDataset(dataset *Dataset) (err error) { | |||
if _, err = x.Insert(dataset); err != nil { | |||
return err | |||
} | |||
return nil | |||
} |
@@ -0,0 +1,21 @@ | |||
package auth | |||
import ( | |||
"gitea.com/macaron/binding" | |||
"gitea.com/macaron/macaron" | |||
) | |||
// CreateDatasetForm form for dataset page | |||
type CreateDatasetForm struct { | |||
Title string `binding:"Required"` | |||
Category string `binding:"Required"` | |||
Description string `binding:"Required;MaxSize(254)"` | |||
License string `binding:"OmitEmpty;MaxSize(64)"` | |||
Task string | |||
Release_id int64 `xorm:"INDEX"` | |||
} | |||
// Validate validates the fields | |||
func (f *CreateDatasetForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { | |||
return validate(errs, ctx.Data, f, ctx.Locale) | |||
} |
@@ -626,7 +626,7 @@ description = Description | |||
create_dataset = Create Dataset | |||
category = Category | |||
task = Task | |||
licience = Licience | |||
Licenses = Licenses | |||
file = Dataset File | |||
[repo] | |||
@@ -625,7 +625,7 @@ description = 描述 | |||
create_dataset = 创建数据集 | |||
category = 分类 | |||
task = 针对的具体任务 | |||
licience = Licience | |||
Licenses = Licenses | |||
file = 数据集文件 | |||
[repo] | |||
@@ -1,6 +1,8 @@ | |||
package dataset | |||
import ( | |||
"code.gitea.io/gitea/models" | |||
"code.gitea.io/gitea/modules/auth" | |||
"code.gitea.io/gitea/modules/base" | |||
"code.gitea.io/gitea/modules/context" | |||
"code.gitea.io/gitea/modules/log" | |||
@@ -20,6 +22,62 @@ func Create(ctx *context.Context) { | |||
log.Debug("[dataset] Create...\n") | |||
ctx.HTML(200, tplCreate) | |||
} | |||
// func handleCreateError(ctx *context.Context, owner *models.User, err error, name string, tpl base.TplName, form interface{}) { | |||
// switch { | |||
// case models.IsErrReachLimitOfRepo(err): | |||
// ctx.RenderWithErr(ctx.Tr("repo.form.reach_limit_of_creation", owner.MaxCreationLimit()), tpl, form) | |||
// case models.IsErrRepoAlreadyExist(err): | |||
// ctx.Data["Err_RepoName"] = true | |||
// ctx.RenderWithErr(ctx.Tr("form.repo_name_been_taken"), tpl, form) | |||
// case models.IsErrNameReserved(err): | |||
// ctx.Data["Err_RepoName"] = true | |||
// ctx.RenderWithErr(ctx.Tr("repo.form.name_reserved", err.(models.ErrNameReserved).Name), tpl, form) | |||
// case models.IsErrNamePatternNotAllowed(err): | |||
// ctx.Data["Err_RepoName"] = true | |||
// ctx.RenderWithErr(ctx.Tr("repo.form.name_pattern_not_allowed", err.(models.ErrNamePatternNotAllowed).Pattern), tpl, form) | |||
// default: | |||
// ctx.ServerError(name, err) | |||
// } | |||
// } | |||
func CreatePost(ctx *context.Context, form auth.CreateDatasetForm) { | |||
ctx.Data["Title"] = ctx.Tr("new_dataset") | |||
ctxUser := ctx.User | |||
if ctx.HasError() { | |||
ctx.HTML(200, tplCreate) | |||
return | |||
} | |||
var err error | |||
opts := models.Dataset{ | |||
Title: form.Title, | |||
Category: form.Category, | |||
Description: form.Description, | |||
License: form.License, | |||
Task: form.Task, | |||
Release_id: form.Release_id, | |||
User_id: ctxUser.ID, | |||
Status: 0, | |||
} | |||
log.Debug("======================================") | |||
log.Debug("%#v", opts) | |||
log.Debug("======================================") | |||
// if !opts.IsValid() { | |||
// ctx.RenderWithErr(ctx.Tr("repo.template.one_item"), tplCreate, form) | |||
// return | |||
// } | |||
if err = models.CreateDataset(&opts); err != nil { | |||
log.Error("%v", err) | |||
} | |||
// handleCreateError(ctx, ctxUser, err, "CreatePost", tplCreate, &form) | |||
} | |||
func Delete(ctx *context.Context) { | |||
log.Debug("[dataset] Delete...\n") | |||
} |
@@ -1004,6 +1004,7 @@ func RegisterRoutes(m *macaron.Macaron) { | |||
m.Group("/datasets", func() { | |||
m.Get("", dataset.MyList) | |||
m.Get("/create", dataset.Create) | |||
m.Post("/create", bindIgnErr(auth.CreateDatasetForm{}), dataset.CreatePost) | |||
m.Post("/delete", dataset.Delete) | |||
}, ignSignIn) | |||
// ***** END: DataSet***** | |||
@@ -11,7 +11,7 @@ | |||
{{template "base/alert" .}} | |||
<div class="inline required field"> | |||
<label>{{.i18n.Tr "dataset.title"}}</label> | |||
<input name="title" placeholder="{{.i18n.Tr "dataset.title"}}" value="{{.title}}" autofocus required maxlength="255"> | |||
<input name="title" placeholder='{{.i18n.Tr "dataset.title"}}' value="{{.title}}" autofocus required maxlength="255"> | |||
</div> | |||
<div class="inline field"> | |||
@@ -35,12 +35,10 @@ | |||
<div class="inline required field"> | |||
<label>{{.i18n.Tr "dataset.category"}}</label> | |||
<div class="ui selection owner dropdown"> | |||
<div class="ui selection dropdown"> | |||
<input type="hidden" name="category" id="category" value="{{.category}}" required> | |||
<span class="text" style="min-width:20vw" title="自然语言处理"> | |||
自然语言处理 | |||
</span> | |||
<i class="dropdown icon"></i> | |||
<div class="default text" style="min-width:20vw">{{.i18n.Tr "dataset.category"}}</div> | |||
<div class="menu"> | |||
<div class="item" data-value="计算机视觉、自然语言处理"> | |||
计算机视觉、自然语言处理 | |||
@@ -57,11 +55,9 @@ | |||
<div class="inline required field"> | |||
<label>{{.i18n.Tr "dataset.task"}}</label> | |||
<div class="ui selection owner dropdown"> | |||
<div class="ui selection dropdown"> | |||
<input type="hidden" name="task" id="task" value="{{.task}}" required> | |||
<span class="text" style="min-width:20vw" title="视觉问答"> | |||
视觉问答 | |||
</span> | |||
<div class="default text" style="min-width:20vw">{{.i18n.Tr "dataset.task"}}</div> | |||
<i class="dropdown icon"></i> | |||
<div class="menu"> | |||
<div class="item" data-value="遥感图像理解"> | |||
@@ -81,12 +77,10 @@ | |||
</div> | |||
<div class="inline required field"> | |||
<label>{{.i18n.Tr "dataset.licience"}}</label> | |||
<label>{{.i18n.Tr "dataset.licenses"}}</label> | |||
<div class="ui selection owner dropdown"> | |||
<input type="hidden" name="licience" id="licience" value="{{.licience}}" required> | |||
<span class="text" style="min-width:20vw" data-value="MIT"> | |||
MIT | |||
</span> | |||
<input type="hidden" name="licenses" id="licenses" value="{{.licenses}}" required> | |||
<div class="default text" style="min-width:20vw">{{.i18n.Tr "dataset.licenses"}}</div> | |||
<i class="dropdown icon"></i> | |||
<div class="menu"> | |||
<div class="item" data-value="Creative Commons CC BY 4.0"> | |||