Difference between revisions of "Features/Save-As"

From Sugar Labs
Jump to navigation Jump to search
(template)
 
 
(8 intermediate revisions by 3 users not shown)
Line 2: Line 2:
 
[[Category:Feature Page Incomplete]]
 
[[Category:Feature Page Incomplete]]
 
[[Category:Feature|.]]
 
[[Category:Feature|.]]
<!-- You can add categories to tie features back to real deployments/schools requesting them, for example
 
[[Category:Features requested by School Xyz|<Feature Name>]] (the |Feature Name option sorts the entry on the category page under the first letter of <Feature Name>). -->
 
 
</noinclude>
 
</noinclude>
 
{{Note/important|Comments and Explanations:|There are comments (''in italics'') providing guidance to fill out each section, see also the [[Features/Policy|Feature Policy Page]] for a more detailed explanation of the new-feature process. '''Copy the source to a ''new page'' named Features/''Your Feature Name'' before making changes!  DO NOT EDIT THIS TEMPLATE.'''}}
 
  
 
<!-- All fields on this form are required to be accepted.
 
<!-- All fields on this form are required to be accepted.
Line 14: Line 10:
  
 
== Summary ==
 
== Summary ==
''A sentence or two summarizing what this feature is and what it will do. This information is used for the overall feature summary page for each release.''
+
Provides the 'save' and 'save as' capabilities common to document processing applications.
  
 
== Owner ==
 
== Owner ==
''This should link to your home wiki page so we know who you are''
+
* Name: [[User:iamutkarshtiwari| Utkarsh Tiwari]]
* Name: [[User:AcountName| Your Name]]
+
* Email: Utkarsh Tiwari <iamutkarshtiwari@gmail.com>
 
 
''Include you email address that you can be reached should people want to contact you about helping with your feature, status is requested, or technical issues need to be resolved''
 
* Email: <your email address so we can contact you, invite you to meetings, etc.>
 
  
 
== Current status ==
 
== Current status ==
* Targeted release: (SUGAR_VERSION)
+
* Targeted release: 0.112
* Last updated: (DATE)
+
* Last updated: 15th September 2017
* Percentage of completion: XX%
+
* Percentage of completion: 100%
  
 
== Detailed Description ==
 
== Detailed Description ==
''Expand on the summary, if appropriate. A couple of sentences suffices to explain the goal, but the more details you can provide the better.''
+
* For a new document (start new), when the user '''Stops''' the activity, a popup provides an opportunity for the user to give the Journal entry a name. The user can choose from the 'Save' and 'Don't Save' options. However, an instance will appear in the Journal for statistical purpose but no changes would be saved if user selects 'Don't Save' option.
 +
* For an existing document, when the user '''Stops''' the activity, a popup provides an opportunity to give it a new name.
 +
** In this case, if the user supplies a new name (different from original), a new instance is created with the new changes while the original (previous) will remain preserved.
 +
** If the user saves with the same name, the document is saved replacing the original.
 +
** If the user selects 'Don't Save' option, no changes are saved (no new entry is created) and the original instance will remain preserved.
 +
 
 +
* Provides a settings (GConf & GSettings) to enable or disable the feature.
 +
** '''GConf -''' https://github.com/sugarlabs/sugar/pull/751
 +
** '''GSettings -''' https://github.com/sugarlabs/sugar/pull/750
 +
*After pressing Stop if the user feels that he needs to continue with the current work, he can '''dismiss''' the alert by pressing '''<nowiki/>'Esc' key''' on keyboard.
  
 
== Benefit to Sugar ==
 
== Benefit to Sugar ==
''What is the benefit to the platform?  If this is a major capability update, what has changed?  If this is a new feature, what capabilities does it bring? Why will Sugar become a better platform or project because of this feature?''
+
''What is the '''benefit''' to the platform?  If this is a major capability update, what has changed?  If this is a new feature, what capabilities does it bring? Why will Sugar become a better platform or project because of this feature?''
 +
 
 +
