mirror of
https://shylinux.com/x/education
synced 2025-04-25 10:08:05 +08:00
add some
This commit is contained in:
parent
41ed1f8ac7
commit
251f90e3c0
@ -13,7 +13,7 @@ func (s class) Inputs(m *ice.Message, arg ...string) {
|
|||||||
switch arg[0] {
|
switch arg[0] {
|
||||||
case model.GRADE:
|
case model.GRADE:
|
||||||
y := kit.Int(kit.Split(m.Time(), "-")[0])
|
y := kit.Int(kit.Split(m.Time(), "-")[0])
|
||||||
for i := 0; i < 10; i++ {
|
for i := 0; i < 20; i++ {
|
||||||
m.Push(arg[0], kit.Format("%d级", y))
|
m.Push(arg[0], kit.Format("%d级", y))
|
||||||
y--
|
y--
|
||||||
}
|
}
|
||||||
|
@ -1,14 +0,0 @@
|
|||||||
package jiaowuxitong
|
|
||||||
|
|
||||||
import "shylinux.com/x/ice"
|
|
||||||
|
|
||||||
type classUser struct {
|
|
||||||
Tables
|
|
||||||
userClass userClass
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s classUser) List(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmdy(s.userClass, s.userClass.User, arg).Display("")
|
|
||||||
}
|
|
||||||
|
|
||||||
func init() { ice.TeamCtxCmd(classUser{}) }
|
|
@ -1,13 +0,0 @@
|
|||||||
Volcanos(chat.ONIMPORT, {
|
|
||||||
_init: function(can, msg) { var USER_CLASS_ROLE = "user_class_role"
|
|
||||||
if (msg.IsDetail()) { can.onexport.share_title(can, msg, USER_CLASS_ROLE); return msg.Show(can) }
|
|
||||||
can.onimport.itemcards(can, msg, function(value) { value._style = [value[USER_CLASS_ROLE]]
|
|
||||||
return [
|
|
||||||
{view: html.TITLE, list: [{text: value.user_name},
|
|
||||||
{text: [can.user.transValue(can, value, USER_CLASS_ROLE), "", [aaa.ROLE, value[USER_CLASS_ROLE]]]},
|
|
||||||
]},
|
|
||||||
{view: html.STATUS, list: [{text: value.uid.slice(0, 6)}, {text: can.base.TimeTrim(value.created_at)}]},
|
|
||||||
]
|
|
||||||
})
|
|
||||||
},
|
|
||||||
})
|
|
@ -8,10 +8,6 @@ import (
|
|||||||
"shylinux.com/x/education/src/jiaowuxitong/model"
|
"shylinux.com/x/education/src/jiaowuxitong/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Tables struct {
|
|
||||||
gonganxitong.Tables
|
|
||||||
list string `name:"list class_uid uid auto" role:"void"`
|
|
||||||
}
|
|
||||||
type Table struct {
|
type Table struct {
|
||||||
gonganxitong.Table
|
gonganxitong.Table
|
||||||
list string `name:"list class_uid uid auto" role:"void"`
|
list string `name:"list class_uid uid auto" role:"void"`
|
||||||
@ -41,6 +37,26 @@ func (s Table) RewriteAppend(m *ice.Message, arg ...string) *ice.Message {
|
|||||||
kit.If(key == model.USER_CLASS_ROLE, func() { value = UserClassRole(kit.Int(value)).String() })
|
kit.If(key == model.USER_CLASS_ROLE, func() { value = UserClassRole(kit.Int(value)).String() })
|
||||||
return value
|
return value
|
||||||
})
|
})
|
||||||
s.Table.RewriteAppend(m)
|
return s.Table.RewriteAppend(m)
|
||||||
|
}
|
||||||
|
func (s Table) checkRole(m *ice.Message, arg ...UserClassRole) bool {
|
||||||
|
kit.If(len(arg) == 0, func() { arg = append(arg, UserClassTeacher) })
|
||||||
|
role := UserClassRole(kit.Int(m.Cmd(userClass{}, s.Select, m.OptionSimple(model.CLASS_UID, model.USER_UID)).Append(model.ROLE)))
|
||||||
|
for _, v := range append(arg, UserClassCreator) {
|
||||||
|
if role == v {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return !m.WarnNotRight(true, role.String())
|
||||||
|
}
|
||||||
|
func (s Table) recordEvent(m *ice.Message, info string, arg ...string) *ice.Message {
|
||||||
|
s.Table.RecordEvent(m, m.Option(model.CLASS_UID), info, kit.Select(m.Option(model.UID), arg, 0))
|
||||||
return m
|
return m
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type Tables struct {
|
||||||
|
Table
|
||||||
|
portal string `data:"true"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s Tables) BeforeMigrate(m *ice.Message, arg ...string) {}
|
||||||
|
@ -12,14 +12,17 @@ type homework struct {
|
|||||||
class class
|
class class
|
||||||
userClass userClass
|
userClass userClass
|
||||||
portal string `data:"true"`
|
portal string `data:"true"`
|
||||||
create string `name:"create content*" role:"void"`
|
create string `name:"create title* content*" role:"void"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s homework) Create(m *ice.Message, arg ...string) {
|
func (s homework) Create(m *ice.Message, arg ...string) {
|
||||||
s.Table.Create(m, kit.Simple(arg, m.OptionSimple(model.USER_UID, model.CLASS_UID))...)
|
if s.checkRole(m) {
|
||||||
|
s.Table.Create(m, kit.Simple(arg, m.OptionSimple(model.CLASS_UID, model.USER_UID))...)
|
||||||
|
s.recordEvent(m, m.Trans("create homework ", "创建家庭作业 ")+m.Option(model.TITLE), m.Result())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
func (s homework) List(m *ice.Message, arg ...string) {
|
func (s homework) List(m *ice.Message, arg ...string) {
|
||||||
s.TablesWithRole(m, arg, s, s.userClass, s.class, model.CONTENT).Display("")
|
s.TablesWithRole(m, arg, s.userClass, s.class, s, model.TITLE, model.CONTENT).Display("")
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() { ice.TeamCtxCmd(homework{}) }
|
func init() { ice.TeamCtxCmd(homework{}) }
|
||||||
|
@ -1,14 +1,12 @@
|
|||||||
Volcanos(chat.ONIMPORT, {
|
Volcanos(chat.ONIMPORT, {
|
||||||
_init: function(can, msg) {
|
_init: function(can, msg) {
|
||||||
if (msg.IsDetail()) { var value = msg.TableDetail(); msg.Option("_share_content", value.content)
|
if (msg.IsDetail()) { var value = msg.TableDetail(); msg.Option("_share_title", value.title), msg.Option("_share_content", value.content) }
|
||||||
msg.Option("_share_title", can.base.trimPrefix(value.created_at.split(" ")[0], can.base.Time(null, "%y-")))
|
|
||||||
return msg.Show(can)
|
|
||||||
}
|
|
||||||
can.onimport.itemcards(can, msg, function(value) { return [
|
can.onimport.itemcards(can, msg, function(value) { return [
|
||||||
{view: html.TITLE, list: [{text: value.user_name},
|
{view: html.TITLE, list: [{text: value.title}]},
|
||||||
{text: [can.user.transValue(can, value, "user_class_role"), "", aaa.ROLE]},
|
{view: html.STATUS, list: [
|
||||||
|
{text: value.uid.slice(0, 6)}, {text: can.base.TimeTrim(value.created_at)},
|
||||||
|
{text: value.user_name}, {text: [can.user.transValue(can, value, "user_class_role"), "", [aaa.ROLE, can.onimport.roleStyle(can, value, "user_class_role")]]},
|
||||||
]},
|
]},
|
||||||
{view: html.STATUS, list: [{text: value.uid.slice(0, 6)}, {text: can.base.TimeTrim(value.created_at)},]},
|
|
||||||
{view: html.OUTPUT, list: [{text: value.content}]},
|
{view: html.OUTPUT, list: [{text: value.content}]},
|
||||||
] })
|
] })
|
||||||
},
|
},
|
||||||
|
@ -7,7 +7,7 @@ const (
|
|||||||
NAME = "name"
|
NAME = "name"
|
||||||
TYPE = "type"
|
TYPE = "type"
|
||||||
ROLE = "role"
|
ROLE = "role"
|
||||||
GRADE = "grade"
|
TITLE = "title"
|
||||||
CONTENT = "content"
|
CONTENT = "content"
|
||||||
USER_UID = "user_uid"
|
USER_UID = "user_uid"
|
||||||
USER_CLASS_ROLE = "user_class_role"
|
USER_CLASS_ROLE = "user_class_role"
|
||||||
@ -17,6 +17,7 @@ const (
|
|||||||
SCHOOL_UID = "school_uid"
|
SCHOOL_UID = "school_uid"
|
||||||
SCHOOL_NAME = "school_name"
|
SCHOOL_NAME = "school_name"
|
||||||
CITY_UID = "city_uid"
|
CITY_UID = "city_uid"
|
||||||
|
GRADE = "grade"
|
||||||
)
|
)
|
||||||
|
|
||||||
type UserClass struct {
|
type UserClass struct {
|
||||||
@ -27,21 +28,22 @@ type UserClass struct {
|
|||||||
}
|
}
|
||||||
type Class struct {
|
type Class struct {
|
||||||
db.ModelWithUID
|
db.ModelWithUID
|
||||||
SchoolUID string `gorm:"type:char(32)"`
|
SchoolUID string `gorm:"type:char(32);index"`
|
||||||
Grade string `gorm:"type:char(32)"`
|
Grade string `gorm:"type:char(32)"`
|
||||||
Name string `gorm:"type:varchar(256)"`
|
Name string `gorm:"type:char(64)"`
|
||||||
Type uint8
|
Type uint8
|
||||||
}
|
}
|
||||||
type School struct {
|
type School struct {
|
||||||
db.ModelWithUID
|
db.ModelWithUID
|
||||||
CityUID string `gorm:"type:char(32);index"`
|
CityUID string `gorm:"type:char(32);index:idx_city"`
|
||||||
Name string `gorm:"type:varchar(256)"`
|
Name string `gorm:"type:char(64);index:idx_city"`
|
||||||
Info string
|
Info string
|
||||||
}
|
}
|
||||||
type Homework struct {
|
type Homework struct {
|
||||||
db.ModelWithUID
|
db.ModelWithUID
|
||||||
ClassUID string `gorm:"type:char(32)"`
|
ClassUID string `gorm:"type:char(32);index"`
|
||||||
UserUID string `gorm:"type:char(32)"`
|
UserUID string `gorm:"type:char(32)"`
|
||||||
|
Title string `gorm:"type:char(64)"`
|
||||||
Content string
|
Content string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ type Portal struct {
|
|||||||
gonganxitong.Portal
|
gonganxitong.Portal
|
||||||
name string `data:"教务系统"`
|
name string `data:"教务系统"`
|
||||||
list string `name:"list class_uid index uid auto" role:"void"`
|
list string `name:"list class_uid index uid auto" role:"void"`
|
||||||
placeCreate string `name:"placeCreate city_name* school_name* grade*:select name*" role:"void"`
|
placeCreate string `name:"placeCreate city_name* school_name* grade*:select class_name*" role:"void"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -1,23 +1,19 @@
|
|||||||
{
|
{
|
||||||
"service": "系统服务",
|
|
||||||
"portal": "教务系统",
|
"portal": "教务系统",
|
||||||
"placeCreate": "创建班级",
|
"placeCreate": "创建班级",
|
||||||
"placeRemove": "删除班级",
|
"placeRemove": "删除班级",
|
||||||
"classUser": "班级成员",
|
"member": "班级成员",
|
||||||
"homework": "家庭作业",
|
"homework": "家庭作业",
|
||||||
"icons": {
|
"icons": {
|
||||||
"service": "https://img.icons8.com/officel/80/activity-grid.png",
|
|
||||||
"classUser": "https://img.icons8.com/officel/80/crowd.png",
|
|
||||||
"homework": "https://img.icons8.com/officel/80/homework.png"
|
"homework": "https://img.icons8.com/officel/80/homework.png"
|
||||||
},
|
},
|
||||||
"input": {
|
"input": {
|
||||||
"My Class": "我的班级",
|
"My Class": "我的班级",
|
||||||
"grade": "入学年份",
|
|
||||||
"user_class_role": "用户角色",
|
"user_class_role": "用户角色",
|
||||||
"class_uid": "班级",
|
|
||||||
"class_name": "班级名称",
|
"class_name": "班级名称",
|
||||||
"class_type": "班级类型",
|
"class_type": "班级类型",
|
||||||
"school_name": "学校名称"
|
"school_name": "学校名称",
|
||||||
|
"grade": "入学年份"
|
||||||
},
|
},
|
||||||
"value": {
|
"value": {
|
||||||
"user_class_role": {
|
"user_class_role": {
|
||||||
@ -25,7 +21,11 @@
|
|||||||
"visitor": "访客",
|
"visitor": "访客",
|
||||||
"teacher": "老师",
|
"teacher": "老师",
|
||||||
"student": "学生",
|
"student": "学生",
|
||||||
"parent": "家长"
|
"parent": "家长",
|
||||||
|
"style": {
|
||||||
|
"creator": "danger",
|
||||||
|
"teacher": "danger"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"class_type": {
|
"class_type": {
|
||||||
"term": "学期制",
|
"term": "学期制",
|
||||||
|
@ -1,7 +1,3 @@
|
|||||||
chapter "教务系统"
|
chapter "教务系统"
|
||||||
field web.chat.wx.access
|
|
||||||
field web.code.mysql.client
|
field web.code.mysql.client
|
||||||
field web.code.mysql.query args `mysql jiaowuxitong`
|
field web.code.mysql.query args `mysql jiaowuxitong`
|
||||||
field web.code.db.database
|
|
||||||
field web.code.db.driver
|
|
||||||
field web.code.db.models
|
|
@ -13,10 +13,11 @@ type userClass struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s userClass) User(m *ice.Message, arg ...string) {
|
func (s userClass) User(m *ice.Message, arg ...string) {
|
||||||
|
s.FieldsWithCreatedAT(m, s, model.USER_UID, model.ROLE)
|
||||||
if len(arg) == 1 {
|
if len(arg) == 1 {
|
||||||
s.Select(m, model.CLASS_UID, arg[0])
|
s.Select(m, model.CLASS_UID, arg[0])
|
||||||
} else if len(arg) == 2 {
|
} else if len(arg) == 2 {
|
||||||
s.Select(m, model.CLASS_UID, arg[0], model.UID, arg[1])
|
s.SelectDetail(m, model.CLASS_UID, arg[0], model.UID, arg[1])
|
||||||
} else {
|
} else {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -27,13 +28,12 @@ func (s userClass) User(m *ice.Message, arg ...string) {
|
|||||||
func (s userClass) List(m *ice.Message, arg ...string) {
|
func (s userClass) List(m *ice.Message, arg ...string) {
|
||||||
s.Tables(m, s.class, s.school).FieldsWithCreatedAT(m, s,
|
s.Tables(m, s.class, s.school).FieldsWithCreatedAT(m, s,
|
||||||
model.CLASS_NAME, model.CLASS_TYPE, model.USER_CLASS_ROLE,
|
model.CLASS_NAME, model.CLASS_TYPE, model.USER_CLASS_ROLE,
|
||||||
model.CITY_UID, model.SCHOOL_NAME, model.GRADE,
|
model.CITY_UID, model.SCHOOL_NAME, model.GRADE, model.CLASS_UID,
|
||||||
model.CLASS_UID,
|
|
||||||
)
|
)
|
||||||
if len(arg) == 1 {
|
if len(arg) == 1 {
|
||||||
s.Select(m, model.USER_UID, arg[0])
|
s.Select(m, model.USER_UID, arg[0])
|
||||||
} else if len(arg) == 2 {
|
} else if len(arg) == 2 {
|
||||||
s.SelectDetail(m, model.USER_UID, arg[0], s.Key(s.class, model.UID), arg[1])
|
s.SelectDetail(m, model.USER_UID, arg[0], s.Key(s, model.CLASS_UID), arg[1])
|
||||||
} else {
|
} else {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user