diff --git a/PadelClub/Data/Club.swift b/PadelClub/Data/Club.swift index 58ef226..c124f28 100644 --- a/PadelClub/Data/Club.swift +++ b/PadelClub/Data/Club.swift @@ -39,9 +39,10 @@ final class Club : ModelObject, Storable, Hashable { var longitude: Double? var courtCount: Int = 2 var broadcastCode: String? + var timezone: String? // var alphabeticalName: Bool = false - internal init(creator: String? = nil, name: String, acronym: String? = nil, phone: String? = nil, code: String? = nil, address: String? = nil, city: String? = nil, zipCode: String? = nil, latitude: Double? = nil, longitude: Double? = nil, courtCount: Int = 2, broadcastCode: String? = nil) { + internal init(creator: String? = nil, name: String, acronym: String? = nil, phone: String? = nil, code: String? = nil, address: String? = nil, city: String? = nil, zipCode: String? = nil, latitude: Double? = nil, longitude: Double? = nil, courtCount: Int = 2, broadcastCode: String? = nil, timezone: String? = nil) { self.name = name self.creator = creator self.acronym = acronym ?? name.acronym() @@ -54,6 +55,7 @@ final class Club : ModelObject, Storable, Hashable { self.longitude = longitude self.courtCount = courtCount self.broadcastCode = broadcastCode + self.timezone = TimeZone.current.identifier } override func copyFromServerInstance(_ instance: any Storable) -> Bool { @@ -102,6 +104,7 @@ final class Club : ModelObject, Storable, Hashable { case _longitude = "longitude" case _courtCount = "courtCount" case _broadcastCode = "broadcastCode" + case _timezone = "timezone" // case _alphabeticalName = "alphabeticalName" } @@ -121,6 +124,7 @@ final class Club : ModelObject, Storable, Hashable { try container.encode(longitude, forKey: ._longitude) try container.encode(courtCount, forKey: ._courtCount) try container.encode(broadcastCode, forKey: ._broadcastCode) + try container.encode(timezone, forKey: ._timezone) } } diff --git a/PadelClub/Data/README.md b/PadelClub/Data/README.md index 334dd01..d4a670e 100644 --- a/PadelClub/Data/README.md +++ b/PadelClub/Data/README.md @@ -4,13 +4,13 @@ Dans Swift: - Ajouter le champ dans classe - Ajouter le champ dans le constructeur si possible - Ajouter la codingKey correspondante -- Ajouter le champ dans l'encoding +- Ajouter le champ dans l'encoding/decoding - Ouvrir **ServerDataTests** et ajouter un test sur le champ - Pour que les tests sur les dates fonctionnent, on peut tester date.formatted() par exemple Dans Django: - Ajouter le champ dans la classe -- S'il c'est un champ dans **CustomUser**: +- Si c'est un champ dans **CustomUser**: - Ajouter le champ à la méthode fields_for_update - Ajouter le champ dans UserSerializer > create > create_user dans serializers.py - L'ajouter aussi dans admin.py si nécéssaire diff --git a/PadelClub/Views/Club/ClubDetailView.swift b/PadelClub/Views/Club/ClubDetailView.swift index b16e079..285c564 100644 --- a/PadelClub/Views/Club/ClubDetailView.swift +++ b/PadelClub/Views/Club/ClubDetailView.swift @@ -19,6 +19,8 @@ struct ClubDetailView: View { @Bindable var club: Club @State private var clubDeleted: Bool = false @State private var confirmDeletion: Bool = false + @State private var timezone: String = TimeZone.current.identifier + var displayContext: DisplayContext var selection: ((Club) -> ())? = nil @@ -29,6 +31,10 @@ struct ClubDetailView: View { _acronymMode = State(wrappedValue: club.shortNameMode()) _city = State(wrappedValue: club.city ?? "") _zipCode = State(wrappedValue: club.zipCode ?? "") + + if let timezone = club.timezone { + self.timezone = timezone + } } var body: some View { diff --git a/PadelClubTests/ServerDataTests.swift b/PadelClubTests/ServerDataTests.swift index f1a988e..1eca68f 100644 --- a/PadelClubTests/ServerDataTests.swift +++ b/PadelClubTests/ServerDataTests.swift @@ -57,6 +57,7 @@ final class ServerDataTests: XCTestCase { assert(inserted_club.phone == club.phone) assert(inserted_club.courtCount == club.courtCount) assert(inserted_club.broadcastCode != nil) + assert(inserted_club.timezone != club.timezone) inserted_club.phone = "123456"