Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
7fd564b
Heading
robertli149 Sep 16, 2025
40263d2
Added date selector
robertli149 Sep 16, 2025
773684a
Added crop selector
robertli149 Sep 16, 2025
4aa300f
Added Location Selector
robertli149 Sep 16, 2025
22f6305
added comment box
robertli149 Sep 16, 2025
5cfce41
added submit and reset buttons
robertli149 Sep 16, 2025
58a02af
done with first part of tutorial
robertli149 Sep 17, 2025
b3819d7
done with vue Syntax and Expressions
robertli149 Sep 17, 2025
c47e667
done with vue List Rndering
robertli149 Sep 17, 2025
72ae5aa
Merge remote-tracking branch 'origin/development' into development
robertli149 Sep 22, 2025
80bf4e6
Merge branch 'FarmData2:development' into development
robertli149 Sep 24, 2025
fd15cac
Merge branch 'FarmData2:development' into development
robertli149 Oct 1, 2025
f8cd809
Merge branch 'FarmData2:development' into development
robertli149 Oct 8, 2025
92cfc13
Merge branch 'FarmData2:development' into development
robertli149 Oct 14, 2025
16aed52
Merge branch 'FarmData2:development' into development
robertli149 Oct 15, 2025
fef3481
Merge branch 'FarmData2:development' into development
robertli149 Oct 28, 2025
61d66b9
Merge branch 'FarmData2:development' into development
robertli149 Oct 31, 2025
f72a1cc
Merge branch 'FarmData2:development' into development
robertli149 Nov 6, 2025
021ef41
Merge branch 'FarmData2:development' into development
robertli149 Nov 9, 2025
6f2778b
Merge branch 'FarmData2:development' into development
robertli149 Nov 17, 2025
efb1847
Merge branch 'FarmData2:development' into development
robertli149 Dec 2, 2025
2d1f347
Merge branch 'FarmData2:development' into development
robertli149 Dec 3, 2025
1c84b16
Added my name to README.md
robertli149 Dec 3, 2025
fb95ced
Added name to README.md'
robertli149 Dec 10, 2025
4be1798
Changed name in README.md
robertli149 Dec 10, 2025
43391b2
Changed HTML table to PicklistBase
robertli149 Dec 20, 2025
eb68115
Final changes for the HW12 assignment
Dec 20, 2025
b2563cf
Merge pull request #2 from robertli149/OSS2A-feat-LR
robertli149 Dec 20, 2025
637ad00
Merge branch 'development' into OSS2A-featBD
robertli149 Dec 20, 2025
f5faed2
Merge pull request #3 from robertli149/OSS2A-featBD
robertli149 Dec 20, 2025
582713b
Fixed DateSelector Page
Dec 20, 2025
f135d19
Enhanced DateSelector
robertli149 Dec 20, 2025
89d0aeb
Fixing the DateSelector Page
Dec 20, 2025
5a52bcd
Merge pull request #5 from robertli149/Hackathon-sol1
robertli149 Dec 20, 2025
4994b69
Merge branch 'development' into Hackathon-feat-LR
robertli149 Dec 20, 2025
ef68b60
Merge pull request #4 from robertli149/Hackathon-feat-LR
robertli149 Dec 20, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
--Lilly Roberts

# FarmData2

Welcome to FarmData2. FarmData2 aims to support the day-to-day operation of diversified vegetable farms while facilitating the record keeping necessary for organic certification and for the study of sustainable farming practices. For example, FarmData2 forms enable farm workers to efficiently and reliably enter data about common operations at the time they occur:
Expand Down Expand Up @@ -56,7 +58,7 @@ FarmData2 is thankful to the following organizations for their in-kind and finan

