ACHTUNG. Das ist ein Archiv des alten forum.ruby-portal.de. Die aktuelle Mailingliste gibt es auf lists.ruby-lang.org/pipermail/ruby-de.

NOTICE. This is a ready-only copy of the old forum.ruby-portal.de. You can find the current mailing list at lists.ruby-lang.org/pipermail/ruby-de.

Die Programmiersprache Ruby

Blog|

Forum|

Wiki  


Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]

Ein neues Thema erstellen Auf das Thema antworten  [ 14 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 04 Feb 2014, 14:19 
Offline
Novize

Registriert: 03 Feb 2014, 12:30
Beiträge: 11
Hallo Forum,

Ich stehe wieder vor einem Problem.
Folgendes:

Ich möchte gerade ein Plugin erstellen. Nun habe ich eine Seite dazu gefunden, welche auch
relativ erklärend ist. Ich habe das Tutorial folgendermaßen befolgt.

-----------
1. Generieren des Plugins.




ruby script/rails generate redmine_plugin calendar


2. Bearbeiten der init.rb
-----------

An dieser Stelle dachte ich ich bin fertig, und würde gerne anfangen.
Leider ist die Anleitung für "mich" nicht sehr verständlich.
Mein Plugin soll sich auf den Kalender beziehen, und dort mehrere Funktionen
hinzufügen.

Wisst Ihr wie ich nun weiter vorgehen soll ?

---
Gruß Elias35


Zuletzt geändert von NobbZ am 05 Feb 2014, 10:48, insgesamt 2-mal geändert.
Topic angepasst


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Probleme beim Plugin erstellen.
BeitragVerfasst: 04 Feb 2014, 14:53 
Offline
Schüler
Benutzeravatar

Registriert: 29 Jan 2014, 14:52
Beiträge: 48
Wohnort: Berlin
Welche Rails Version? Welche Ruby Version?

_________________
Jeeht nich jibbs nich...!
----------------------------------
https://rubygems.org/profiles/friendssystems
https://github.com/florianeck


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Probleme beim Plugin erstellen.
BeitragVerfasst: 04 Feb 2014, 16:12 
Offline
Novize

Registriert: 03 Feb 2014, 12:30
Beiträge: 11
Rails Version: 3.2.15
Ruby Version: 2.0.0p299


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Probleme beim Plugin erstellen.
BeitragVerfasst: 04 Feb 2014, 17:47 
Offline
Schüler
Benutzeravatar

Registriert: 29 Jan 2014, 14:52
Beiträge: 48
Wohnort: Berlin
Und wo steigst du jetzt aus?

Also was genau ist das problem?

Wie soll dein Plug aufgebaut sein? was soll es tun?

_________________
Jeeht nich jibbs nich...!
----------------------------------
https://rubygems.org/profiles/friendssystems
https://github.com/florianeck


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Probleme beim Plugin erstellen.
BeitragVerfasst: 04 Feb 2014, 17:59 
Offline
Novize

Registriert: 03 Feb 2014, 12:30
Beiträge: 11
Ich habe doch alles oben erklärt!?


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Probleme beim Plugin erstellen.
BeitragVerfasst: 04 Feb 2014, 18:06 
Offline
Metaprogrammierer

Registriert: 20 Nov 2011, 21:51
Beiträge: 693
Wenn du ein Rails Plugin erstellen willst, dann ist die von dir verlinkte Anleitung unbrauchbar, sie behandelt das erstellen eines Redmine Plugins.

Und eine Frage, die du nicht beantwortet hast war eben die Frage nach dem Ziel des PlugIns. Es ist schwer den Weg in die richtige Richtung zu zeigen, wenn man dein Ziel nicht kennt. Je nach dem was das Plugin tun soll, gibt es verschiedene Ansätze. Bei Rails wäre da einfach nur Controller und Views zu generieren und sie dann per Gem/Vendor-Dir einzubinden oder bei komplexeren Dingen auf Engines zu gehen, die eine Rails-Anwendung in einer Rails-Anwendung sind und unterhalb eines eigenen "Mount-Punktes" ihre komplett eigene Welt beherrschen.

_________________
Ubuntu Gnome 14.04 LTS
rvm mit App-spezifischer Ruby-Version (meist 2.2.x) und -Gemset

Github ProfilBitbucket Profil


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Probleme beim Plugin erstellen.
BeitragVerfasst: 04 Feb 2014, 18:08 
Offline
Novize

Registriert: 03 Feb 2014, 12:30
Beiträge: 11
Hallo,

Sry total vergessen zu erwähnen. Ich möchte ein Plugin für Redmine erstellen,
was letzendlich die Funktion einbaut in Redmine Kalendereinträge zu erstellen.
Da dies im normalen Redmine Kalender nicht möglich ist.

Gruß Elias35


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Probleme beim Plugin erstellen.
BeitragVerfasst: 05 Feb 2014, 00:17 
Offline
Schüler
Benutzeravatar

Registriert: 29 Jan 2014, 14:52
Beiträge: 48
Wohnort: Berlin
Ich habe mich im speziellen Mit Redmine Plugins nicht befasst, aber was ist den die eigentliche Frage?

Bisher ist die Frage ja nur, was du tun sollst, aber es gibt ja noch gar keinen Ansatz, keine Problemstellung o.ä...? Was ist denn das genaue Problem, ausser das die Anleitung zu kompliziert ist..

Oder anders:

Ohne die genaue Struktur von Redmine im Kopf zu haben gehe ich mal davon aus das es einen bestehenden Kalender gibt.

- Der kann aktuell was?

Du willst Kalendereinträge erstellen... (Zwischenfrage was macht dann der Redmine Kalender?? :roll:

-> Also wirst du in jedem Fall einen Controller und ein Model brauchen....

Das findest du ja auch in dem Tutorial....

Deswegen nochmal die Frage. Was geht nicht? ich würd dir gern helfen, aber im Augenblick fehlt die Basis

_________________
Jeeht nich jibbs nich...!
----------------------------------
https://rubygems.org/profiles/friendssystems
https://github.com/florianeck


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Probleme beim Plugin erstellen.
BeitragVerfasst: 05 Feb 2014, 10:23 
Offline
Novize

Registriert: 03 Feb 2014, 12:30
Beiträge: 11
Ok, danke für deine Mühe.
Ich habe gerade nach Anleitung ein Model und ein Controller erstellst.
Genau es gibt einen bestehenden Redmine-Kalender.
Der Redmine Kalender macht im Moment noch garnichts.
Man kann sich jediglich lehre Felder anschauen, die unbeschriftet sind.
Also ich habe nun nach Anleitung Redmine noch einmal neu erstellt, ein Testprojekt angelegt
, Model und Controller angelegt. Nun weiß ich nicht genau wie ich starten soll wo mein
erster Ansatzpunkt sein soll.

Hast du da einen Vorschlag ( Tipp ) für mich ?

Gruß Elias35


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Probleme beim Plugin erstellen.
BeitragVerfasst: 05 Feb 2014, 10:45 
Offline
Metaprogrammierer

Registriert: 20 Nov 2011, 21:51
Beiträge: 693
Der Redmine-Kalender tut nicht, nichts… Eigentlich sollte er Events anzeigen, wie geplanten Arbeitsbegin und -ende eines Issues, für Meilensteine, etc… Aber du hast recht, es lassen sich keine freien Termine anlegen.

Aber da ein Redmine-Plugin definitiv kein Einsteigerthema ist, werde ich mal verschieben und ich erlaube mir das Topic etwas anzupassen.

_________________
Ubuntu Gnome 14.04 LTS
rvm mit App-spezifischer Ruby-Version (meist 2.2.x) und -Gemset

Github ProfilBitbucket Profil


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Probleme beim Plugin erstellen.
BeitragVerfasst: 05 Feb 2014, 11:20 
Offline
Novize

Registriert: 03 Feb 2014, 12:30
Beiträge: 11
NobbZ hat geschrieben:
Der Redmine-Kalender tut nicht, nichts… Eigentlich sollte er Events anzeigen, wie geplanten Arbeitsbegin und -ende eines Issues, für Meilensteine, etc… Aber du hast recht, es lassen sich keine freien Termine anlegen.

Aber da ein Redmine-Plugin definitiv kein Einsteigerthema ist, werde ich mal verschieben und ich erlaube mir das Topic etwas anzupassen.


Ja genau mein Plan ist es halt Anfang und Endtermin einzugeben und einen Termin anzulegen. Und stimmt das Topic war nicht sehr passend :).


Nach oben
 Profil  
 
BeitragVerfasst: 05 Feb 2014, 12:33 
Offline
Schüler
Benutzeravatar

Registriert: 29 Jan 2014, 14:52
Beiträge: 48
Wohnort: Berlin
also nach kurzen reingucken in den redmine code habe ich den kalender so verstanden, dass dort sowohl die 'issues' als auch die 'versions' in den calender geladen werden.

da der Calender einen setter für events= hat, wäre also rauszufinden wie die Daten die sowohl von Issue als als auch von Version kommen aussehen:

Dazu ein Blick in den View...



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

<%# app/views/common/_calendar.html.erb %>
<% calendar.events_on(day).each do |i| %>
<% if i.is_a? Issue %>
<div class="<%= i.css_classes %> <%= 'starting' if day == i.start_date %> <%= 'ending' if day == i.due_date %> tooltip">
<%= h("#{i.project} -") unless @project && @project == i.project %>
<%= link_to_issue i, :truncate => 30 %>
<span class="tip"><%= render_issue_tooltip i %></span>
</div>
<% else %>
<span class="icon icon-package">
<%= h("#{i.project} -") unless @project && @project == i.project %>
<%= link_to_version i%>
</span>
<% end %>
<% end %>


und in die Calendar-Klasse


1
2
3
4
5
6
7
8

# lib/redmine/helpers/calendar.rb
# Sets calendar events
def events=(events)
@events = events
@ending_events_by_days = @events.group_by {|event| event.due_date}
@starting_events_by_days = @events.group_by {|event| event.start_date}
end


Wie wissen also, das jedes event-item ein 'due_date' und ein 'start_date' braucht um geladen werden zu können.

Nächster Blick in die Issue und die Version Klasse:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

class Version < ActiveRecord::Base
# lots of other code here

def start_date
@start_date ||= fixed_issues.minimum('start_date')
end

def due_date
effective_date
end

def due_date=(arg)
self.effective_date=(arg)
end

# more code here

end


class Issue

# Attribute sind im DB-Schema definiert

end


Es sollte es möglich sein, eine Neue Klasse mittels calendar.events= dort einzuschleusen.... dann müssen wie und controller angepasst werden zum laden und anzeigen der Daten.

das sollte als startschuss erstmal helfen !

_________________
Jeeht nich jibbs nich...!
----------------------------------
https://rubygems.org/profiles/friendssystems
https://github.com/florianeck


Nach oben
 Profil  
 
BeitragVerfasst: 05 Feb 2014, 12:46 
Offline
Novize

Registriert: 03 Feb 2014, 12:30
Beiträge: 11
Danke!
Ist also ein Plugin hier unnötig ?

Edit: Ne ist es nicht im Plugin erstelle ich dann die Möglichkeit einen beitrag zu erstellen.


Nach oben
 Profil  
 
BeitragVerfasst: 05 Feb 2014, 13:01 
Offline
Schüler
Benutzeravatar

Registriert: 29 Jan 2014, 14:52
Beiträge: 48
Wohnort: Berlin
nein, du kannst das definitiv mit einem plugin machen.

Dazu brauchst du: folgendes:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47

# Model f��r deine eigenen Eintr��ge, folgender Vorschlag:
# Beliebig erweiterbar ;-)
create_table "calendar_entries", :force => true do |t|
t.string "name"
t.integer "category_id"
t.text "bemerkung"
t.datetime "start_date"
t.datetime "due_date"
end

# Den Controller so aufbohren das er deine CalendarEntry Eintr��ge ber��cksichtig
# calendars_controller.rb

def show
if params[:year] and params[:year].to_i > 1900
@year = params[:year].to_i
if params[:month] and params[:month].to_i > 0 and params[:month].to_i < 13
@month = params[:month].to_i
end
end
@year ||= Date.today.year
@month ||= Date.today.month

@calendar = Redmine::Helpers::Calendar.new(Date.civil(@year, @month, 1), current_language, :month)
# queries_helper.rb, kannst du dir mal angucken, vielleicht willst du den erweitern um deine Daten zu laden.
retrieve_query
@query.group_by = nil
if @query.valid?
events = []
events += @query.issues(:include => [:tracker, :assigned_to, :priority],
:conditions => ["((start_date BETWEEN ? AND ?) OR (due_date BETWEEN ? AND ?))", @calendar.startdt, @calendar.enddt, @calendar.startdt, @calendar.enddt]
)
events += @query.versions(:conditions => ["effective_date BETWEEN ? AND ?", @calendar.startdt, @calendar.enddt])

# Hier deine Daten rein
events += ...

@calendar.events = events
end

render :action => 'show', :layout => false if request.xhr?
end


# und den View anpassen, siehe code in letzem Post, die if-schleife einfach erweitern



Kommentare beachten :wink:

_________________
Jeeht nich jibbs nich...!
----------------------------------
https://rubygems.org/profiles/friendssystems
https://github.com/florianeck


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 14 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach: