Coder Social home page Coder Social logo

shiny_ninja's People

Contributors

protoswype avatar sebastianbinder avatar

Watchers

 avatar  avatar  avatar

shiny_ninja's Issues

Time-Evaluator: Project entfernen

Der Button "projekt entfernen" ist zwar vorhanden, aber das Projekt wird nicht gelöscht. Link ist falsch Methode (destroy) wird gar nicht erst aufgerufen.

Problem mit Gehältern

Ich bleibe leider zur Zeit immer wieder daran hängen, dass ich nur ein Projekt so richtig verwalten kann wg. der Gehaltsberechnungen.

Problem: Verschiedene Stundenlöhne bei verschiedenen Projekten obwohl gleiche Arbeit. Oft wird ja ein Stundenlohn im Rahmen des Projekts ausgemacht und nicht für jede einzelne Tätigkeit (wobei dieser Punkt auch wichtig ist).

Vorschlag:

  • Projekt bekommt ein neues Feld "Stundenlohn"
  • in den Tätigkeiten soll konfiguriert werden können, ob
    • der Stundenlohn von der Projekteinstellung verwendet werden soll (Standardeinstellung)
    • der Stundenlohn von der Tätigkeitsseite (wie aktuell) verwendet werden soll (aktuelles Lohnfeld findet somit hier weiterhin Verwendung)
    • die Entlohnung vielleicht einen Festpreis hat (also nicht mit Stunden abgerechnet wird) - dieser wird dann ebenfalls auf der Tätigkeitsseite im aktuell vorhandenen Feld eingetragen - jedoch wird dieser bei einem Eintrag in den Tätigkeiten dann unabhängig von den Stunden berechnet

Kunde Zeitbudgetfunktion

  • Ein Zeitbudgetfeld für Kunden hinzufügen (analog Projekt).
  • Statistik (Gearbeitet für Kunden / Zeitbudget)

Fehlermeldung für inkompatible Browser

