Miglied kopieren

JVerein-Benutzer diskutieren über Erweiterungswünsche

Moderator: heiner

Antworten
Ghostmaster
Beiträge: 71
Registriert: Sonntag 13. März 2011, 12:07

Miglied kopieren

Beitrag von Ghostmaster »

Hallo Heiner,

eine Mitglied kopieren Funktionalität wäre wünschenswert. Das ist vor allem hilfreich, wenn man bei Familien nicht die meisten Dinge 3-X fach eintragen muss.
Wenn man sagt Mitglied kopieren, könnte sich der Mitglied erfassen Dialog öffnen (wie bei neu), nur dass alle Felder nach Vorlage befüllt sind.
Danzelot
Beiträge: 294
Registriert: Freitag 30. Juli 2010, 21:29
Verein: Musica Margaretha Reutti e.V.
Mitglieder: 51
JVerein-Version: 2.8.17
Betriebssystem: Windows
Wohnort: Ulm

Re: Miglied kopieren

Beitrag von Danzelot »

Hallo Ghostmaster,
hallo Heiner,

ich habe das mal kurz für die Mitglieder ausprobiert.
MitgliedMenu wurde angepasst und MitgliedCopyAction neu erstellt:

Code: Alles auswählen

/**********************************************************************
 * $Source: /cvsroot/jverein/jverein/src/de/jost_net/JVerein/gui/menu/MitgliedMenu.java,v $
 * $Revision: 1.9 $
 * $Date: 2011-04-23 06:56:19 $
 * $Author: jost $
 *
 * Copyright (c) by Heiner Jostkleigrewe
 * All rights reserved
 * heiner@jverein.de
 * www.jverein.de
 * $Log: MitgliedMenu.java,v $
 * Revision 1.9  2011-04-23 06:56:19  jost
 * Neu: Freie Formulare
 *
 * Revision 1.8  2011-02-03 22:02:08  jost
 * Bugfix Kontextmenu
 *
 * Revision 1.7  2010-09-01 05:57:20  jost
 * neu: Personalbogen
 *
 * Revision 1.6  2010/02/01 20:59:57  jost
 * Neu: Einfache Mailfunktion
 *
 * Revision 1.5  2009/06/11 21:03:02  jost
 * Vorbereitung I18N
 *
 * Revision 1.4  2008/12/22 21:14:57  jost
 * Icons ins Menü aufgenommen.
 *
 * Revision 1.3  2008/07/18 20:11:31  jost
 * Neu: Spendenbescheinigung
 *
 * Revision 1.2  2007/08/31 05:36:00  jost
 * Jetzt auch bearbeiten über das Context-Menü
 *
 * Revision 1.1  2007/08/30 19:48:53  jost
 * Neues Kontext-Menü
 *
 **********************************************************************/
package de.jost_net.JVerein.gui.menu;

import java.rmi.RemoteException;

import de.jost_net.JVerein.Einstellungen;
import de.jost_net.JVerein.JVereinPlugin;
import de.jost_net.JVerein.gui.action.FreiesFormularAction;
import de.jost_net.JVerein.gui.action.MitgliedCopyAction;
import de.jost_net.JVerein.gui.action.MitgliedDeleteAction;
import de.jost_net.JVerein.gui.action.MitgliedMailSendenAction;
import de.jost_net.JVerein.gui.action.PersonalbogenAction;
import de.jost_net.JVerein.gui.action.SpendenbescheinigungAction;
import de.jost_net.JVerein.keys.Formularart;
import de.jost_net.JVerein.rmi.Formular;
import de.willuhn.datasource.rmi.DBIterator;
import de.willuhn.jameica.gui.Action;
import de.willuhn.jameica.gui.parts.CheckedContextMenuItem;
import de.willuhn.jameica.gui.parts.CheckedSingleContextMenuItem;
import de.willuhn.jameica.gui.parts.ContextMenu;

/**
 * Kontext-Menu zu den Beitragsgruppen.
 */
public class MitgliedMenu extends ContextMenu
{

