Struct pallet_timekeeping::Pallet
source · [−]pub struct Pallet<T>(_);
Expand description
The pallet implementing the on-chain logic.
Implementations
pub fn notify_project_worker(
origin: OriginFor<T>,
worker: T::AccountId,
project_hash: T::Hash
) -> DispatchResultWithPostInfo
pub fn notify_project_worker(
origin: OriginFor<T>,
worker: T::AccountId,
project_hash: T::Hash
) -> DispatchResultWithPostInfo
Project owner invites worker/team member to project.
pub fn worker_acceptance_project(
origin: OriginFor<T>,
project_hash: T::Hash,
accepted: AcceptAssignedStatus
) -> DispatchResultWithPostInfo
pub fn worker_acceptance_project(
origin: OriginFor<T>,
project_hash: T::Hash,
accepted: AcceptAssignedStatus
) -> DispatchResultWithPostInfo
Worker accepts to join the project.
pub fn submit_time(
origin: OriginFor<T>,
project_hash: T::Hash,
input_time_hash: T::Hash,
submit_status: StatusOfTimeRecord,
_reason_for_change: ReasonCodeStruct,
number_of_blocks: NumberOfBlocks,
_posting_period: PostingPeriod,
start_block_number: StartOrEndBlockNumber,
end_block_number: StartOrEndBlockNumber,
break_counter: NumberOfBreaks
) -> DispatchResultWithPostInfo
pub fn submit_time(
origin: OriginFor<T>,
project_hash: T::Hash,
input_time_hash: T::Hash,
submit_status: StatusOfTimeRecord,
_reason_for_change: ReasonCodeStruct,
number_of_blocks: NumberOfBlocks,
_posting_period: PostingPeriod,
start_block_number: StartOrEndBlockNumber,
end_block_number: StartOrEndBlockNumber,
break_counter: NumberOfBreaks
) -> DispatchResultWithPostInfo
Worker submits/resubmits time record.
Project owner sets authorisation status of time record.
pub fn invoice_time(
origin: OriginFor<T>,
_project_hash: T::Hash,
_input_time_hash: T::Hash
) -> DispatchResultWithPostInfo
pub fn invoice_time(
origin: OriginFor<T>,
_project_hash: T::Hash,
_input_time_hash: T::Hash
) -> DispatchResultWithPostInfo
Worker invoices the time record.
Project owner pays invoice.
pub fn lock_time_record(
_origin: OriginFor<T>,
_project_hash: T::Hash,
_input_time_hash: T::Hash
) -> DispatchResultWithPostInfo
pub fn lock_time_record(
_origin: OriginFor<T>,
_project_hash: T::Hash,
_input_time_hash: T::Hash
) -> DispatchResultWithPostInfo
Full payment triggers locked record.
pub fn unlock_time_record(
_origin: OriginFor<T>,
_project_hash: T::Hash,
_input_time_hash: T::Hash
) -> DispatchResultWithPostInfo
pub fn unlock_time_record(
_origin: OriginFor<T>,
_project_hash: T::Hash,
_input_time_hash: T::Hash
) -> DispatchResultWithPostInfo
In case of error unlock record.
pub fn ban_worker(
_origin: OriginFor<T>,
_project_hash: T::Hash,
_worker: T::AccountId
) -> DispatchResultWithPostInfo
pub fn ban_worker(
_origin: OriginFor<T>,
_project_hash: T::Hash,
_worker: T::AccountId
) -> DispatchResultWithPostInfo
Worker or team member is banned from submitting time against this project.
pub fn unban_worker(
_origin: OriginFor<T>,
_project_hash: T::Hash,
_worker: T::AccountId
) -> DispatchResultWithPostInfo
pub fn unban_worker(
_origin: OriginFor<T>,
_project_hash: T::Hash,
_worker: T::AccountId
) -> DispatchResultWithPostInfo
Worker or team member is released from ban from submitting time against this project.
pub fn worker_projects_backlog_list<KArg>(k: KArg) -> Option<Vec<T::Hash>> where
KArg: EncodeLike<T::AccountId>,
pub fn worker_projects_backlog_list<KArg>(k: KArg) -> Option<Vec<T::Hash>> where
KArg: EncodeLike<T::AccountId>,
Project owner sends project ref to worker address (AccountId is the Worker). Note: Currently unbounded Vec!
This is a list of the Projects that are currently assigned by a project owner. The worker can accept to work on these, or remove them from the list. If they have already worked on them they cannot be removed.
pub fn worker_projects_backlog_status<KArg>(
k: KArg
) -> Option<AcceptAssignedStatus> where
KArg: EncodeLike<(T::Hash, T::AccountId)>,
pub fn worker_projects_backlog_status<KArg>(
k: KArg
) -> Option<AcceptAssignedStatus> where
KArg: EncodeLike<(T::Hash, T::AccountId)>,
Accepted Status is true/false.
pub fn project_invites_list<KArg>(k: KArg) -> Option<Vec<T::AccountId>> where
KArg: EncodeLike<T::Hash>,
pub fn project_invites_list<KArg>(k: KArg) -> Option<Vec<T::AccountId>> where
KArg: EncodeLike<T::Hash>,
List of all workers (team) booking time on the project. Used mainly by the Project owner, but other workers can be seen. The two here will logically replace the above two storage items, however as much of the code is dependent on the status. There will have to be a re-write.
Note: Currently unbounded Vec!
pub fn project_workers_list<KArg>(k: KArg) -> Option<Vec<T::AccountId>> where
KArg: EncodeLike<T::Hash>,
pub fn project_workers_ban_list<KArg>(k: KArg) -> Option<BannedStruct> where
KArg: EncodeLike<(T::Hash, T::AccountId)>,
pub fn project_workers_ban_list<KArg>(k: KArg) -> Option<BannedStruct> where
KArg: EncodeLike<(T::Hash, T::AccountId)>,
Project worker can be banned by project owner.
# Notice
Project owner should not ban itself.
pub fn project_first_seen<KArg>(k: KArg) -> Option<StartOrEndBlockNumber> where
KArg: EncodeLike<T::Hash>,
pub fn total_blocks_per_project<KArg>(k: KArg) -> Option<NumberOfBlocks> where
KArg: EncodeLike<T::Hash>,
pub fn total_blocks_per_project<KArg>(k: KArg) -> Option<NumberOfBlocks> where
KArg: EncodeLike<T::Hash>,
This stores the total number of blocks (blocktime) for a given project. It collates all time by all team members.
pub fn total_blocks_per_project_per_address<KArg>(
k: KArg
) -> Option<NumberOfBlocks> where
KArg: EncodeLike<(T::AccountId, T::Hash)>,
pub fn total_blocks_per_project_per_address<KArg>(
k: KArg
) -> Option<NumberOfBlocks> where
KArg: EncodeLike<(T::AccountId, T::Hash)>,
This records the total amount of blocks booked per address (worker), per project. It records the first seen block which indicates when the project worker first worked on the project It also records the total time (number of blocks) for that address.
pub fn total_blocks_per_address<KArg>(k: KArg) -> Option<NumberOfBlocks> where
KArg: EncodeLike<T::AccountId>,
pub fn total_blocks_per_address<KArg>(k: KArg) -> Option<NumberOfBlocks> where
KArg: EncodeLike<T::AccountId>,
Overall hours worked on all projects for a given address for all projects.
pub fn worker_time_records_hash_list<KArg>(k: KArg) -> Option<Vec<T::Hash>> where
KArg: EncodeLike<T::AccountId>,
pub fn worker_time_records_hash_list<KArg>(k: KArg) -> Option<Vec<T::Hash>> where
KArg: EncodeLike<T::AccountId>,
Time Record Hashes created by submitter.
Unbounded! TODO.
pub fn time_hash_owner<KArg>(k: KArg) -> Option<T::AccountId> where
KArg: EncodeLike<T::Hash>,
pub fn time_hash_owner<KArg>(k: KArg) -> Option<T::AccountId> where
KArg: EncodeLike<T::Hash>,
Simple getter to associate time record to owner.
pub fn project_time_records_hash_list<KArg>(k: KArg) -> Option<Vec<T::Hash>> where
KArg: EncodeLike<T::Hash>,
pub fn project_time_records_hash_list<KArg>(k: KArg) -> Option<Vec<T::Hash>> where
KArg: EncodeLike<T::Hash>,
All the time records for a given project.
Unbounded! TODO
pub fn time_record<KArg>(
k: KArg
) -> Option<Timekeeper<T::AccountId, T::Hash, NumberOfBlocks, LockStatus, StatusOfTimeRecord, ReasonCodeStruct, PostingPeriod, StartOrEndBlockNumber, NumberOfBreaks>> where
KArg: EncodeLike<T::Hash>,
pub fn time_record<KArg>(
k: KArg
) -> Option<Timekeeper<T::AccountId, T::Hash, NumberOfBlocks, LockStatus, StatusOfTimeRecord, ReasonCodeStruct, PostingPeriod, StartOrEndBlockNumber, NumberOfBreaks>> where
KArg: EncodeLike<T::Hash>,
This records the amount of blocks per address, per project, per entry. Start block number can be calculated. Only accepted if an end block number is given in the transaction as this is the “service rendered” date for accounting purposes.
pub fn worker_time_records_hash_list_archive<KArg>(
k: KArg
) -> Option<Vec<T::Hash>> where
KArg: EncodeLike<T::AccountId>,
pub fn worker_time_records_hash_list_archive<KArg>(
k: KArg
) -> Option<Vec<T::Hash>> where
KArg: EncodeLike<T::AccountId>,
ARCHIVE Experimental! May go somewhere else in future.
pub fn project_time_records_hash_list_archive<KArg>(
k: KArg
) -> Option<Vec<T::Hash>> where
KArg: EncodeLike<T::Hash>,
pub fn project_time_records_hash_list_archive<KArg>(
k: KArg
) -> Option<Vec<T::Hash>> where
KArg: EncodeLike<T::Hash>,
ARCHIVE Experimental! May go somewhere else in future.
Trait Implementations
Returns the current storage version as supported by the pallet.
Returns the on-chain storage version of the pallet as stored in the storage.
The block is being finalized. Implement to have something happen.
This will be run when the block is being finalized (before on_finalize
).
Implement to have something happen using the remaining weight.
Will not fire if the remaining weight is 0.
Return the weight used, the hook will subtract it from current weight used
and pass the result to the next on_idle
hook if it exists. Read more
The block is being initialized. Implement to have something happen. Read more
Perform a module upgrade. Read more
Implementing this function on a module allows you to perform long-running tasks that make (by default) validators generate transactions that feed results of those long-running computations back on chain. Read more
Run integrity test. Read more
Run integrity test. Read more
This function is being called after every block import (when fully synced). Read more
The block is being finalized. Implement to have something happen. Read more
Something that should happen at genesis.
The block is being finalized.
Implement to have something happen in case there is leftover weight.
Check the passed remaining_weight
to make sure it is high enough to allow for
your pallet’s extra computation. Read more
The block is being initialized. Implement to have something happen. Read more
Perform a module upgrade. Read more
Name of the Rust module containing the pallet.
Version of the crate containing the pallet.
Extend the given vector by all of the pallets’ information that this type represents. Read more
fn storage_info() -> Vec<StorageInfo>ⓘ
Auto Trait Implementations
impl<T> RefUnwindSafe for Pallet<T> where
T: RefUnwindSafe,
impl<T> UnwindSafe for Pallet<T> where
T: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more
pub fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>ⓘimpl<W> Write for Box<W, Global> where
W: Write + ?Sized, impl<R> Read for Box<R, Global> where
R: Read + ?Sized, impl<I, A> Iterator for Box<I, A> where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;
pub fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>ⓘimpl<W> Write for Box<W, Global> where
W: Write + ?Sized, impl<R> Read for Box<R, Global> where
R: Read + ?Sized, impl<I, A> Iterator for Box<I, A> where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;
impl<W> Write for Box<W, Global> where
W: Write + ?Sized, impl<R> Read for Box<R, Global> where
R: Read + ?Sized, impl<I, A> Iterator for Box<I, A> where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;
Convert Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
. Read more
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read more
Convert &mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read more
impl<T> PalletVersionToStorageVersionHelper for T where
T: GetStorageVersion + PalletInfoAccess,
impl<T> PalletVersionToStorageVersionHelper for T where
T: GetStorageVersion + PalletInfoAccess,
The counterpart to unchecked_from
.
Consume self to return an equivalent value of T
.
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more