Beim Internet Explorer 11 heißt die Fehlermeldung: "Achtung! Sie benutzen Other 0. Bitte wechseln Sie zu einer neueren Version ihres Browser für maximale Funktionalität." "Other 0" sollte eigentlich den Browser und die Versionsnummer zeigen bzw. beim Internet Explorer, dass möglicherweise Funktionen nicht verfügbar sind (https://github.com/prog4fun/shiny_ninja/blob/master/app/controllers/indices_controller.rb#L54-L60).
Möglicher Grund: das benutzte Gem kennt den Brwoser noch nicht.

report/new nach speichern wieder report/new - bereits gefüllt

da #3 ja noch in weiter ferne ist, kann man überlegen, ob man einen zweiten submit-button "speichern und neu" realisieren kann, der statt auf die report/show zu leiten, wieder auf report/new zeigt und dann das soeben verwendete und projekt schon vorausgewählt hat, sodass man nur noch auf die schnelle zeit und tätigkeit eintragen muss und dann kann es schon weitergehen...

Suchfelder - Datepicker

Ich weiß nicht wie es bei Android ist, aber bei iOS benötigt man den Datepicker nicht, wenn man bei den Feldern statt type="text" einfach type="date" verwendet. Das ist HTML5 konform und würde auf mobilen Geräten den Datepicker überflüssig machen - dieser ist auch auf kleinen Geräten recht schwer zu bedienen...

So würde es mit type="date" am iPhone aussehen:
bildschirmfoto 2013-08-28 um 16 20 53
bildschirmfoto 2013-08-28 um 16 21 25

Feature: Bootstrap PopOvers in Reports

Ist die Frage, ob das jetzt eine große Verbesserung gegenüber vorher darstellt (höchstens vielleicht in der mobilen Ansicht), aber du kannst es ja dir mal anschauen und dann entscheiden, ob es in den master integriert werden soll... Schafft höchstens ein bisschen mehr Übersicht in der Liste...
bildschirmfoto 2013-09-30 um 12 17 32
bildschirmfoto 2013-09-30 um 12 17 15

Menü in mobiler Ansicht

Vorschlag: Die Buttons für den eigenen Account und zum abmelden in der mobilen Ansicht entweder ordentlich positionieren oder Menüpunkte erstellen, die nur angezeigt werden, wenn man innerhalb dieses Breakpoints ist:
bildschirmfoto 2013-08-28 um 15 56 06
Mit richtigem Menü beim Breakpoint:
bildschirmfoto 2013-08-28 um 15 56 31
Ich wüsste wie das zu lösen wäre, aber dann müsste man sich das noch mit dem Login-Formular überlegen. Weil das würde dann auch nicht mehr angezeigt werden -> einfach dann auf die Login-Seite verlinken oder möchtest du eher ein Formular im Menü direkt haben?

Report Edit: Datum

Bei der Report Edit wird das Datum gelöscht, sollte es aber nicht werden. Problem: Beim Ändern von z.B. dem Projekt ist das Datum nicht mehr vorhanden und der Report hat kann nicht gespeichert werden.

layouts/_navigation.html.erb: verkürzen möglich?

# encoding: UTF-8

<%  if @active_menu == "report" %>
  <li class="active"><%= link_to t('activerecord.models.reports'), reports_path, :class => "nav" %></li>
<% else %>
  <li class="nav"><%= link_to t('activerecord.models.reports'), reports_path %></li>
<% end %>


<% if user_signed_in? %>
  <% @active_menu == "user" ? css_user_class = "active":css_user_class = "nav"  %>
  <% if current_user.is? :administrator %>

    <%  if @active_menu == "project" %>
      <li class="active"><%= link_to t('activerecord.models.projects'), projects_path %></li>
    <% else %>
      <li class="nav"><%= link_to t('activerecord.models.projects'), projects_path %></li>
    <% end %>

    <%  if @active_menu == "customer" %>
      <li class="active"><%= link_to t('activerecord.models.customers'), customers_path %></li>
    <% else %>
      <li class="nav"><%= link_to t('activerecord.models.customers'), customers_path %></li>
    <% end %>

    <%  if @active_menu == "service" %>
      <li class="active"><%= link_to t('activerecord.models.services'), services_path %></li>
    <% else %>
      <li class="nav"><%= link_to t('activerecord.models.services'), services_path %></li>
    <% end %>

    <li class=<%= css_user_class %>><%= link_to t('activerecord.models.users'), :controller => "users", :action => "adm_index" %></li>


  <% elsif current_user.is? :time_tracker %>

    <%  if @active_menu == "project" %>
      <li class="active"><%= link_to t('activerecord.models.projects'), projects_path %></li>
    <% else %>
      <li class="nav"><%= link_to t('activerecord.models.projects'), projects_path %></li>
    <% end %>

    <%  if @active_menu == "customer" %>
      <li class="active"><%= link_to t('activerecord.models.customers'), customers_path %></li>
    <% else %>
      <li class="nav"><%= link_to t('activerecord.models.customers'), customers_path %></li>
    <% end %>

    <%  if @active_menu == "service" %>
      <li class="active"><%= link_to t('activerecord.models.services'), services_path %></li>
    <% else %>
      <li class="nav"><%= link_to t('activerecord.models.services'), services_path %></li>
      <% end %>

    <li class=<%= css_user_class %>><%= link_to t('labels.roles.projectevaluator'), :controller => "users", :action => "tt_index" %></li>


    <%# else   project_evaluator and not logged in%>
  <% end %>
<% end %>

Könnte man das nicht auch so schreiben:

# encoding: UTF-8

  <li class='<% if @active_menu == "report" ? "active" : "nav" %>'><%= link_to t('activerecord.models.reports'), reports_path, :class => "nav" %></li>

<% if user_signed_in? %>
  <% @active_menu == "user" ? css_user_class = "active":css_user_class = "nav"  %>
  <% if current_user.is? :administrator || :time_tracker %>

      <li class='<% if @active_menu == "project" ? "active" : "nav" %>'><%= link_to t('activerecord.models.projects'), projects_path %></li>

      <li class='<% if @active_menu == "customer" ? "active" : "nav" %>'><%= link_to t('activerecord.models.customers'), customers_path %></li>

      <li class='<% if @active_menu == "service" ? "active" : "nav" %>'><%= link_to t('activerecord.models.services'), services_path %></li>

      <li class='<% if @active_menu == "users/tt_index" ? "active" : "nav" %>'><%= link_to t('labels.roles.projectevaluator'), :controller => "users", :action => "tt_index" %></li>

    <% elsif current_user.is? :administrator %>

    <li class='<% if @active_menu == "users/adm_index" ? "active" : "nav" %>'><%= link_to t('activerecord.models.users'), :controller => "users", :action => "adm_index" %></li>

    <%# else   project_evaluator and not logged in%>
  <% end %>
<% end %>

sollte doch, oder?
am Ende bei active_menu == "users/tt_index und active_menu == "users/adm_index hatte ich aber keine ahnung, ob das überhaupt so gehen könnte - bzw. eigentlich habe ich ja noch gar keine richtige ahnung was ich hier eigentlich mache........

Rechnungszeitraum nicht nur pro Monat

Bei Rechnungen sollte der Zeitraum nicht nur für einzelne Monate auswählbar sein, sondern ein variabler Zeitraum, wie z.B. 01.11.2013 - 15.12.2013. Das erste Datum könnte anhand des Enddatums der vorherigen Rechnung automatisch vorausgewählt werden.

E-Mail-Icon bei E-Mail-Eingabefeldern irritierend

Das E-Mail-Icon bei E-Mail-Feldern irritiert mich dahingehend, dass es ein @-Symbol ist. Ich neige dadurch dazu, dass ich nur den Teil meiner E-Mail, der nach dem @ kommt, eintrage. Es suggeriert mir, dass der vordere Teil automatisch ergänzt wird.
Evtl. kann man hier einen Briefumschlag als Symbol verwenden?

Kontodaten in /users

Die Frage inwieweit sowas realisierbar ist, aber immerhin stehen ja dort Kontodaten... Übertragung per verschlüsselter Verbindung hier schon mal angedacht? Bzw. eigentlich sollten ja Kontodaten auch nicht offen in der Datenbank rumstehen, oder? Sollte man evtl. dort auch nur verschlüsselt eintragen. Und generell ist ja ab Januar mit Konto, BLZ und Bank eh Schluss. Dann gibt es ja nur noch IBAN (und zusätzlich BIC für Auslandsüberweisungen)...

Internet Explorer Benutzung

Da ein paar Sachen (eg. Responsive Design) im Internet Explorer nicht unterstützt werden, ich ihn aber auch nicht so gerne habe, werde ich auf der Startseite eine Meldung anzeigen lasen. Vorschlag: NUR auf der Login Seite, da es mir nicht mal die IF abfrage auf jeder Seite wert ist :D
Abfrage erfolgt sehr wahrscheinlich über https://github.com/fnando/browser

SQL-Where

Was ist die beste möglichkeit folgendes "SQL-Injection"-sicher zu schreiben:

brands = Brand.where('country_id = ?', 5)
cars = Car.where(:brand_id => brands)

Die zweite Zeile ist nicht gegen SQL-Injections geschützt (http://www.w3schools.com/sql/sql_injection.asp). Sie müsste wie die erste Zeile als cars = Car.where('brand_id = ?', brands) geschrieben werden. Das ist jedoch nicht möglich.

Statistik in Sidebar

Vorschlag:

Unterhalb der Suche bei den Zeit-Einträgen einen Punkt "Statistik" mit den Inhalten:

aktueller Monat:
Stundenzahl: X
Umsatz: X

letzter Monat:
Stundenzahl: X
Umsatz: X

Vielleicht gleich noch gefiltert, wenn man in der Suche was eingegeben hat, also Kunde oder Projekt - und falls Datum genauer spezifiziert noch einen zusätzlichen Punkt:

ausgewählter Zeitraum:
Stundenzahl: X
Umsatz: X

Datepicker falsches Datum

Der Datepicker errechnet das falsche Datum, sobald der Browser nicht mehr auf Deutsch eingestellt ist. Tag wird zum Monat und Monat wird zum Tag.
screenshot from 2014-03-07 13 55 26
screenshot from 2014-03-07 13 56 31
Falls das 'umgedrehte' Datum nicht möglich ist, bspw. 05.13.2014, läuft die Applikation in einen Error.

Login-Seite bei falschem Login

Die Seite ist noch nicht ins Bootstrap-Design übernommen. Macht die Seite überhaupt Sinn oder reicht die Fehlermeldung. Man kann es ja auch in der Menüleiste nochmal probieren.

Save and New with Validation Error

Wird ein Report gespeichert (new), jedoch ein Fehler auftritt, bspw. Projekt leer gelassen, wird der Save and New Butten nicht mehr gerendert,

Auswerter: Gleicher Benutzer für verschiedene Zeiterfasser

Vorschlag: den Auswertern IDs der Projekte auf die sie Zugriff haben in eine Zelle in der Datenbank schreiben.
Beim Erstellen eines Auswerters zwei Schritte:

  1. Nur E-Mail-Adresse eingeben, dann prüfen ob vorhanden.

Falls Ja:
2a: ID des Projekts wird in die Datenbank geschrieben, Meldung dass der Benutzer nun berechtigt ist

Falls Nein:
2b: Benutzer noch nicht vorhanden, deswegen Benutzerdaten abfragen und dann den neuen Benutzer berechtigen.

Alerts anpassen

BISHER:

# encoding: UTF-8

<% if notice.present? %>
  <div class="container">
    <div class="alert-success">
      <button type="button" class="close" data-dismiss="alert">&times;</button>
      <%= notice %>
    </div>
  <% end %>

  <% if alert.present? %>
    <div class="alert alert-error">
      <button type="button" class="close" data-dismiss="alert">&times;</button>
      <%= alert %>
    </div>
  </div>
<% end %>

NEU:

# encoding: UTF-8

<% if notice.present? %>
    <div class="alert alert-success">
      <button type="button" class="close" data-dismiss="alert">&times;</button>
      <%= notice %>
    </div>
  <% end %>

  <% if alert.present? %>
    <div class="alert alert-danger">
      <button type="button" class="close" data-dismiss="alert">&times;</button>
      <%= alert %>
    </div>
<% end %>

Archivieren Funktion

Eine Funktion, um Projekte zu Archivieren = nicht mehr anzeigen. Archivierte Objekte können auf der Index-Seite eingeblendet werden.

  • Neue Spalte für Projekte = "archived" (boolean)
  • Neue Spalte für Reports = "archived" (boolean)
  • Projekt-Views
  • Report Archiv Funktion
  • Report Archiv Filter
  • Wenn Projekt archiviert wird, werden auch alle seine Reports archiviert.
  • Project Evaluators sehen den Unterschied nicht. Außerdem müssen sie vorerst aktiv aus dem Projekt gelöscht werden, damit sie keinen Zugriff mehr auf das Projekt haben.
  • Dropbdown in denen Projekte vorkomen anpassen
  • Evtl. auch für Kunden/Tätigkeiten/Rechnungen

Rechnungen

Generell sollen irgendwann Rechnungen automatisch als pdf generierbar sein. Nachdem das noch dauert würde ich schon mal das Model usw. erstellen, indem man Rechnungen anlegen kann. Hat derzeit wahrscheinlich noch keinen großen Mehrwert, aber es wäre einge gute Vorbereitung und ich muss mir keine Rechnungsnummern mehr ausdenken. Außerdem würde ich zudem den Status bezahlt/nicht bezahlt einführen. Ansonsten habe ich nämlich bald auch keine Überblick mehr ;)

reports/index: Tätigkeit auch wenn nicht project_evaluator

https://github.com/prog4fun/shiny_ninja/blob/master/app/views/reports/index.html.erb#L41

<% if current_user.is? :project_evaluator %>
     <td><%= truncate(report.project.name, :length => 10) %></td>
<% else %>
     <td><%= report.service.wage %></td>
<% end %>

Mir werden hier nicht die Bezeichnungen der Tätigkeit angezeigt.
Sinn ist doch, dass Auswerter den Stundenlohn nicht sehen, oder? Weil für sich selbst macht es ja schon irgendwie Sinn, den Namen der Tätigkeit anzuzeigen. Könnte man es dann nicht so schreiben?

<td><%= truncate(report.project.name) %></td>          
<% unless current_user.is? :project_evaluator %>
     <td><%= report.service.wage %></td>
<% end %>

Und bei truncate würde ich vielleicht gleich die Längenangabe weglassen, dann sollte es ja in den Standard bei truncate von 30 Zeichen fallen... Ist meiner Meinung nach geeigneter als 10 Zeichen...

E-Mail Felder

E-Mails in Shows verlinken, sodass man auf sie drauf klicken kann.

Falsches Datum

In Report New ist nicht immer das korrekte (heutige) Datum angezeugt.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.