- [Dickinson College](https://www.dickinson.edu/)
- [farmOS](https://farmos.org/)
- [The GNOME Community Engagement Challenge](https://www.gnome.org/challenge/)
- [The GNOME Community Engagement Challenge]([dead link deleted])
- [The National Science Foundation (DUE-2013069)](https://www.nsf.gov/awardsearch/showAward?AWD_ID=2013069)
- [The Non-Profit FOSS Institute](https://npfi.org/)
- [PASA Sustainable Agriculture](https://pasafarming.org/)
Expand Down
41 changes: 41 additions & 0 deletions modules/farm_fd2/03-Vue1/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Shopping List App</title>
<link
rel="stylesheet"
href="main.css"
/>
</head>
<body>
<div id="shopping-list">
<h1>{{header || 'Welcome'}}</h1>
<ul>
<li
v-for="(item,key) in items"
:key="item.id"
>
{{item.label}}
</li>
</ul>
</div>
<script src="https://unpkg.com/vue@3"></script>

<script>
const shoppingList = Vue.createApp({
data() {
return {
header: 'Shopping List App',

items: {
'item-1': { id: 1, label: '10 party hats' },
'item-2': { id: 2, label: '2 board games' },
'item-3': { id: 3, label: '20 cups' },
},
};
},
}).mount('#shopping-list');
</script>
</body>
</html>
160 changes: 160 additions & 0 deletions modules/farm_fd2/03-Vue1/main.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
body {
background: #eff8ff;
height: 100vh;
width: 100vw;
font-family: system-ui, BlinkMacSystemFont, -apple-system, Segoe UI, Roboto,
Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
display: flex;
align-items: center;
justify-content: center;
margin: 0;
padding: 0;
}

.counter {
font-size: 0.8rem;
padding-left: 10px;
padding-right: 10px;
}

#shopping-list {
background: #fff;
padding: 2rem;
margin: 1rem;
border-radius: 3px;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.12), 0 2px 4px 0 rgba(0, 0, 0, 0.08);
width: 95%;
max-width: 900px;
}

h1 {
color: #3d4852;
}

ul {
list-style: none;
padding: 0;
}

a {
color: #6cb2eb;
font-size: 1.25rem;
transition: all 0.1s ease-in;
margin-top: 0.5rem;
display: block;
}

a:hover {
color: #3490dc;
}

li,
p {
display: flex;
align-items: center;
line-height: 1.75;
letter-spacing: 0.5px;
color: #3d4852;
font-size: 1.25rem;
cursor: pointer;
transition: all 0.1s ease-in;
}

li:hover {
color: #22292f;
}

li input {
margin: 0 0.5rem 0;
}

#shopping-list > input,
#shopping-list > select {
width: 100%;
border-radius: 3px;
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.1);
border: 1px solid #f1f5f8;
color: #606f7b;
padding: 0.5rem 0.75rem;
box-sizing: border-box;
font-size: 1rem;
letter-spacing: 0.5px;
margin: 0.5rem 0;
}

.add-item-form,
.header {
display: flex;
align-items: center;
justify-content: space-between;
}

.add-item-form input {
width: 70%;
border-radius: 3px;
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.1);
border: 1px solid #f1f5f8;
color: #606f7b;
padding: 0.5rem 0.75rem;
box-sizing: border-box;
font-size: 1rem;
letter-spacing: 0.5px;
margin: 0.5rem 0;
}

.btn {
border: none;
border-radius: 3px;
margin: auto 0;
padding: 0.5rem 0.75rem;
flex-shrink: 0;
cursor: pointer;
font-size: 0.9rem;
letter-spacing: 0.5px;
transition: all 0.1s ease-in;
}

.btn[disabled] {
background: #8795a1;
}

.btn[disabled]:hover {
background: #606f7b;
}

.btn-primary {
background: #6cb2eb;
color: #fff;
}

.btn-primary:hover {
background: #3490dc;
}

.btn-cancel {
background: #ef5753;
color: #fff;
}

.btn-cancel:hover {
background: #e3342f;
color: #fff;
}

.strikeout {
text-decoration: line-through;
color: #b8c2cc;
}

.strikeout:hover {
color: #8795a1;
}

.priority {
color: #de751f;
}
input[type='checkbox'] {
display: inline !important;
box-shadow: none;
width: auto;
}
60 changes: 34 additions & 26 deletions modules/farm_fd2/src/entrypoints/harvest/App.vue
Original file line number Diff line number Diff line change
Expand Up @@ -33,33 +33,14 @@
id="harvest-table-quantity-unit"
v-if="plantList.length > 0"
>
<table
id="harvest-table"
data-cy="harvest-table"
<tr
v-for="row in rows"
v-bind:key="row.date"
>
<tr id="harvest-table-header">
<th></th>
<th>Location</th>
<th>Bed</th>
<th>Planted Date</th>
</tr>
<tr
v-for="plant in sortedPlantList"
v-bind:key="plant.id"
>
<td>
<input
type="radio"
name="harvest-plant"
v-bind:value="plant"
v-model="pickedPlant"
/>
</td>
<td>{{ plant.location }}</td>
<td>{{ plant.beds.join(', ') }}</td>
<td>{{ plant.timestamp }}</td>
</tr>
</table>
<td>{{ row.location }}</td>
<td>{{ row.bed }}</td>
<td>{{ row.date }}</td>
</tr>

<NumericInput
id="harvest-quantity"
Expand Down Expand Up @@ -113,6 +94,19 @@
v-on:submit="submitForm"
v-on:reset="resetForm"
/>
<PicklistBase
invalidFeedbackText="One row must be selected."
v-bind:required="true"
v-bind:showValidityStyling="true"
v-bind:columns="columns"
v-bind:labels="labels"
v-bind:rows="unit"
in
unitList[]
v-bind:showAllButton="false"
v-bind:showInfoIcons="true"
v-model:picked="pickedPlant"
/>

<hr />
</div>
Expand All @@ -124,6 +118,7 @@ import CropSelector from '@comps/CropSelector/CropSelector.vue';
import NumericInput from '@comps/NumericInput/NumericInput.vue';
import CommentBox from '@comps/CommentBox/CommentBox.vue';
import SubmitResetButtons from '@comps/SubmitResetButtons/SubmitResetButtons.vue';
import PicklistBase from '@comps/PicklistBase/PicklistBase.vue';

import * as farmosUtil from '@libs/farmosUtil/farmosUtil';
export default {
Expand All @@ -133,6 +128,7 @@ export default {
NumericInput,
CommentBox,
SubmitResetButtons,
PicklistBase,
},
data() {
return {
Expand All @@ -144,9 +140,21 @@ export default {
comment: '',
plantList: [],
unitList: [],
columns: ['location', 'bed', 'date'],
labels: ['Location', 'Bed', 'Planted Date'],
form: {
picked: null,
},
};
},
computed: {
rows() {
return this.sortedPlantList.map((plant) => ({
location: plant.location,
bed: plant.bed,
date: plant.date,
}));
},
formValid() {
return (
this.date != '' &&
Expand Down
1 change: 0 additions & 1 deletion modules/farm_fd2/src/entrypoints/harvest/harvest.e2e.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ describe('Tests for the Harvest form', () => {
.find('[data-cy="crop-selector"]')
.find('[data-cy="selector-input"]')
.select('RADISH');

cy.get('[data-cy="harvest-table"]').should('be.visible');
cy.get('[data-cy="harvest-quantity"]')
.find('[data-cy="numeric-input"]')
Expand Down
Loading