Currently Sugar saves objects to the Journal with the name of the activity. In the original toolkit design, the name was displayed to the top left of the toolbar so that a user could enter their own name. At that time, the user had a 'keep' button on the toolbar which enabled an object to be saved while continuing to work as found on most document based applications.
 +
 
 +
Currently, there is no keep button because Sugar does that automatically. This change comes with a serious flaw. Sugar uses the existing jobject when an activity is opened so that the original is overwritten. For example, a TurtleBlocks program could be resumed and the user decide to do a new program. His previous program is lost.
 +
 
 +
With this feature, the activity creates a new object cloned from the original. If the user saves the document (Turtle Blocks program) under a different name, the original remains in the Journal.
 +
If the name is not changed, the object replaces the original.
 +
 
 +
This feature is modeled on the behavior of the 'save' and 'save as' feature of conventional document handling programs.
  
 
''Make sure to note here as well if this feature has been requested by a specific deployment, or if it has emerged from a bug report.''
 
''Make sure to note here as well if this feature has been requested by a specific deployment, or if it has emerged from a bug report.''
 +
 +
Requested by Tony Anderson. Implemented by Utkarsh Tiwari as part of GSOC 2016.
  
 
== Scope ==
 
== Scope ==
 +
 
''What work do the developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?''
 
''What work do the developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?''
 +
 +
* pull request review,
 +
* documentation changes.
 +
 +
Feature is implemented in activity.py (sugar and sugar3).
 +
A gsetting was added to make enabling the feature optional.
  
 
==UI Design==
 
==UI Design==
''Does the feature have a direct impact on the work flow, or does it need a UI? Link here mockups, or add detailed descriptions.''
+
 
 +
Direct impact on work flow. A visual mockup is in https://github.com/sugarlabs/sugar-toolkit/pull/4
  
 
== How To Test ==
 
== How To Test ==
 
{{:{{PAGENAME}}/Testing}}
 
{{:{{PAGENAME}}/Testing}}
 +
 
== User Experience ==
 
== User Experience ==
''If this feature is noticeable by its target audience, how will their experiences change as a result?  Describe what they will see or notice.''
+
 
 +
When the user presses the stop button or ctrl + q, a dialog will appear giving the opportunity to name or rename the associated Journal entry.
 +
 
 +
The user can chose not to save the object.
 +
 
 +
If the document has been resumed from the Journal or the Home View, the user will be able to supply a new name so that this entry is added to the Journal instead of overwriting the original.
  
 
== Dependencies ==
 
== Dependencies ==
''What other packages (RPMs) depend on this package?  Are there changes outside the developers' control on which completion of this feature depends?  In other words, does your feature depend on completion of another feature owned by someone else or that you would need to coordinate, which might cause you to be unable to finish on time?  Other upstream projects like Python?''
+
 
 +
No dependencies.
  
 
== Contingency Plan ==
 
== Contingency Plan ==
''If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "None necessary, revert to previous release behaviour."  Or it might not.  If your feature is not completed in time, we want to assure others that other parts of Sugar will not be in jeopardy.''
+
 
 +
None necessary, revert to previous release behaviour.
  
 
== Documentation ==
 
== Documentation ==
''Is there upstream documentation on this feature, or notes you have written yourself?  Has this topic been discussed in the mailing list or during a meeting? Link to that material here so other interested developers can get involved.''
+
 
 +
See PR #327 at https://github.com/sugarlabs/sugar-toolkit-gtk3
  
 
== Release Notes ==
 
== Release Notes ==
''The Sugar Release Notes inform end-users about what is new in the release. An Example is [[0.84/Notes]]. The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the release team and shipped with the release.''
+
 
 +
Save As
 +
 
 +
