Browse Source

improve dataset

tags/v1.21.12.1
yan 5 years ago
parent
commit
631cc469ac
2 changed files with 45 additions and 50 deletions
  1. +16
    -0
      models/dataset.go
  2. +29
    -50
      routers/repo/dataset.go

+ 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



Loading…
Cancel
Save