Added realse and pickup dates. Games no Always go to DetailView and not editmode
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"data" : [
|
"data" : [
|
||||||
{
|
{
|
||||||
"filename" : "libExp_2021-05-20T16:53:25+0200.json",
|
"filename" : "libExp_2021-05-27T20:52:02+0200.json",
|
||||||
"idiom" : "universal",
|
"idiom" : "universal",
|
||||||
"universal-type-identifier" : "public.json"
|
"universal-type-identifier" : "public.json"
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@@ -14,6 +14,7 @@ import SwiftUI
|
|||||||
@objc(Game)
|
@objc(Game)
|
||||||
public class Game: NSManagedObject, Identifiable {
|
public class Game: NSManagedObject, Identifiable {
|
||||||
|
|
||||||
|
|
||||||
public static func compareByCreationDate(gameA : Game, gameB : Game) -> Bool {
|
public static func compareByCreationDate(gameA : Game, gameB : Game) -> Bool {
|
||||||
return gameA.releaseDate < gameB.releaseDate
|
return gameA.releaseDate < gameB.releaseDate
|
||||||
}
|
}
|
||||||
@@ -61,6 +62,8 @@ extension Game : Encodable {
|
|||||||
try container.encode(pickupDate.formattedInTimeZone(), forKey: .pickupDate)
|
try container.encode(pickupDate.formattedInTimeZone(), forKey: .pickupDate)
|
||||||
}
|
}
|
||||||
try container.encode(pickupDescription ?? "", forKey: .pickupDescription)
|
try container.encode(pickupDescription ?? "", forKey: .pickupDescription)
|
||||||
|
|
||||||
|
|
||||||
try container.encode(publisher ?? "", forKey: .publisher)
|
try container.encode(publisher ?? "", forKey: .publisher)
|
||||||
try container.encode(isFinished, forKey: .isFinished)
|
try container.encode(isFinished, forKey: .isFinished)
|
||||||
try container.encode(finishedDate, forKey: .finishedDate)
|
try container.encode(finishedDate, forKey: .finishedDate)
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ extension Game {
|
|||||||
return NSFetchRequest<Game>(entityName: "Game")
|
return NSFetchRequest<Game>(entityName: "Game")
|
||||||
}
|
}
|
||||||
|
|
||||||
@NSManaged public var circumstances: String?
|
|
||||||
@NSManaged public var releaseDate : Date
|
@NSManaged public var releaseDate : Date
|
||||||
@NSManaged public var pickupDate: Date?
|
@NSManaged public var pickupDate: Date?
|
||||||
@NSManaged public var pickupDescription : String?
|
@NSManaged public var pickupDescription : String?
|
||||||
|
|||||||
@@ -78,6 +78,11 @@ class LibraryImport {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private func noneIfEmpty(_ str : String?) -> String? {
|
||||||
|
if str == "" { return .none }
|
||||||
|
return str
|
||||||
|
}
|
||||||
|
|
||||||
private func makeCDGame(from game: BHLGame, _ gameDict: inout [UUID : Game], _ cdConsole: Console) {
|
private func makeCDGame(from game: BHLGame, _ gameDict: inout [UUID : Game], _ cdConsole: Console) {
|
||||||
let cdGame = Game(context: self.CDContext)
|
let cdGame = Game(context: self.CDContext)
|
||||||
gameDict[game.uuid] = cdGame
|
gameDict[game.uuid] = cdGame
|
||||||
@@ -88,7 +93,8 @@ class LibraryImport {
|
|||||||
cdGame.finishedDate = game.finishedDate
|
cdGame.finishedDate = game.finishedDate
|
||||||
cdGame.lentTo = game.lentTo
|
cdGame.lentTo = game.lentTo
|
||||||
cdGame.cover_icloud_path = game.cover_icloud_path
|
cdGame.cover_icloud_path = game.cover_icloud_path
|
||||||
cdGame.pickupDescription = game.pickupDescription
|
cdGame.notes = noneIfEmpty(game.notes)
|
||||||
|
cdGame.pickupDescription = noneIfEmpty(game.pickupDescription)
|
||||||
cdGame.isDigital = game.isDigital
|
cdGame.isDigital = game.isDigital
|
||||||
cdGame.playtime_h = game.playtime_h ?? 0
|
cdGame.playtime_h = game.playtime_h ?? 0
|
||||||
cdGame.playtime_min = game.playtime_min ?? 0
|
cdGame.playtime_min = game.playtime_min ?? 0
|
||||||
|
|||||||
@@ -55,6 +55,7 @@ struct GameView : View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
ScrollView {
|
ScrollView {
|
||||||
VStack {
|
VStack {
|
||||||
@@ -87,10 +88,15 @@ struct GameView : View {
|
|||||||
}
|
}
|
||||||
.padding(.vertical)
|
.padding(.vertical)
|
||||||
|
|
||||||
HeadlinedMultilineText(headline: "Notizen", multilineText: "Ganz toller multiline\nText")
|
if game.notes != .none {
|
||||||
|
HeadlinedMultilineText(headline: "Notizen", multilineText: game.notes ?? "n/a")
|
||||||
.padding(.bottom)
|
.padding(.bottom)
|
||||||
|
}
|
||||||
|
|
||||||
|
if game.pickupDescription != .none {
|
||||||
|
HeadlinedMultilineText(headline: "Hinter den Kulissen", multilineText: game.pickupDescription ?? "n/a")
|
||||||
|
}
|
||||||
|
|
||||||
HeadlinedMultilineText(headline: "Hinter den Kulissen", multilineText: "Ich habe für das Spiel bei MCMedia Games angestanden")
|
|
||||||
|
|
||||||
Spacer()
|
Spacer()
|
||||||
}
|
}
|
||||||
@@ -144,7 +150,7 @@ struct GameDetailView : View {
|
|||||||
Button(action: {
|
Button(action: {
|
||||||
isInEditMode.toggle()
|
isInEditMode.toggle()
|
||||||
},
|
},
|
||||||
label: { Image(systemName: "plus")})
|
label: { Image(systemName: "wrench.fill")})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -115,7 +115,7 @@ struct Overview: View {
|
|||||||
ScrollView(.horizontal, showsIndicators: false) {
|
ScrollView(.horizontal, showsIndicators: false) {
|
||||||
HStack(alignment: .top, spacing: 0) {
|
HStack(alignment: .top, spacing: 0) {
|
||||||
ForEach(games.prefix(last_picksups_limit)) { game in
|
ForEach(games.prefix(last_picksups_limit)) { game in
|
||||||
NavigationLink(destination: GameEditMode(game: game)) {
|
NavigationLink(destination: GameDetailView(game: game)) {
|
||||||
VStack(alignment: .leading) {
|
VStack(alignment: .leading) {
|
||||||
Group {
|
Group {
|
||||||
GameCover(game: game)
|
GameCover(game: game)
|
||||||
@@ -145,7 +145,7 @@ struct Overview: View {
|
|||||||
ScrollView(.horizontal, showsIndicators: false) {
|
ScrollView(.horizontal, showsIndicators: false) {
|
||||||
HStack(alignment: .top, spacing: 0) {
|
HStack(alignment: .top, spacing: 0) {
|
||||||
ForEach(gamesFinished.prefix(last_picksups_limit).filter({$0.isFinished})) { game in
|
ForEach(gamesFinished.prefix(last_picksups_limit).filter({$0.isFinished})) { game in
|
||||||
NavigationLink(destination: GameEditMode(game: game)) {
|
NavigationLink(destination: GameDetailView(game: game)) {
|
||||||
VStack(alignment: .leading) {
|
VStack(alignment: .leading) {
|
||||||
Group {
|
Group {
|
||||||
GameCover(game: game)
|
GameCover(game: game)
|
||||||
|
|||||||
Reference in New Issue
Block a user