A user or deployment can enable this feature by setting 'save as'. This feature provides a capability comparable to the 'save' and 'save as' capabilities offered by conventional document processing programs such as those of Libre Office.
  
 
== Comments and Discussion ==
 
== Comments and Discussion ==
 
+
* Link to the discussion on lists.sugarlabs.org: http://lists.sugarlabs.org/archive/sugar-devel/2017-April/054141.html
* ''Link to the discussion of this feature on lists.sugarlabs.org''
 
 
* See [[{{TALKPAGENAME}}|the discussion tab for this feature.]] <!-- This adds a link to the "discussion" tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page. -->
 
* See [[{{TALKPAGENAME}}|the discussion tab for this feature.]] <!-- This adds a link to the "discussion" tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page. -->

Latest revision as of 17:01, 14 September 2017



Summary

Provides the 'save' and 'save as' capabilities common to document processing applications.

Owner

Current status

  • Targeted release: 0.112
  • Last updated: 15th September 2017
  • Percentage of completion: 100%

Detailed Description

  • For a new document (start new), when the user Stops the activity, a popup provides an opportunity for the user to give the Journal entry a name. The user can choose from the 'Save' and 'Don't Save' options. However, an instance will appear in the Journal for statistical purpose but no changes would be saved if user selects 'Don't Save' option.
  • For an existing document, when the user Stops the activity, a popup provides an opportunity to give it a new name.
    • In this case, if the user supplies a new name (different from original), a new instance is created with the new changes while the original (previous) will remain preserved.
    • If the user saves with the same name, the document is saved replacing the original.
    • If the user selects 'Don't Save' option, no changes are saved (no new entry is created) and the original instance will remain preserved.

Benefit to Sugar

What is the benefit to the platform? If this is a major capability update, what has changed? If this is a new feature, what capabilities does it bring? Why will Sugar become a better platform or project because of this feature?

Currently Sugar saves objects to the Journal with the name of the activity. In the original toolkit design, the name was displayed to the top left of the toolbar so that a user could enter their own name. At that time, the user had a 'keep' button on the toolbar which enabled an object to be saved while continuing to work as found on most document based applications.

Currently, there is no keep button because Sugar does that automatically. This change comes with a serious flaw. Sugar uses the existing jobject when an activity is opened so that the original is overwritten. For example, a TurtleBlocks program could be resumed and the user decide to do a new program. His previous program is lost.

With this feature, the activity creates a new object cloned from the original. If the user saves the document (Turtle Blocks program) under a different name, the original remains in the Journal. If the name is not changed, the object replaces the original.

This feature is modeled on the behavior of the 'save' and 'save as' feature of conventional document handling programs.

Make sure to note here as well if this feature has been requested by a specific deployment, or if it has emerged from a bug report.

Requested by Tony Anderson. Implemented by Utkarsh Tiwari as part of GSOC 2016.

Scope

What work do the developers have to accomplish to complete the feature in time for release? Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?

  • pull request review,
  • documentation changes.

Feature is implemented in activity.py (sugar and sugar3). A gsetting was added to make enabling the feature optional.

UI Design

Direct impact on work flow. A visual mockup is in https://github.com/sugarlabs/sugar-toolkit/pull/4

How To Test

Features/Save-As/Testing

User Experience

When the user presses the stop button or ctrl + q, a dialog will appear giving the opportunity to name or rename the associated Journal entry.

The user can chose not to save the object.

If the document has been resumed from the Journal or the Home View, the user will be able to supply a new name so that this entry is added to the Journal instead of overwriting the original.

Dependencies

No dependencies.

Contingency Plan

None necessary, revert to previous release behaviour.

Documentation

See PR #327 at https://github.com/sugarlabs/sugar-toolkit-gtk3

Release Notes

Save As

A user or deployment can enable this feature by setting 'save as'. This feature provides a capability comparable to the 'save' and 'save as' capabilities offered by conventional document processing programs such as those of Libre Office.

Comments and Discussion