  /**
   * Erzeugt ein Kontext-Menu für die Liste der Mitglieder.
   *
   * @throws RemoteException
   */
  public MitgliedMenu(Action detailaction) throws RemoteException
  {
    addItem(new CheckedSingleContextMenuItem(JVereinPlugin.getI18n().tr(
        "bearbeiten"), detailaction, "edit.png"));
    addItem(new CheckedSingleContextMenuItem(JVereinPlugin.getI18n().tr(
        "löschen..."), new MitgliedDeleteAction(), "user-trash.png"));
    addItem(new CheckedSingleContextMenuItem(JVereinPlugin.getI18n().tr(
    "kopieren..."), new MitgliedCopyAction(), "edit-copy.png"));
    addItem(new CheckedContextMenuItem(JVereinPlugin.getI18n().tr(
        "Mail senden ..."), new MitgliedMailSendenAction(),
        "mail-message-new.png"));
    addItem(new CheckedSingleContextMenuItem(JVereinPlugin.getI18n().tr(
        "Spendenbescheinigung"), new SpendenbescheinigungAction(),
        "rechnung.png"));
    addItem(new CheckedContextMenuItem(JVereinPlugin.getI18n().tr(
        "Personalbogen"), new PersonalbogenAction(), "rechnung.png"));
    DBIterator it = Einstellungen.getDBService().createList(Formular.class);
    it.addFilter("art = ?", new Object[] { Formularart.FREIESFORMULAR });
    while (it.hasNext())
    {
      Formular f = (Formular) it.next();
      addItem(new CheckedContextMenuItem(JVereinPlugin.getI18n().tr(
          f.getBezeichnung()), new FreiesFormularAction(f.getID()), "rechnung.png"));
    }
  }
}

Code: Alles auswählen

/**********************************************************************
 * $Source: /cvsroot/jverein/jverein/src/de/jost_net/JVerein/gui/action/MitgliedCopyAction.java,v $
 * $Revision: 1.0 $
 * $Date: 2011-05-10 13:31:56 $
 * $Author: jost $
 *
 * Copyright (c) by Heiner Jostkleigrewe
 * All rights reserved
 * heiner@jverein.de
 * www.jverein.de
 * $Log: MitgliedCopyAction.java,v $
 * Revision 1.7  2011-01-27 22:16:56  jost
 * Neu: Speicherung von weiteren Adressen in der Mitgliedertabelle
 *
 * Revision 1.6  2010-11-22 20:57:53  jost
 * Vorbereitungs Arbeitseinsatzüberprüfung.
 *
 * Revision 1.5  2010-07-25 18:28:31  jost
 * Neu: Mitgliedskonto
 *
 * Revision 1.4  2009/06/11 21:02:05  jost
 * Vorbereitung I18N
 *
 * Revision 1.3  2009/04/25 05:27:30  jost
 * Neu: Juristische Personen  können als Mitglied gespeichert werden.
 *
 * Revision 1.2  2007/02/23 20:26:00  jost
 * Mail- und Webadresse im Header korrigiert.
 *
 * Revision 1.1  2006/09/20 15:38:12  jost
 * *** empty log message ***
 *
 **********************************************************************/
package de.jost_net.JVerein.gui.action;

import de.jost_net.JVerein.Einstellungen;
import de.jost_net.JVerein.JVereinPlugin;
import de.jost_net.JVerein.gui.dialogs.PersonenartDialog;
import de.jost_net.JVerein.gui.view.MitgliedDetailView;
import de.jost_net.JVerein.io.ArbeitseinsatzZeile;
import de.jost_net.JVerein.rmi.Mitglied;
import de.jost_net.JVerein.rmi.Mitgliedskonto;
import de.willuhn.jameica.gui.Action;
import de.willuhn.jameica.gui.GUI;
import de.willuhn.jameica.gui.dialogs.AbstractDialog;
import de.willuhn.util.ApplicationException;

public class MitgliedCopyAction implements Action
{
  public void handleAction(Object context) throws ApplicationException
  {
    Mitglied m = null;
    try
    {
      if (context != null && context instanceof ArbeitseinsatzZeile)
      {
        ArbeitseinsatzZeile aez = (ArbeitseinsatzZeile) context;
        m = (Mitglied) aez.getAttribute("mitglied");
      }
      else if (context != null && context instanceof Mitglied)
      {
        m = (Mitglied) context;
      }
      else if (context != null && context instanceof Mitgliedskonto)
      {
        Mitgliedskonto mk = (Mitgliedskonto) context;
        m = mk.getMitglied();
      }
      else
      {
        m = (Mitglied) Einstellungen.getDBService().createObject(
            Mitglied.class, null);
        if (Einstellungen.getEinstellung().getJuristischePersonen())
        {
          PersonenartDialog pad = new PersonenartDialog(
              AbstractDialog.POSITION_CENTER);
          String pa = (String) pad.open();
          m.setPersonenart(pa);
        }
        else
        {
          m.setPersonenart("n");
        }
      }

      /* Löschen von Attributen, die nicht zu dem neuen Mitglied gehören */
      m.setID( null );
      m.setExterneMitgliedsnummer( null );
      m.setBeitragsgruppe( null );

     /* TODO: hier noch weitere Anpassungen vornehmen */

    }
    catch (Exception e)
    {
      throw new ApplicationException(JVereinPlugin.getI18n().tr(
          "Fehler bei der Erzeugung eines neuen Mitgliedes"), e);
    }
    GUI.startView(new MitgliedDetailView(), m);
  }
}
Das Kopieren eines Mitgliedes ist so möglich.
Ich habe nicht geprüft, ob alle Einstellungen auf den Reitern kopiert wird. Die Einstellungen des Eigenschaftenbaumes werden nicht übernommen, da muss Heiner noch drüber schauen.

Das gleiche könnte dann noch für Adressen übernommen werden, allerdings muss man hier noch den Adresstyp vorgeben/ändern können.
Benutzeravatar
heiner
Administrator
Beiträge: 4509
Registriert: Freitag 30. Oktober 2009, 16:44
JVerein-Version: aktuelle Entwicklerversion
Betriebssystem: W10
Kontaktdaten:

Re: Miglied kopieren

Beitrag von heiner »

Hallo Danzelot,

da, wo die Arbeit anfängt, hörst du auf. Ich würde deinen Code übernehmen, wenn er

a) komplett ist
b) leicht wartbar ist. Ich möchte nicht jedes mal bei der Erweiterung des Datenmodells noch an weiteren Stellen basteln
c) keine unnötigen Abfragen enthält (da sind eine instanceof-Abfragen drin, die nicht erforderlich sind).
d) dein Code als Eclipse-Patch verpackt ist.

Heiner
PS: Denkt daran, eure Vereine unter viewforum.php?f=3 vorzustellen.
Uwe
Beiträge: 49
Registriert: Donnerstag 23. Juni 2011, 09:43

Re: Miglied kopieren

Beitrag von Uwe »

Hallo Heiner,

ich wollte nur kurz mitteilen, dass ich eine Funktion "Mitglied kopieren" auch sehr begrüßen würde.

Gruß,
Uwe
Benutzeravatar
heiner
Administrator
Beiträge: 4509
Registriert: Freitag 30. Oktober 2009, 16:44
JVerein-Version: aktuelle Entwicklerversion
Betriebssystem: W10
Kontaktdaten:

Re: Miglied kopieren

Beitrag von heiner »

Ich werde mal versuchen, eine einfache Lösung zu bauen.

Heiner
PS: Denkt daran, eure Vereine unter viewforum.php?f=3 vorzustellen.
Uwe
Beiträge: 49
Registriert: Donnerstag 23. Juni 2011, 09:43

Re: Miglied kopieren

Beitrag von Uwe »

Hallo Heiner,

hast du schon etwas, dass ich ausprobieren könnte?

Gruß,
Uwe
Benutzeravatar
heiner
Administrator
Beiträge: 4509
Registriert: Freitag 30. Oktober 2009, 16:44
JVerein-Version: aktuelle Entwicklerversion
Betriebssystem: W10
Kontaktdaten:

Re: Miglied kopieren

Beitrag von heiner »

Du kannst die Entwicklerversion testen.

Heiner
PS: Denkt daran, eure Vereine unter viewforum.php?f=3 vorzustellen.
Uwe
Beiträge: 49
Registriert: Donnerstag 23. Juni 2011, 09:43

Re: Miglied kopieren

Beitrag von Uwe »

Hallo Heiner,

ich habe gerade die 310 ausprobiert.
Spitze!
Das spart mir enorm viel Zeit.

Vielen Dank!
Gruß,
Uwe
Antworten