Browse Source

Merge branch 'DEV-dataset-in-project' of git.pcl.ac.cn:yoyoyard/opendata into DEV-dataset-in-project

master
colorfulberry 5 years ago
parent
commit
f45b725ddf
5 changed files with 55 additions and 52 deletions
  1. +16
    -0
      models/dataset.go
  2. +29
    -50
      routers/repo/dataset.go
  3. +4
    -2
      routers/routes/routes.go
  4. +2
    -0
      templates/repo/datasets/dataset_list.tmpl
  5. +4
    -0
      templates/repo/datasets/index.tmpl

+ 16
- 0
models/dataset.go View File

@@ -270,6 +270,22 @@ func GetDatasetByID(id int64) (*Dataset, error) {
return rel, nil
}

func GetDatasetByRepo(repo *Repository) (*Dataset, error) {
if err := CreateDefaultDatasetToRepo(repo); err != nil {
return nil, err
}
dataset := &Dataset{RepoID: repo.ID}
has, err := x.Get(dataset)
if err != nil {
return nil, err
}
if has {
return dataset, nil
} else {
return nil, errors.New("Not Found")
}
}

func DeleteDataset(datasetID int64, uid int64) error {
var err error
sess := x.NewSession()


+ 29
- 50
routers/repo/dataset.go View File

@@ -6,7 +6,6 @@ import (
"code.gitea.io/gitea/modules/base"
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
)

const (
@@ -24,62 +23,42 @@ func MustEnableDataset(ctx *context.Context) {
func DatasetIndex(ctx *context.Context) {
MustEnableDataset(ctx)

var orderBy models.SearchOrderBy
repo := ctx.Repo.Repository
// user := ctx.User
page := ctx.QueryInt("page")
if page <= 0 {
page = 1
}
ctx.Data["SortType"] = ctx.Query("sort")
switch ctx.Query("sort") {
case "newest":
orderBy = models.SearchOrderByNewest
case "oldest":
orderBy = models.SearchOrderByOldest
case "recentupdate":
orderBy = models.SearchOrderByRecentUpdated
case "leastupdate":
orderBy = models.SearchOrderByLeastUpdated
case "reversealphabetically":
orderBy = models.SearchOrderByAlphabeticallyReverse
case "alphabetically":
orderBy = models.SearchOrderByAlphabetically
case "reversesize":
orderBy = models.SearchOrderBySizeReverse
default:
ctx.Data["SortType"] = "recentupdate"
orderBy = models.SearchOrderByRecentUpdated
}
ctx.Data["PageIsDataset"] = true
ctx.Data["Title"] = ctx.Tr("dataset.show_dataset")
ctx.Data["Link"] = ctx.Repo.RepoLink + "/datasets"
datasets, _, err := models.SearchDataset(&models.SearchDatasetOptions{
ListOptions: models.ListOptions{
Page: page,
PageSize: setting.UI.ExplorePagingNum,
},
SearchOrderBy: orderBy,
RepoID: repo.ID,
})

dataset, err := models.GetDatasetByRepo(repo)
if err != nil {
ctx.NotFound("SearchDataset", err)
ctx.NotFound("GetDatasetByRepo", err)
return
}

var dataset *models.Dataset
if len(datasets) > 0 { //TODO check list is single item
dataset = datasets[len(datasets)-1]
err = models.GetDatasetAttachments(dataset)
if err != nil {
ctx.ServerError("GetDatasetAttachments", err)
return
}
err = models.GetDatasetAttachments(dataset)
if err != nil {
ctx.ServerError("GetDatasetAttachments", err)
return
}

// TODO permission
// isOwner := (ctx.User != nil && dataset.UserID == user.ID)
// var orderBy models.SearchOrderBy
// page := ctx.QueryInt("page")
// if page <= 0 {
// page = 1
// }
// ctx.Data["SortType"] = ctx.Query("sort")
// switch ctx.Query("sort") {
// case "newest":
// orderBy = models.SearchOrderByNewest
// case "oldest":
// orderBy = models.SearchOrderByOldest
// case "recentupdate":
// orderBy = models.SearchOrderByRecentUpdated
// case "leastupdate":
// orderBy = models.SearchOrderByLeastUpdated
// default:
// ctx.Data["SortType"] = "recentupdate"
// orderBy = models.SearchOrderByRecentUpdated
// }

ctx.Data["PageIsDataset"] = true
ctx.Data["Title"] = ctx.Tr("dataset.show_dataset")
ctx.Data["Link"] = ctx.Repo.RepoLink + "/datasets"
ctx.Data["dataset"] = dataset
ctx.Data["IsOwner"] = true



+ 4
- 2
routers/routes/routes.go View File

@@ -541,6 +541,8 @@ func RegisterRoutes(m *macaron.Macaron) {
reqRepoPullsReader := context.RequireRepoReader(models.UnitTypePullRequests)
reqRepoIssuesOrPullsWriter := context.RequireRepoWriterOr(models.UnitTypeIssues, models.UnitTypePullRequests)
reqRepoIssuesOrPullsReader := context.RequireRepoReaderOr(models.UnitTypeIssues, models.UnitTypePullRequests)
reqRepoDatasetReader := context.RequireRepoReader(models.UnitTypeDatasets)
reqRepoDatasetWriter := context.RequireRepoWriter(models.UnitTypeDatasets)

// ***** START: Organization *****
m.Group("/org", func() {
@@ -764,8 +766,8 @@ func RegisterRoutes(m *macaron.Macaron) {
m.Post("/resolve_conversation", reqRepoIssuesOrPullsReader, repo.UpdateResolveConversation)
}, context.RepoMustNotBeArchived())
m.Group("/datasets", func() {
m.Get("", repo.DatasetIndex)
m.Post("", bindIgnErr(auth.EditDatasetForm{}), repo.EditDatasetPost)
m.Get("", reqRepoDatasetReader, repo.DatasetIndex)
m.Post("", reqRepoDatasetWriter, bindIgnErr(auth.EditDatasetForm{}), repo.EditDatasetPost)
}, context.RepoMustNotBeArchived())
m.Group("/comments/:id", func() {
m.Post("", repo.UpdateCommentContent)


+ 2
- 0
templates/repo/datasets/dataset_list.tmpl View File

@@ -26,9 +26,11 @@
</div>
</div>

{{if $.Permission.CanWrite $.UnitTypeDatasets}}
<div class="two wide column right aligned">
<a class="ui red button mini" href="javascript:void(0)" data-uuid={{.UUID}} data-dataset-delete data-remove-url="{{AppSubUrl}}/attachments/delete" data-csrf="{{$.CsrfToken}}">删除</a>
</div>
{{end}}
</div>
</div>
{{end}}


+ 4
- 0
templates/repo/datasets/index.tmpl View File

@@ -12,11 +12,13 @@
<span class="no-description text-italic">{{.dataset.Description}}</span>
</div>
</div>
{{if .Permission.CanWrite $.UnitTypeDatasets}}
<div class="column right aligned">
<a class="ui button primary" href="javascript:void(0)" id="dataset-edit">
{{.i18n.Tr "dataset.edit"}}
</a>
</div>
{{end}}
</div>

<div class="ui grid form segment success {{if not .Error}}hide{{end}}" id="dataset-content-edit">
@@ -63,9 +65,11 @@
</div>
<div class="dataset ui middle very relaxed page">
<div class="column">
{{if .Permission.CanWrite $.UnitTypeDatasets}}
<form class="ui form" action="{{.Link}}" method="post">
{{template "repo/datasets/dataset" .}}
</form>
{{end}}
</div>
</div>
</div>


Loading…
Cancel
Save