Adds timezone for clubs

paca_championship
Laurent 1 year ago
parent 82e1f6a342
commit 52c8162a2d
  1. 6
      PadelClub/Data/Club.swift
  2. 4
      PadelClub/Data/README.md
  3. 6
      PadelClub/Views/Club/ClubDetailView.swift
  4. 1
      PadelClubTests/ServerDataTests.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)
}
}

@ -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

@ -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 {

@ -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"

Loading…
Cancel
Save