From 8b13d4b2a5d86176fe3bb95da6b02a1d31de480c Mon Sep 17 00:00:00 2001 From: Javier Date: Sun, 21 Mar 2021 21:11:08 +0100 Subject: [PATCH 1/5] Entidades con error OneToOne en Users y Authorities --- .../cheapy/model/Authorities.java | 37 +++++++ .../springframework/cheapy/model/Client.java | 94 ++++++++++++++++++ .../cheapy/model/FoodOffer.java | 59 ++++++++++++ .../springframework/cheapy/model/NuOffer.java | 96 +++++++++++++++++++ .../springframework/cheapy/model/Offer.java | 85 ++++++++++++++++ .../cheapy/model/SpeedOffer.java | 96 +++++++++++++++++++ .../cheapy/model/StatusOffer.java | 5 + .../cheapy/model/TimeOffer.java | 48 ++++++++++ .../springframework/cheapy/model/User.java | 59 ++++++++++++ 9 files changed, 579 insertions(+) create mode 100644 src/main/java/org/springframework/cheapy/model/Authorities.java create mode 100644 src/main/java/org/springframework/cheapy/model/Client.java create mode 100644 src/main/java/org/springframework/cheapy/model/FoodOffer.java create mode 100644 src/main/java/org/springframework/cheapy/model/NuOffer.java create mode 100644 src/main/java/org/springframework/cheapy/model/Offer.java create mode 100644 src/main/java/org/springframework/cheapy/model/SpeedOffer.java create mode 100644 src/main/java/org/springframework/cheapy/model/StatusOffer.java create mode 100644 src/main/java/org/springframework/cheapy/model/TimeOffer.java create mode 100644 src/main/java/org/springframework/cheapy/model/User.java diff --git a/src/main/java/org/springframework/cheapy/model/Authorities.java b/src/main/java/org/springframework/cheapy/model/Authorities.java new file mode 100644 index 000000000..7a46d8d28 --- /dev/null +++ b/src/main/java/org/springframework/cheapy/model/Authorities.java @@ -0,0 +1,37 @@ +package org.springframework.cheapy.model; + +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.OneToOne; +import javax.persistence.Table; +import javax.validation.constraints.Size; + +@Entity +@Table(name = "authorities") +public class Authorities extends BaseEntity { + + @OneToOne + @JoinColumn(name = "username") + User user; + + @Size(min = 3, max = 50) + String authority; + + public User getUser() { + return user; + } + + public void setUser(User user) { + this.user = user; + } + + public String getAuthority() { + return authority; + } + + public void setAuthority(String authority) { + this.authority = authority; + } + +} diff --git a/src/main/java/org/springframework/cheapy/model/Client.java b/src/main/java/org/springframework/cheapy/model/Client.java new file mode 100644 index 000000000..06268c32a --- /dev/null +++ b/src/main/java/org/springframework/cheapy/model/Client.java @@ -0,0 +1,94 @@ +package org.springframework.cheapy.model; + +import java.util.Set; + +import javax.persistence.Entity; +import javax.persistence.OneToMany; +import javax.persistence.Table; +import javax.validation.constraints.Digits; +import javax.validation.constraints.NotEmpty; + +@Entity +@Table(name = "clients") +public class Client extends User { + + @NotEmpty + private String address; + + @NotEmpty + private String timetable; + + @NotEmpty + @Digits(fraction = 0, integer = 10) + private String telephone; + + @NotEmpty + private String description; + + @NotEmpty + private String code; + + @NotEmpty + private String food; + + @OneToMany + private Set foodOffers; + + @OneToMany + private Set nuOffers; + + @OneToMany + private Set speedOffers; + + @OneToMany + private Set timeOffers; + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getTimetable() { + return timetable; + } + + public void setTimetable(String timetable) { + this.timetable = timetable; + } + + public String getTelephone() { + return telephone; + } + + public void setTelephone(String telephone) { + this.telephone = telephone; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getFood() { + return food; + } + + public void setFood(String food) { + this.food = food; + } + +} \ No newline at end of file diff --git a/src/main/java/org/springframework/cheapy/model/FoodOffer.java b/src/main/java/org/springframework/cheapy/model/FoodOffer.java new file mode 100644 index 000000000..b82fed73b --- /dev/null +++ b/src/main/java/org/springframework/cheapy/model/FoodOffer.java @@ -0,0 +1,59 @@ +/* + * Copyright 2012-2019 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.cheapy.model; + +import javax.persistence.Entity; +import javax.persistence.Table; +import javax.validation.constraints.NotBlank; + +@Entity +@Table(name = "food_offers") +public class FoodOffer extends Offer { + + @NotBlank + private String food; + + @NotBlank + private String discount; + + @NotBlank + private Integer units; // revisar + + public String getFood() { + return food; + } + + public void setFood(String food) { + this.food = food; + } + + public String getDiscount() { + return discount; + } + + public void setDiscount(String discount) { + this.discount = discount; + } + + public Integer getUnits() { + return units; + } + + public void setUnits(Integer units) { + this.units = units; + } + +} \ No newline at end of file diff --git a/src/main/java/org/springframework/cheapy/model/NuOffer.java b/src/main/java/org/springframework/cheapy/model/NuOffer.java new file mode 100644 index 000000000..05d66a688 --- /dev/null +++ b/src/main/java/org/springframework/cheapy/model/NuOffer.java @@ -0,0 +1,96 @@ +/* + * Copyright 2012-2019 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.cheapy.model; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; +import javax.validation.constraints.NotBlank; + +@Entity +@Table(name = "nu_offers") +public class NuOffer extends Offer { + + @NotBlank + private Integer gold; + + @Column(name = "discount_gold") + @NotBlank + private String discountGold; + + @NotBlank + private Integer silver; + + @Column(name = "discount_silver") + @NotBlank + private String discountSilver; + + @NotBlank + private Integer bronze; + + @Column(name = "discount_bronze") + @NotBlank + private String discountBronze; + + public Integer getGold() { + return gold; + } + + public void setGold(Integer gold) { + this.gold = gold; + } + + public String getDiscountGold() { + return discountGold; + } + + public void setDiscountGold(String discountGold) { + this.discountGold = discountGold; + } + + public Integer getSilver() { + return silver; + } + + public void setSilver(Integer silver) { + this.silver = silver; + } + + public String getDiscountSilver() { + return discountSilver; + } + + public void setDiscountSilver(String discountSilver) { + this.discountSilver = discountSilver; + } + + public Integer getBronze() { + return bronze; + } + + public void setBronze(Integer bronze) { + this.bronze = bronze; + } + + public String getDiscountBronze() { + return discountBronze; + } + + public void setDiscountBronze(String discountBronze) { + this.discountBronze = discountBronze; + } + +} \ No newline at end of file diff --git a/src/main/java/org/springframework/cheapy/model/Offer.java b/src/main/java/org/springframework/cheapy/model/Offer.java new file mode 100644 index 000000000..520ba5b1b --- /dev/null +++ b/src/main/java/org/springframework/cheapy/model/Offer.java @@ -0,0 +1,85 @@ +/* + * Copyright 2012-2019 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.cheapy.model; + +import java.time.LocalDateTime; + +import javax.persistence.Entity; +import javax.persistence.EnumType; +import javax.persistence.Enumerated; +import javax.persistence.ManyToOne; +import javax.persistence.MappedSuperclass; +import javax.persistence.Table; +import javax.validation.constraints.Future; +import javax.validation.constraints.NotBlank; + +import org.springframework.format.annotation.DateTimeFormat; + +@MappedSuperclass +public class Offer extends BaseEntity { + + @DateTimeFormat(pattern = "dd/MM/yyyy HH:mm") + @NotBlank + @Future + private LocalDateTime start; + + @DateTimeFormat(pattern = "dd/MM/yyyy HH:mm") + @NotBlank + @Future + private LocalDateTime end; + + @NotBlank + private String code; + + @Enumerated(value = EnumType.STRING) + private StatusOffer type; + + @ManyToOne + private Client client; + + public LocalDateTime getStart() { + return start; + } + + public void setStart(LocalDateTime start) { + this.start = start; + } + + public LocalDateTime getEnd() { + return end; + } + + public void setEnd(LocalDateTime end) { + this.end = end; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public StatusOffer getType() { + return type; + } + + public void setType(StatusOffer type) { + this.type = type; + } + +} diff --git a/src/main/java/org/springframework/cheapy/model/SpeedOffer.java b/src/main/java/org/springframework/cheapy/model/SpeedOffer.java new file mode 100644 index 000000000..0399d4baf --- /dev/null +++ b/src/main/java/org/springframework/cheapy/model/SpeedOffer.java @@ -0,0 +1,96 @@ +/* + * Copyright 2012-2019 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.cheapy.model; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; +import javax.validation.constraints.NotBlank; + +@Entity +@Table(name = "speed_offers") +public class SpeedOffer extends Offer { + + @NotBlank + private Integer gold; // x minutos + + @Column(name = "discount_gold") + @NotBlank + private String discountGold; + + @NotBlank + private Integer silver; + + @Column(name = "discount_silver") + @NotBlank + private String discountSilver; + + @NotBlank + private Integer bronze; + + @Column(name = "discount_bronze") + @NotBlank + private String discountBronze; + + public Integer getGold() { + return gold; + } + + public void setGold(Integer gold) { + this.gold = gold; + } + + public String getDiscountGold() { + return discountGold; + } + + public void setDiscountGold(String discountGold) { + this.discountGold = discountGold; + } + + public Integer getSilver() { + return silver; + } + + public void setSilver(Integer silver) { + this.silver = silver; + } + + public String getDiscountSilver() { + return discountSilver; + } + + public void setDiscountSilver(String discountSilver) { + this.discountSilver = discountSilver; + } + + public Integer getBronze() { + return bronze; + } + + public void setBronze(Integer bronze) { + this.bronze = bronze; + } + + public String getDiscountBronze() { + return discountBronze; + } + + public void setDiscountBronze(String discountBronze) { + this.discountBronze = discountBronze; + } + +} \ No newline at end of file diff --git a/src/main/java/org/springframework/cheapy/model/StatusOffer.java b/src/main/java/org/springframework/cheapy/model/StatusOffer.java new file mode 100644 index 000000000..b1b0f874b --- /dev/null +++ b/src/main/java/org/springframework/cheapy/model/StatusOffer.java @@ -0,0 +1,5 @@ +package org.springframework.cheapy.model; + +public enum StatusOffer { + active, inactive, hidden +} diff --git a/src/main/java/org/springframework/cheapy/model/TimeOffer.java b/src/main/java/org/springframework/cheapy/model/TimeOffer.java new file mode 100644 index 000000000..05e0e71be --- /dev/null +++ b/src/main/java/org/springframework/cheapy/model/TimeOffer.java @@ -0,0 +1,48 @@ +/* + * Copyright 2012-2019 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.cheapy.model; + +import javax.persistence.Entity; +import javax.persistence.Table; +import javax.validation.constraints.NotBlank; + +@Entity +@Table(name = "time_offers") +public class TimeOffer extends Offer { + + @NotBlank + private String schedule; + + @NotBlank + private String discount; + + public String getSchedule() { + return schedule; + } + + public void setSchedule(String schedule) { + this.schedule = schedule; + } + + public String getDiscount() { + return discount; + } + + public void setDiscount(String discount) { + this.discount = discount; + } + +} \ No newline at end of file diff --git a/src/main/java/org/springframework/cheapy/model/User.java b/src/main/java/org/springframework/cheapy/model/User.java new file mode 100644 index 000000000..0387edd4d --- /dev/null +++ b/src/main/java/org/springframework/cheapy/model/User.java @@ -0,0 +1,59 @@ +package org.springframework.cheapy.model; + +import javax.persistence.Id; +import javax.persistence.MappedSuperclass; +import javax.persistence.OneToOne; +import javax.validation.constraints.Email; +import javax.validation.constraints.NotBlank; + + +@MappedSuperclass +public class User { + + @Id + @NotBlank + String username; + + @NotBlank + String password; + + @Email + @NotBlank + String email; + + @OneToOne + Authorities authority; + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public Authorities getAuthority() { + return authority; + } + + public void setAuthority(Authorities authority) { + this.authority = authority; + } + +} From 018195af627b12c600466467aab20ef51d68e74d Mon Sep 17 00:00:00 2001 From: Javier Date: Mon, 22 Mar 2021 19:21:44 +0100 Subject: [PATCH 2/5] Entidades creadas --- .../cheapy/model/Authorities.java | 23 ++++--------------- 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/src/main/java/org/springframework/cheapy/model/Authorities.java b/src/main/java/org/springframework/cheapy/model/Authorities.java index 7a46d8d28..9631cc8c3 100644 --- a/src/main/java/org/springframework/cheapy/model/Authorities.java +++ b/src/main/java/org/springframework/cheapy/model/Authorities.java @@ -1,31 +1,18 @@ package org.springframework.cheapy.model; import javax.persistence.Entity; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; -import javax.persistence.OneToOne; +import javax.persistence.Id; import javax.persistence.Table; -import javax.validation.constraints.Size; @Entity @Table(name = "authorities") -public class Authorities extends BaseEntity { +public class Authorities { + + @Id + String username; - @OneToOne - @JoinColumn(name = "username") - User user; - - @Size(min = 3, max = 50) String authority; - public User getUser() { - return user; - } - - public void setUser(User user) { - this.user = user; - } - public String getAuthority() { return authority; } From 98a78f15bd455defee00f14f5bc49cc70acd54a1 Mon Sep 17 00:00:00 2001 From: Javier Date: Mon, 22 Mar 2021 20:32:04 +0100 Subject: [PATCH 3/5] Arreglo de entidades y de la configuracion mysql --- .../springframework/cheapy/model/Offer.java | 2 ++ .../cheapy/model/TimeOffer.java | 19 ++++++++------ .../springframework/cheapy/model/User.java | 3 +-- .../resources/application-mysql.properties | 7 ++++++ src/main/resources/application.properties | 25 +++++++++++-------- src/main/resources/db/mysql/data.sql | 25 +++++++++++-------- 6 files changed, 52 insertions(+), 29 deletions(-) diff --git a/src/main/java/org/springframework/cheapy/model/Offer.java b/src/main/java/org/springframework/cheapy/model/Offer.java index 520ba5b1b..4c3921b1b 100644 --- a/src/main/java/org/springframework/cheapy/model/Offer.java +++ b/src/main/java/org/springframework/cheapy/model/Offer.java @@ -20,6 +20,7 @@ import java.time.LocalDateTime; import javax.persistence.Entity; import javax.persistence.EnumType; import javax.persistence.Enumerated; +import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.MappedSuperclass; import javax.persistence.Table; @@ -48,6 +49,7 @@ public class Offer extends BaseEntity { private StatusOffer type; @ManyToOne + @JoinColumn(name="client_id") private Client client; public LocalDateTime getStart() { diff --git a/src/main/java/org/springframework/cheapy/model/TimeOffer.java b/src/main/java/org/springframework/cheapy/model/TimeOffer.java index 05e0e71be..7f1d3cc6d 100644 --- a/src/main/java/org/springframework/cheapy/model/TimeOffer.java +++ b/src/main/java/org/springframework/cheapy/model/TimeOffer.java @@ -15,27 +15,32 @@ */ package org.springframework.cheapy.model; +import java.time.LocalDateTime; +import java.time.LocalTime; + import javax.persistence.Entity; import javax.persistence.Table; +import javax.validation.constraints.Future; import javax.validation.constraints.NotBlank; +import org.springframework.format.annotation.DateTimeFormat; + @Entity @Table(name = "time_offers") public class TimeOffer extends Offer { + @DateTimeFormat(pattern = "HH:mm") @NotBlank - private String schedule; + private LocalTime init; + + @DateTimeFormat(pattern = "HH:mm") + @NotBlank + private LocalTime finish; @NotBlank private String discount; - public String getSchedule() { - return schedule; - } - public void setSchedule(String schedule) { - this.schedule = schedule; - } public String getDiscount() { return discount; diff --git a/src/main/java/org/springframework/cheapy/model/User.java b/src/main/java/org/springframework/cheapy/model/User.java index 0387edd4d..9420b0deb 100644 --- a/src/main/java/org/springframework/cheapy/model/User.java +++ b/src/main/java/org/springframework/cheapy/model/User.java @@ -8,9 +8,8 @@ import javax.validation.constraints.NotBlank; @MappedSuperclass -public class User { +public class User extends BaseEntity { - @Id @NotBlank String username; diff --git a/src/main/resources/application-mysql.properties b/src/main/resources/application-mysql.properties index 919a0c3aa..ccc6807c3 100644 --- a/src/main/resources/application-mysql.properties +++ b/src/main/resources/application-mysql.properties @@ -5,3 +5,10 @@ spring.datasource.username=${MYSQL_USER:cheapy} spring.datasource.password=${MYSQL_PASS:cheapy} # SQL is written to be idempotent so this is safe spring.datasource.initialization-mode=always + +spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy +spring.jpa.properties.javax.persistence.schema-generation.drop-source=metadata +# Naming strategy +spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy +# Allows Hibernate to generate SQL optimized for a particular DBMS +spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index fbbc46ce3..c93d5eac7 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,23 +1,30 @@ # database init, supports mysql too -database=h2 -spring.datasource.schema=classpath*:db/${database}/schema.sql -spring.datasource.data=classpath*:db/${database}/data.sql - +database=mysql +#spring.datasource.schema=classpath*:db/${database}/schema.sql +spring.datasource.data=classpath*:db/${database}/data.sql +spring.h2.console.enabled=true +spring.profiles.active=mysql # Web spring.thymeleaf.mode=HTML # JPA -spring.jpa.hibernate.ddl-auto=none -spring.jpa.open-in-view=false +spring.jpa.hibernate.ddl-auto=create-drop +spring.jpa.show-sql=true +spring.jpa.properties.hibernate.format_sql=true +spring.jpa.properties.javax.persistence.schema-generation.drop-source=script +spring.jpa.properties.javax.persistence.schema-generation.drop-script-source=drop-tables.sql # Internationalization spring.messages.basename=messages/messages + # Views spring.mvc.view.prefix: /WEB-INF/jsp/ spring.mvc.view.suffix: .jsp -# Actuator + +# Actuator / Management +management.endpoints.web.base-path=/manage management.endpoints.web.exposure.include=* # Logging @@ -26,6 +33,4 @@ logging.level.org.springframework=INFO # logging.level.org.springframework.context.annotation=TRACE # Maximum time static resources should be cached -spring.resources.cache.cachecontrol.max-age=12h - -spring.profiles.active=mysql +spring.resources.cache.cachecontrol.max-age=12h \ No newline at end of file diff --git a/src/main/resources/db/mysql/data.sql b/src/main/resources/db/mysql/data.sql index ff7766e22..b7c6309f9 100644 --- a/src/main/resources/db/mysql/data.sql +++ b/src/main/resources/db/mysql/data.sql @@ -1,10 +1,15 @@ -INSERT IGNORE INTO owners VALUES (1, 'George', 'Franklin', '110 W. Liberty St.', 'Madison', '6085551023'); -INSERT IGNORE INTO owners VALUES (2, 'Betty', 'Davis', '638 Cardinal Ave.', 'Sun Prairie', '6085551749'); -INSERT IGNORE INTO owners VALUES (3, 'Eduardo', 'Rodriquez', '2693 Commerce St.', 'McFarland', '6085558763'); -INSERT IGNORE INTO owners VALUES (4, 'Harold', 'Davis', '563 Friendly St.', 'Windsor', '6085553198'); -INSERT IGNORE INTO owners VALUES (5, 'Peter', 'McTavish', '2387 S. Fair Way', 'Madison', '6085552765'); -INSERT IGNORE INTO owners VALUES (6, 'Jean', 'Coleman', '105 N. Lake St.', 'Monona', '6085552654'); -INSERT IGNORE INTO owners VALUES (7, 'Jeff', 'Black', '1450 Oak Blvd.', 'Monona', '6085555387'); -INSERT IGNORE INTO owners VALUES (8, 'Maria', 'Escobito', '345 Maple St.', 'Madison', '6085557683'); -INSERT IGNORE INTO owners VALUES (9, 'David', 'Schroeder', '2749 Blackhawk Trail', 'Madison', '6085559435'); -INSERT IGNORE INTO owners VALUES (10, 'Carlos', 'Estaban', '2335 Independence La.', 'Waunakee', '6085555487'); +INSERT INTO owners VALUES (1, 'Javi', 'Franklin', '110 W. Liberty St.', 'Madison', '6085551023'); +INSERT INTO owners VALUES (2, 'Betty', 'Davis', '638 Cardinal Ave.', 'Sun Prairie', '6085551749'); +INSERT INTO owners VALUES (3, 'Eduardo', 'Rodriquez', '2693 Commerce St.', 'McFarland', '6085558763'); +INSERT INTO owners VALUES (4, 'Harold', 'Davis', '563 Friendly St.', 'Windsor', '6085553198'); +INSERT INTO owners VALUES (5, 'Peter', 'McTavish', '2387 S. Fair Way', 'Madison', '6085552765'); +INSERT INTO owners VALUES (6, 'Jean', 'Coleman', '105 N. Lake St.', 'Monona', '6085552654'); +INSERT INTO owners VALUES (7, 'Jeff', 'Black', '1450 Oak Blvd.', 'Monona', '6085555387'); +INSERT INTO owners VALUES (8, 'Maria', 'Escobito', '345 Maple St.', 'Madison', '6085557683'); +INSERT INTO owners VALUES (9, 'David', 'Schroeder', '2749 Blackhawk Trail', 'Madison', '6085559435'); +INSERT INTO owners VALUES (10, 'Carlos', 'Estaban', '2335 Independence La.', 'Waunakee', '6085555487'); + + +INSERT INTO food_offers(start, end, code, type, client_id, food, discount, units) VALUES ('2021-06-15 12:00:00', '2021-06-16 12:00:00', 'jkhlljk', 'active', null, 'macarrones', '15%', 10); + +INSERT INTO time_offers(start, end, code, type, client_id, init, finish, discount) VALUES ('2021-06-15 12:00:00', '2021-06-16 12:00:00', 'jkhlljk', 'active', null, '12:00:00', '13:00:00', '10%'); \ No newline at end of file From 0f933acd526cf329c5981189ae2d6f80866c8ff3 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 23 Mar 2021 12:55:11 +0100 Subject: [PATCH 4/5] Primeros cambios en las vistas --- src/main/less/header.less | 18 +++--- src/main/less/petclinic.less | 53 +++++++++++++++--- .../resources/messages/messages_es.properties | 2 +- .../static/resources/images/Logo Cheapy.png | Bin 0 -> 13578 bytes .../static/resources/images/Logo Cheapy2.png | Bin 0 -> 3666 bytes .../resources/images/Logo Cheapy2Negro.png | Bin 0 -> 20838 bytes .../static/resources/images/eslogan.png | Bin 0 -> 5305 bytes .../static/resources/images/favicon.png | Bin 528 -> 15842 bytes .../resources/images/faviconChikito.png | Bin 0 -> 2180 bytes src/main/webapp/WEB-INF/jsp/welcome.jsp | 11 +++- src/main/webapp/WEB-INF/tags/htmlHeader.tag | 4 +- src/main/webapp/WEB-INF/tags/menu.tag | 21 +++---- src/main/webapp/WEB-INF/tags/pivotal.tag | 2 +- 13 files changed, 73 insertions(+), 38 deletions(-) create mode 100644 src/main/resources/static/resources/images/Logo Cheapy.png create mode 100644 src/main/resources/static/resources/images/Logo Cheapy2.png create mode 100644 src/main/resources/static/resources/images/Logo Cheapy2Negro.png create mode 100644 src/main/resources/static/resources/images/eslogan.png create mode 100644 src/main/resources/static/resources/images/faviconChikito.png diff --git a/src/main/less/header.less b/src/main/less/header.less index 7cb1a7888..a9e394b89 100644 --- a/src/main/less/header.less +++ b/src/main/less/header.less @@ -1,6 +1,6 @@ .navbar { - border-top: 4px solid #6db33f; - background-color: #34302d; + border-top: 4px solid rgb(0, 64, 128); + background-color: rgb(40, 140, 215); margin-bottom: 0px; border-bottom: 0; border-left: 0; @@ -8,20 +8,20 @@ } .navbar a.navbar-brand { - background: url("../images/spring-logo-dataflow.png") -1px -1px no-repeat; + background: url("../images/Logo Cheapy2.png") -1px -1px no-repeat; margin: 12px 0 6px; - width: 229px; - height: 46px; + width: 55px; + height: 55px; display: inline-block; text-decoration: none; padding: 0; } .navbar a.navbar-brand span { - display: block; - width: 229px; - height: 46px; - background: url("../images/spring-logo-dataflow.png") -1px -48px no-repeat; + display: inline-block; + width: 55px; + height: 55px; + background: url("../images/Logo Cheapy2Negro.png") -1px -1px no-repeat; opacity: 0; -moz-transition: opacity 0.12s ease-in-out; -webkit-transition: opacity 0.12s ease-in-out; diff --git a/src/main/less/petclinic.less b/src/main/less/petclinic.less index 7c88ec091..775c4b0aa 100644 --- a/src/main/less/petclinic.less +++ b/src/main/less/petclinic.less @@ -13,24 +13,24 @@ */ @icon-font-path: "../../webjars/bootstrap/fonts/"; -@spring-green: #6db33f; -@spring-dark-green: #5fa134; +@spring-blue: rgb(0, 64, 128); +@spring-dark-blue: rgb(0, 0, 128); @spring-brown: #34302D; @spring-grey: #838789; @spring-light-grey: #f1f1f1; @body-bg: @spring-light-grey; @text-color: @spring-brown; -@link-color: @spring-dark-green; -@link-hover-color: @spring-dark-green; +@link-color: @spring-dark-blue; +@link-hover-color: @spring-dark-blue; @navbar-default-link-color: @spring-light-grey; @navbar-default-link-active-color: @spring-light-grey; @navbar-default-link-hover-color: @spring-light-grey; -@navbar-default-link-hover-bg: @spring-green; +@navbar-default-link-hover-bg: @spring-blue; @navbar-default-toggle-icon-bar-bg: @spring-light-grey; @navbar-default-toggle-hover-bg: transparent; -@navbar-default-link-active-bg: @spring-green; +@navbar-default-link-active-bg: @spring-blue; @border-radius-base: 0; @border-radius-large: 0; @@ -38,7 +38,7 @@ @btn-default-color: @spring-light-grey; @btn-default-bg: @spring-brown; -@btn-default-border: @spring-green; +@btn-default-border: @spring-blue; @nav-tabs-active-link-hover-color: @spring-light-grey; @nav-tabs-active-link-hover-bg: @spring-brown; @@ -46,7 +46,7 @@ @nav-tabs-border-color: @spring-brown; @pagination-active-bg: @spring-brown; -@pagination-active-border: @spring-green; +@pagination-active-border: @spring-blue; @table-border-color: @spring-brown; .table > thead > tr > th { @@ -125,7 +125,7 @@ h1 { } .splash { - background: @spring-green; + background: @spring-blue; color: @spring-brown; display: none; } @@ -204,6 +204,41 @@ table td.action-column { color: @spring-brown; } +img.img-responsive{ + display: block; + margin-left: auto; + margin-right: auto +} + +.img-home{ + display: table; + margin: 0 auto; +} + +.btn-home{ + display: table; + margin: 0 auto; +} + +.btn-home button { + background-color: rgb(0, 64, 128); /* Green background */ + border: 1px solid rgb(0, 0, 160); + color: white; + padding: 10px 24px; + cursor: pointer; + width: 100%; + display: block; +} + +.btn-home button:not(:last-child) { + border-bottom: none; +} + + +.btn-home button:hover { + background-color: rgb(0, 64, 128); +} + .alert-success { .alert-variant(fade(@alert-success-bg, 70%); @alert-success-border; @alert-success-text); } diff --git a/src/main/resources/messages/messages_es.properties b/src/main/resources/messages/messages_es.properties index 33ee867b5..bdf81dae7 100644 --- a/src/main/resources/messages/messages_es.properties +++ b/src/main/resources/messages/messages_es.properties @@ -1,4 +1,4 @@ -welcome=Bienvenido +welcome=Bienvenido a required=Es requerido notFound=No ha sido encontrado duplicate=Ya se encuentra en uso diff --git a/src/main/resources/static/resources/images/Logo Cheapy.png b/src/main/resources/static/resources/images/Logo Cheapy.png new file mode 100644 index 0000000000000000000000000000000000000000..a8a181eb871d38408e59f74b3d05f1ed97ca429f GIT binary patch literal 13578 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 -

+

- - +
+ + +
+
+ +
diff --git a/src/main/webapp/WEB-INF/tags/htmlHeader.tag b/src/main/webapp/WEB-INF/tags/htmlHeader.tag index 79f7feeb9..2417673ea 100644 --- a/src/main/webapp/WEB-INF/tags/htmlHeader.tag +++ b/src/main/webapp/WEB-INF/tags/htmlHeader.tag @@ -11,10 +11,10 @@ PetClinic :: a Spring Framework demonstration <%-- The above 4 meta tags *must* come first in the head; any other head content must come *after* these tags --%> - + - PetClinic :: a Spring Framework demonstration + Cheapy : eat fast, eat cheapy <%-- CSS generated from LESS --%> diff --git a/src/main/webapp/WEB-INF/tags/menu.tag b/src/main/webapp/WEB-INF/tags/menu.tag index ad7f36319..b3a7c589e 100644 --- a/src/main/webapp/WEB-INF/tags/menu.tag +++ b/src/main/webapp/WEB-INF/tags/menu.tag @@ -28,22 +28,17 @@ Home - - - Find owners - - - + - Veterinarians + Contáctanos - - - Error + + + + Login diff --git a/src/main/webapp/WEB-INF/tags/pivotal.tag b/src/main/webapp/WEB-INF/tags/pivotal.tag index 8ee35fb1f..23991e12a 100644 --- a/src/main/webapp/WEB-INF/tags/pivotal.tag +++ b/src/main/webapp/WEB-INF/tags/pivotal.tag @@ -4,7 +4,7 @@
-
" +
" alt="Sponsored by Pivotal"/>
From 36b07bc4ddc781069a170a72d10a5cb255c37d1c Mon Sep 17 00:00:00 2001 From: David Date: Tue, 23 Mar 2021 14:08:35 +0100 Subject: [PATCH 5/5] =?UTF-8?q?Algunos=20cambios=20de=20dise=C3=B1o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/less/header.less | 2 +- src/main/less/petclinic.less | 3 ++- src/main/less/responsive.less | 4 ++-- src/main/webapp/WEB-INF/jsp/welcome.jsp | 6 ++++-- src/main/webapp/WEB-INF/tags/menu.tag | 10 ++++++++-- 5 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/main/less/header.less b/src/main/less/header.less index a9e394b89..08066c853 100644 --- a/src/main/less/header.less +++ b/src/main/less/header.less @@ -10,7 +10,7 @@ .navbar a.navbar-brand { background: url("../images/Logo Cheapy2.png") -1px -1px no-repeat; margin: 12px 0 6px; - width: 55px; + width: 70px; height: 55px; display: inline-block; text-decoration: none; diff --git a/src/main/less/petclinic.less b/src/main/less/petclinic.less index 775c4b0aa..0f326f7ed 100644 --- a/src/main/less/petclinic.less +++ b/src/main/less/petclinic.less @@ -213,6 +213,7 @@ img.img-responsive{ .img-home{ display: table; margin: 0 auto; + padding: 20px; } .btn-home{ @@ -221,7 +222,7 @@ img.img-responsive{ } .btn-home button { - background-color: rgb(0, 64, 128); /* Green background */ + background-color: rgb(0, 64, 128); border: 1px solid rgb(0, 0, 160); color: white; padding: 10px 24px; diff --git a/src/main/less/responsive.less b/src/main/less/responsive.less index 8f3b21545..a8874e253 100644 --- a/src/main/less/responsive.less +++ b/src/main/less/responsive.less @@ -9,10 +9,10 @@ .navbar a.navbar-brand { display: block; margin: 0 auto 0 auto; - width: 148px; + width: 50px; height: 50px; float: none; - background: url("../images/spring-logo-dataflow-mobile.png") 0 center no-repeat; + background: url("../images/Logo Cheapy2.png") 0 center no-repeat; } .homepage-billboard .homepage-subtitle { diff --git a/src/main/webapp/WEB-INF/jsp/welcome.jsp b/src/main/webapp/WEB-INF/jsp/welcome.jsp index e9c105d35..0cae0d52e 100644 --- a/src/main/webapp/WEB-INF/jsp/welcome.jsp +++ b/src/main/webapp/WEB-INF/jsp/welcome.jsp @@ -2,10 +2,11 @@ <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="petclinic" tagdir="/WEB-INF/tags" %> + -

+

@@ -13,7 +14,8 @@
- + +
diff --git a/src/main/webapp/WEB-INF/tags/menu.tag b/src/main/webapp/WEB-INF/tags/menu.tag index b3a7c589e..6cda27bee 100644 --- a/src/main/webapp/WEB-INF/tags/menu.tag +++ b/src/main/webapp/WEB-INF/tags/menu.tag @@ -27,10 +27,16 @@ Home - + + + + Ver ofertas + + - + Contáctanos