stable sort for model.go
This commit is contained in:
parent
153d46d830
commit
ca9325b93a
|
@ -142,6 +142,7 @@ func CreateMetadata(a *AnalyzeData) (*Metadata, error) {
|
||||||
Typed: a.Fields[k+PATH_SEPARATOR+"type"] != nil,
|
Typed: a.Fields[k+PATH_SEPARATOR+"type"] != nil,
|
||||||
SubTypes: getSubtypes(a, k),
|
SubTypes: getSubtypes(a, k),
|
||||||
SubTypeOf: getSubtypeOf(k),
|
SubTypeOf: getSubtypeOf(k),
|
||||||
|
SubType: getSubtype(k),
|
||||||
Fields: objFields,
|
Fields: objFields,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -196,6 +197,17 @@ func getSubtypeOf(k string) *string {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getSubtype(k string) *string {
|
||||||
|
if strings.Contains(k, PATH_SEPARATOR) {
|
||||||
|
last := k[strings.LastIndex(k, PATH_SEPARATOR)+1:]
|
||||||
|
if strings.Contains(last, "+") {
|
||||||
|
base := strcase.ToDelimited(last[strings.Index(last, "+")+1:], ' ')
|
||||||
|
return &base
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func isArray(typ string, types []string) (bool, string) {
|
func isArray(typ string, types []string) (bool, string) {
|
||||||
fc := 0
|
fc := 0
|
||||||
elements := ""
|
elements := ""
|
||||||
|
|
|
@ -13,6 +13,7 @@ type Object struct {
|
||||||
Typed bool `json:"typed,omitempty"`
|
Typed bool `json:"typed,omitempty"`
|
||||||
SubTypes *[]Subtype `json:"subtypes,omitempty"`
|
SubTypes *[]Subtype `json:"subtypes,omitempty"`
|
||||||
SubTypeOf *string `json:"subtypeof,omitempty"`
|
SubTypeOf *string `json:"subtypeof,omitempty"`
|
||||||
|
SubType *string `json:"subtype,omitempty"`
|
||||||
Fields map[string]Field `json:"fields"`
|
Fields map[string]Field `json:"fields"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -77,6 +78,9 @@ func (f Object) ActiveSubTypes(plus bool) []*ActiveSubType {
|
||||||
}
|
}
|
||||||
|
|
||||||
list := util.Values(subs)
|
list := util.Values(subs)
|
||||||
|
for _, a := range list {
|
||||||
|
sort.Strings(a.Options)
|
||||||
|
}
|
||||||
sort.SliceStable(list, func(i, j int) bool {
|
sort.SliceStable(list, func(i, j int) bool {
|
||||||
return list[i].Case < list[j].Case
|
return list[i].Case < list[j].Case
|
||||||
})
|
})
|
||||||
|
|
|
@ -110,6 +110,9 @@ func (x *{{ $obj.Name }}) Id() int { return x.Id_ }
|
||||||
{{- if $obj.Named }}
|
{{- if $obj.Named }}
|
||||||
func (x *{{ $obj.Name }}) Name() string { return x.Name_ }
|
func (x *{{ $obj.Name }}) Name() string { return x.Name_ }
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if $obj.SubType }}
|
||||||
|
func (x *{{ $obj.Name }}) Type() string { return "{{ $obj.SubType }}" }
|
||||||
|
{{- end }}
|
||||||
func (x *{{ $obj.Name }}) RelatedToEntity(id int) bool { return {{ $obj.Related "civId,civ_id,entity_id,entity" }} }
|
func (x *{{ $obj.Name }}) RelatedToEntity(id int) bool { return {{ $obj.Related "civId,civ_id,entity_id,entity" }} }
|
||||||
func (x *{{ $obj.Name }}) RelatedToHf(id int) bool { return {{ $obj.Related "hfid,hf_id,_hf,hist_figure_id,Hfid,histfig_id,histfig,bodies" }} }
|
func (x *{{ $obj.Name }}) RelatedToHf(id int) bool { return {{ $obj.Related "hfid,hf_id,_hf,hist_figure_id,Hfid,histfig_id,histfig,bodies" }} }
|
||||||
|
|
||||||
|
@ -408,6 +411,7 @@ func (obj Object) Related(fields string) string {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
sort.Strings(list)
|
||||||
if len(list) > 0 {
|
if len(list) > 0 {
|
||||||
return strings.Join(list, " || ")
|
return strings.Join(list, " || ")
|
||||||
}
|
}
|
||||||
|
@ -421,6 +425,7 @@ func (obj Object) LegendFields(t string) []Field {
|
||||||
list = append(list, f)
|
list = append(list, f)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
sort.Slice(list, func(i, j int) bool { return list[i].Name < list[j].Name })
|
||||||
return list
|
return list
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue