20120704¶
Done¶
- Wenn ein Fehler während Tx25.Result passiert, bleiben jetzt nicht mehr die Daten der vorigen Person da stehen. 
- Neue Fälle Tx25: wrote handlers for DeclaredBirthDate, ResidenceUpdateDates, DocumentTypes, … 
- Übersetzungen. in “Wohnsitze” stand noch ein “Language”, Organization, RegistrationRegister (Eintragungsregister), [Show all], … 
- html2text : holte alle Umlaute raus. Das war zu viel des Guten. 
- IPR PhoneticSearch ist jetzt vorausgefüllt. (Couldn’t reproduce this. ) 
- IPR.duplicate kopiert birth_date nicht. Genauer gesagt rief er dann person_changed auf und setzte folglich für alle Paremeterfelder wieder die Standardwerte ein. 
- The label of the user field of a - lino.mixins.UserAuthoredis now “Author” instead of “User”.
- debts.Budgets and cal.Tasks now also have their separate insert window 
- Hilfetexte für “nicht blockierend”, “Zugriffsklasse” und “Status” 
- Übersetzung Task-Status “Started” ist “Begonnen” nicht “Beginn”. Added new Task State “sleeping”. 
- To-Do-Liste darf nur todo-Einträge (und “Begonnen”) anzeigen. Aber nicht die mit leerem Status. 
- watch_tim : Wenn “Herr” bzw. “Frau” in Anrede steht -> nicht übernehmen. Auch - lino.apps.pcsw.migrate, so dass bestehende Daten korrekt übernommen werden. Momentan werden folgende Anreden ignoriert: “Herr”,”Herrn”,”Frau”,”Fräulein”,”Madame”
- Im Calendar-Panel steht im Titel von Terminen anderer Benutzer deren Benutzername. 
- CalendarApp statt nur CalendarPanel: der Kalender zeigt jetzt links die Liste der Kalender an, mit denen man die Termine der anderen Benutzer ausschalten kann. 
- Lino setzte dann die Uhrzeit von leer auf 00:00, wenn man einen Ganztagstermin verschob. ( - lino_xl.lib.cal.ComponentBase.set_datetime()now tests for empty time.)
- Termin im Status “Entwurf” -> Klick auf “Geplant” meldet “Uncaught TypeError: Cannot call method ‘get_record_url’ of undefined” - This happened after having saved the record. FormPanel.save() didn’t pass requesting_panel (URL_PARAM_PANEL), so the - workflow_buttonsof the data_record returned by the POST or PUT got rendered with “None” as requesting panel id.
- Workflow actions (i.e. who have a states requirement) are now shown only in the - workflow_buttonsfield while “stateless” actions are now always shown only in the bottom toolbar (or the context menu).
- Nicht (mehr?) reproduzierbar: CalendarPanel : “Detail editieren” bewirkt “Uncaught TypeError: Cannot read property ‘ID’ of undefined” 
Yet to do¶
- Automatisch erstellte Auswertungstermine haben Terminart leer. Sollte konfigurierbar sein. Auch eine Uhrzeit sollte gesetzt werden, weil sie im CalendarPanel sonst als Ganztagestermine behandelt werden. 
- Hilfetexte auf die Workflow-Buttons 
- Wenn Termin Status “Verjährt” hat und von gestern nach übermorgen verschoben wird, darf Status nicht auf verjährt bleiben. Muss “geplant” werden. 
- Was heißt das Glöckchen hinter dem Titel eines Termins im CalendarPanel? 
- Doku : Anweisungen um Default.eml.html zu bearbeiten 
Remarks¶
- html2text: Updated from 3.02 to 3.1. Added - lino.utils.html2textto autodoc and to the https://www.lino-framework.org/about/thanks.html page.
- lino.ui.console.Consolenow forwards get_handle to- lino.extjs.ui. Here is why:- Error while evaluating the expression "table(self.Result(ar))" defined in the "from" part of a statement. File "<string>", line 1, in <module> File "t:\hgwork\lino\lino\utils\appy_pod.py", line 272, in insert_table columns = ah.grid_layout.main.columns <type 'exceptions.AttributeError'>: TableHandle instance has no attribute 'grid_layout' - Had to modify the local script - print_tx25.py(which then was again very useful for adding new handlers to- lino.modlib.cbss.tx25):- import sys from lino.ui.console import Console if len(sys.argv) < 2: print "Must specify Lino number of Tx25" sys.exit(-1) pk = sys.argv[1] ui = Console() from lino.modlib.cbss.tx25 import RetrieveTIGroupsRequests as Tx25 ui.run(Tx25.print_action,pk) 
- The default clone_row method (which does nothing) is now defined on - lino.code.modeltools.Model, and- lino.core.kernel.analyze_models()now injects this to models that don’t have it.- lino.mixins.clonable.Clonable.clone_row()no longer tests whether related slaves are an instance of- lino.mixins.clonable.Clonablebefore calling their on_duplicate.
- When creating a new debts.Budget, Lino had an AttributeError: - 'NoneType' object has no attribute 'REQUEST' TRACEBACK: ... File "t:\hgwork\lino\lino\modlib\debts\models.py", line 470, in render html += ar.ui.table2xhtml(sar) File "t:\hgwork\lino\lino\ui\extjs3\ext_ui.py", line 2595, in table2xhtml self.ar2html(ar,t) File "t:\hgwork\lino\lino\ui\extjs3\ext_ui.py", line 2604, in ar2html widths = [x for x in ar.request.REQUEST.getlist(ext_requests.URL_PARAM_WIDTHS)] 
- Changed signature of - lino.core.layouts.BaseLayout.__init__()because application code should be allowed to write:- insert_layout = dd.FormLayout(""" partner date user """,window_size=(50,'auto')) 
- It was the first time that I added translatable hard-coded help_text to some fields. 
“Workflow” versus “Stateless” actions¶
A “workflow action” is an action that has a states requirement.
Other actions are called “stateless”.
Stateless actions are shown in the bottom toolbar,
Workflow actions in the
workflow_buttons
field.
The set_required
method of an action also sets the
show_in_bbar <lino.core.actions.Action.show_in_bbar>
and
show_in_workflow <lino.core.actions.Action.show_in_workflow>
attributes.
Application developers
can define a setup_table
method on a Table
which calls
Action.set_required
to turn e.g. the “Print” action into a
workflow action:
@classmethod
def setup_table(cls,t):
    t.create_mail.set_required(states=['scheduled'])