Log Rating + Create Table bugfix
This commit is contained in:
		@@ -102,3 +102,8 @@ rcalzeitallerlogs = Berechnete Zeit aller Logs:
 | 
			
		||||
calstreckeallerloggs = Berechnete Strecke aller Touren:
 | 
			
		||||
rdaten = Daten
 | 
			
		||||
rsummrepo = Zusammengefasster Report
 | 
			
		||||
 | 
			
		||||
bewertung = Bewertung
 | 
			
		||||
bewertungmsg = Bitte die Bewertung zwischen 0 und 5 eingeben
 | 
			
		||||
bewertungeror = Bitte nur Bewertungen von 0 und 5 eingeben
 | 
			
		||||
bewertungerror2 = Bitte nur Zahlen zum Bewerten
 | 
			
		||||
@@ -103,3 +103,8 @@ rcalzeitallerlogs = Calculated time of all logs:
 | 
			
		||||
calstreckeallerloggs = Calculated distance  of all logs:
 | 
			
		||||
rdaten = Data
 | 
			
		||||
rsummrepo = Summary Report
 | 
			
		||||
 | 
			
		||||
bewertung = Rating
 | 
			
		||||
bewertungmsg = Please enter a rating from 0 to 5
 | 
			
		||||
bewertungeror = Please enter only a rating from 0 to 5
 | 
			
		||||
bewertungerror2 = Please only enter numbers for rating
 | 
			
		||||
@@ -37,7 +37,7 @@ public class DbConnect {
 | 
			
		||||
        errors.add(PostgresHelper.executeUpdateMessage("create table tour ( tourname varchar not null, dauer decimal, mapjson varchar, start varchar, ziel varchar, strecke decimal);", "Tour Table created"));
 | 
			
		||||
        errors.add(PostgresHelper.executeUpdateMessage("create unique index tour_tourname_uindex on tour (tourname);", "Tour Table unique created"));
 | 
			
		||||
        errors.add(PostgresHelper.executeUpdateMessage("alter table tour add constraint tour_pk primary key (tourname);", "Tour Table primary created"));
 | 
			
		||||
        errors.add(PostgresHelper.executeUpdateMessage("create table log(tourname varchar constraint log_tour_tourname_fk references tour,id varchar,bemerkung varchar,datum date,strecke decimal,avg decimal,hightmeter decimal,pause decimal,gegangen decimal,dauer decimal);", "Log Table created"));
 | 
			
		||||
        errors.add(PostgresHelper.executeUpdateMessage("create table log(tourname varchar constraint log_tour_tourname_fk references tour,id varchar,bemerkung varchar,datum date,strecke decimal,avg decimal,hightmeter decimal,pause decimal,gegangen decimal,dauer decimal,rating varchar);", "Log Table created"));
 | 
			
		||||
        return !errors.contains(false);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -102,7 +102,7 @@ public class DbConnect {
 | 
			
		||||
    public ArrayList<Log> getLogs(String tourname){
 | 
			
		||||
 | 
			
		||||
        this.c = PostgresHelper.con();
 | 
			
		||||
        String id, bemerkung ;
 | 
			
		||||
        String id, bemerkung, rating;
 | 
			
		||||
        double dauer, strecke, pause, gegangen, avg, hightmeter;
 | 
			
		||||
        Date datum;
 | 
			
		||||
 | 
			
		||||
@@ -113,15 +113,14 @@ public class DbConnect {
 | 
			
		||||
            while (rs.next()) {
 | 
			
		||||
                id = rs.getString("id");
 | 
			
		||||
                bemerkung = rs.getString("bemerkung");
 | 
			
		||||
                rating = rs.getString("rating");
 | 
			
		||||
                datum = rs.getDate("datum");
 | 
			
		||||
                dauer = rs.getDouble("dauer");
 | 
			
		||||
//                avg = rs.getDouble("avg");
 | 
			
		||||
                hightmeter = rs.getDouble("hightmeter");
 | 
			
		||||
                pause = rs.getDouble("pause");
 | 
			
		||||
//                gegangen = rs.getDouble("gegangen");
 | 
			
		||||
                strecke = rs.getDouble("strecke");
 | 
			
		||||
                if (!tourname.isEmpty()) {
 | 
			
		||||
                    logs.add(new Log(id, dauer, datum.toLocalDate(), strecke, bemerkung,hightmeter, pause));
 | 
			
		||||
                    logs.add(new Log(id, dauer, datum.toLocalDate(), strecke, bemerkung,hightmeter, pause, rating));
 | 
			
		||||
                }else {
 | 
			
		||||
                    return null;
 | 
			
		||||
                }
 | 
			
		||||
@@ -145,13 +144,15 @@ public class DbConnect {
 | 
			
		||||
     */
 | 
			
		||||
    public boolean addLog(String tourname, Log log){
 | 
			
		||||
        if(Double.isInfinite(log.getAvgspeed())) log.setAvgspeed(-1.0);
 | 
			
		||||
        return PostgresHelper.executeUpdate("INSERT INTO public.log (tourname, id, bemerkung, datum, strecke, avg, hightmeter, pause, gegangen, dauer) VALUES ('"+tourname+"', '"+log.getId()+"', '"+log.getBemerkung()+"', '"+log.getDatum()+"', "
 | 
			
		||||
                +log.getStrecke()+", "+log.getAvgspeed()+", "+log.getHightmeter()+", "+log.getPause()+", "+log.getGegangen()+", "+log.getDauer()+")");
 | 
			
		||||
        System.out.println("INSERT INTO public.log (tourname, id, bemerkung, datum, strecke, avg, hightmeter, pause, gegangen, dauer, rating) VALUES ('"+tourname+"', '"+log.getId()+"', '"+log.getBemerkung()+"', '"+log.getDatum()+"', "
 | 
			
		||||
                +log.getStrecke()+", "+log.getAvgspeed()+", "+log.getHightmeter()+", "+log.getPause()+", "+log.getGegangen()+", "+log.getDauer()+",'"+log.getRating()+"')");
 | 
			
		||||
        return PostgresHelper.executeUpdate("INSERT INTO public.log (tourname, id, bemerkung, datum, strecke, avg, hightmeter, pause, gegangen, dauer, rating) VALUES ('"+tourname+"', '"+log.getId()+"', '"+log.getBemerkung()+"', '"+log.getDatum()+"', "
 | 
			
		||||
                +log.getStrecke()+", "+log.getAvgspeed()+", "+log.getHightmeter()+", "+log.getPause()+", "+log.getGegangen()+", "+log.getDauer()+",'"+log.getRating()+"')");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public boolean editLog(String tourname, Log log){
 | 
			
		||||
        return PostgresHelper.executeUpdate("UPDATE public.log SET bemerkung = '"+log.getBemerkung()+"', datum = '"+log.getDatum()+"', strecke = "+log.getStrecke()+", avg = "+log.getAvgspeed()+", hightmeter = "+
 | 
			
		||||
                log.getHightmeter()+", pause = "+log.getPause()+", gegangen = "+log.getGegangen()+", dauer = "+log.getDauer()+" WHERE tourname = '"+tourname+"' and id = '"+log.getId()+"'");
 | 
			
		||||
                log.getHightmeter()+", pause = "+log.getPause()+", gegangen = "+log.getGegangen()+", dauer = "+log.getDauer()+" WHERE tourname = '"+tourname+"' and id = '"+log.getId()+"', rating = '"+log.getRating()+"'");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public boolean delLog(String tourname, String id){
 | 
			
		||||
 
 | 
			
		||||
@@ -6,11 +6,11 @@ import java.time.LocalDate;
 | 
			
		||||
import java.util.Date;
 | 
			
		||||
 | 
			
		||||
public class Log {
 | 
			
		||||
    private String id, bemerkung;
 | 
			
		||||
    private String id, bemerkung, rating;
 | 
			
		||||
    private LocalDate datum;
 | 
			
		||||
    private double strecke, avgspeed, hightmeter, pause, dauer, gegangen;
 | 
			
		||||
 | 
			
		||||
    public Log(String id, double dauer, LocalDate datum, double strecke, String bemerkung, double hightmeter, double pause) {
 | 
			
		||||
    public Log(String id, double dauer, LocalDate datum, double strecke, String bemerkung, double hightmeter, double pause, String rating) {
 | 
			
		||||
        this.id = id;
 | 
			
		||||
        this.dauer = dauer;
 | 
			
		||||
        this.datum = datum;
 | 
			
		||||
@@ -18,13 +18,22 @@ public class Log {
 | 
			
		||||
        this.bemerkung = bemerkung;
 | 
			
		||||
        this.hightmeter = hightmeter;
 | 
			
		||||
        this.pause = pause;
 | 
			
		||||
        this.rating = rating;
 | 
			
		||||
        this.gegangen = this.dauer - this.pause;
 | 
			
		||||
        this.avgspeed = this.strecke / (this.gegangen);
 | 
			
		||||
        this.avgspeed = this.strecke / (this.gegangen/60);
 | 
			
		||||
        if(Double.isInfinite(this.avgspeed)){
 | 
			
		||||
            this.avgspeed = -1;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getRating() {
 | 
			
		||||
        return rating;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setRating(String rating) {
 | 
			
		||||
        this.rating = rating;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getBemerkung() {
 | 
			
		||||
        return bemerkung;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@ import java.util.concurrent.atomic.AtomicReference;
 | 
			
		||||
 * Model einer Tour
 | 
			
		||||
 */
 | 
			
		||||
public class Tour {
 | 
			
		||||
    private String dauer, mapJson, name, start, ziel;
 | 
			
		||||
    private String dauer, mapJson, name, start, ziel, rating;
 | 
			
		||||
    private double strecke;
 | 
			
		||||
    private ArrayList<Log> log;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -193,6 +193,7 @@
 | 
			
		||||
                                          <TableColumn fx:id="logPauseCol" minWidth="-1.0" prefWidth="-1.0" text="Davon Pause" />
 | 
			
		||||
                                          <TableColumn fx:id="logGegangenCol" minWidth="-1.0" prefWidth="-1.0" text="Davon Unterwegs" />
 | 
			
		||||
                                          <TableColumn fx:id="logBemerkungCol" minWidth="-1.0" prefWidth="-1.0" text="Bemerkung" />
 | 
			
		||||
                                          <TableColumn fx:id="logRatingCol1" minWidth="-1.0" prefWidth="-1.0" text="Rating" />
 | 
			
		||||
                                      </columns>
 | 
			
		||||
                                       <columnResizePolicy>
 | 
			
		||||
                                          <TableView fx:constant="CONSTRAINED_RESIZE_POLICY" />
 | 
			
		||||
 
 | 
			
		||||
@@ -34,7 +34,7 @@ public class TourplanerController implements Initializable {
 | 
			
		||||
    public ImageView mapImageView;
 | 
			
		||||
    //Log -> rechts unten
 | 
			
		||||
    public TableView<Log> logTableView;
 | 
			
		||||
    public TableColumn<Log, String> logDauerCol, logStreckeCol, logDatumCol, logAvgCol, logHightCol, logPauseCol, logGegangenCol, logBemerkungCol;
 | 
			
		||||
    public TableColumn<Log, String> logDauerCol, logStreckeCol, logDatumCol, logAvgCol, logHightCol, logPauseCol, logGegangenCol, logBemerkungCol, logRatingCol1;
 | 
			
		||||
    //Menue
 | 
			
		||||
    public CheckMenuItem openmap, openpdf;
 | 
			
		||||
    public RadioMenuItem langenglisch, langdeutsch;
 | 
			
		||||
@@ -154,6 +154,7 @@ public class TourplanerController implements Initializable {
 | 
			
		||||
        logPauseCol.setCellValueFactory(new PropertyValueFactory<Log, String>("pause"));
 | 
			
		||||
        logGegangenCol.setCellValueFactory(new PropertyValueFactory<Log, String>("gegangen"));
 | 
			
		||||
        logBemerkungCol.setCellValueFactory(new PropertyValueFactory<Log, String>("bemerkung"));
 | 
			
		||||
        logRatingCol1.setCellValueFactory(new PropertyValueFactory<Log, String>("rating"));
 | 
			
		||||
        progressBar.addProgress(10);
 | 
			
		||||
        mapImageView.setImage(this.viewModel.getImage(this.viewModel.getSelectedTour().getName()));
 | 
			
		||||
        if(this.viewModel.isSucheAktiv()){
 | 
			
		||||
@@ -303,6 +304,8 @@ public class TourplanerController implements Initializable {
 | 
			
		||||
        this.tourreport.setText(ConfigHelper.getLangIniString("frepotour"));
 | 
			
		||||
        this.beendenButton.setText(ConfigHelper.getLangIniString("fbeenden"));
 | 
			
		||||
        this.sucheInput.setPromptText(ConfigHelper.getLangIniString("fsuche")+ConfigHelper.getLangIniString("fpunkte"));
 | 
			
		||||
 | 
			
		||||
        this.logRatingCol1.setText("Rating");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @FXML
 | 
			
		||||
 
 | 
			
		||||
@@ -213,6 +213,7 @@ public class ViewModel {
 | 
			
		||||
                double dauer = dauerInput(this.selectedLog.getDauer());
 | 
			
		||||
                double strecke = -1;
 | 
			
		||||
                double pause = -1.0;
 | 
			
		||||
                double rating = -1.0;
 | 
			
		||||
                double hightmeter = -1.0;
 | 
			
		||||
                boolean bemerkung = false;
 | 
			
		||||
                LocalDate datum = null;
 | 
			
		||||
@@ -227,7 +228,9 @@ public class ViewModel {
 | 
			
		||||
                                if (bemerkung) {
 | 
			
		||||
                                    datum = dateInput(this.selectedLog.getDatum());
 | 
			
		||||
                                    if (datum != null) {
 | 
			
		||||
                                        Log newLog = new Log(this.selectedLog.getId(), dauer, datum, strecke, this.neueBemerkung, hightmeter, pause);
 | 
			
		||||
                                        rating = ratingInput(this.selectedLog.getRating());
 | 
			
		||||
                                        if(rating >= 0.0) {
 | 
			
		||||
                                            Log newLog = new Log(this.selectedLog.getId(), dauer, datum, strecke, this.neueBemerkung, hightmeter, pause, rating + "");
 | 
			
		||||
                                            this.logData.removeIf(ld -> ld.getId().equals(this.selectedLog.getId()));
 | 
			
		||||
                                            this.logData.add(newLog);
 | 
			
		||||
//                                tourAkt.get().delLog(this.selectedLog.getId());
 | 
			
		||||
@@ -241,6 +244,7 @@ public class ViewModel {
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }else{
 | 
			
		||||
                //Kein log
 | 
			
		||||
                AlertHelper.warn(ConfigHelper.getLangIniString("achtung"), ConfigHelper.getLangIniString("keinlogselected"), ConfigHelper.getLangIniString("keinlogselectedmsg"));
 | 
			
		||||
@@ -279,6 +283,30 @@ public class ViewModel {
 | 
			
		||||
                        ConfigHelper.getLangIniString("doppelpunkt"), realcontent);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Eingabe des Ratings bis sie korrekt ist
 | 
			
		||||
     * @param content Wenn der Content -1.0 ist, wird er nicht in das input feld eingeschleust, sonst schon
 | 
			
		||||
     * @return Die eingegebene des Ratings
 | 
			
		||||
     */
 | 
			
		||||
    private double ratingInput(String content){
 | 
			
		||||
        String realcontent = "";
 | 
			
		||||
        if (!content.isEmpty()){
 | 
			
		||||
            realcontent = content + "";
 | 
			
		||||
        }
 | 
			
		||||
        double input = -1;
 | 
			
		||||
        while(input <= 0) {
 | 
			
		||||
            input = AlertHelper.inputNumber(ConfigHelper.getLangIniString("bewertung"),
 | 
			
		||||
                    ConfigHelper.getLangIniString("bewertungmsg"),
 | 
			
		||||
                    ConfigHelper.getLangIniString("bewertung") +
 | 
			
		||||
                            ConfigHelper.getLangIniString("doppelpunkt"), realcontent);
 | 
			
		||||
            if(input < 0 && input > 5){
 | 
			
		||||
                input = -1;
 | 
			
		||||
                AlertHelper.warn(ConfigHelper.getLangIniString("achtung"), ConfigHelper.getLangIniString("bewertungeror"), ConfigHelper.getLangIniString("bewertungeror2"));
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return input;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Datum eingabe bis diese Korrekt ist
 | 
			
		||||
     * @return Das eingegebene korekte Datum
 | 
			
		||||
@@ -340,6 +368,7 @@ public class ViewModel {
 | 
			
		||||
                    double dauer = dauerInput(-1.0);
 | 
			
		||||
                    double strecke, pause, hightmeter;
 | 
			
		||||
                    boolean bemerkung = false;
 | 
			
		||||
                    double rating = -1.0;
 | 
			
		||||
                    LocalDate date = null;
 | 
			
		||||
                    if(dauer >= 0) {
 | 
			
		||||
                        strecke = streckeInput("");
 | 
			
		||||
@@ -352,7 +381,9 @@ public class ViewModel {
 | 
			
		||||
                                     if (bemerkung){
 | 
			
		||||
                                        date = dateInput(LocalDate.now());
 | 
			
		||||
                                        if (date != null) {
 | 
			
		||||
                                            Log newLog = new Log(newId.get(), dauer, date, strecke, this.neueBemerkung, hightmeter, pause);
 | 
			
		||||
                                            rating = ratingInput("");
 | 
			
		||||
                                            if(rating >= 0.0) {
 | 
			
		||||
                                                Log newLog = new Log(newId.get(), dauer, date, strecke, this.neueBemerkung, hightmeter, pause, rating + "");
 | 
			
		||||
                                                this.logData.add(newLog);
 | 
			
		||||
                                                TourPlaner.addLog(this.selectedTour.getName(), newLog);
 | 
			
		||||
                                                s.addLog(newLog);
 | 
			
		||||
@@ -363,6 +394,7 @@ public class ViewModel {
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            });
 | 
			
		||||
            this.neueBemerkung = null;
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user