pub fn next_tally() -> Option<T::BlockNumber> {
		let desired_seats = Self::desired_seats();
		if desired_seats == 0 {
			None
		} else {
			let c = Self::active_council();
			let (next_possible, count, coming) =
				if let Some((tally_end, comers, leavers)) = Self::next_finalize() {
					// if there's a tally in progress, then next tally can begin immediately afterwards
					(tally_end, c.len() - leavers.len() + comers as usize, comers)
				} else {
					(<system::Module<T>>::block_number(), c.len(), 0)
				};
			if count < desired_seats as usize {
				Some(next_possible)
			} else {
				// next tally begins once enough council members expire to bring members below desired.
				if desired_seats <= coming {
					// the entire amount of desired seats is less than those new members - we'll have
					// to wait until they expire.
					Some(next_possible + Self::term_duration())
				} else {
					Some(c[c.len() - (desired_seats - coming) as usize].1)
				}
			}.map(Self::next_vote_from)
		}
	}
/// The block number on which the tally for the next election will happen. `None` only if the
/// desired seats of the council is zero.
The block number on which the tally for the next election will happen. `None` only if the
desired seats of the council is zero.
The block number on which the tally for the next election will happen . ` None ` only if the desired seats of the council is zero .
pub fn next_tally() -> Option<T::BlockNumber> {
		let desired_seats = Self::desired_seats();
		if desired_seats == 0 {
			None
		} else {
			let c = Self::active_council();
			let (next_possible, count, coming) =
				if let Some((tally_end, comers, leavers)) = Self::next_finalize() {
					// if there's a tally in progress, then next tally can begin immediately afterwards
					(tally_end, c.len() - leavers.len() + comers as usize, comers)
				} else {
					(<system::Module<T>>::block_number(), c.len(), 0)
				};
			if count < desired_seats as usize {
				Some(next_possible)
			} else {
				// next tally begins once enough council members expire to bring members below desired.
				if desired_seats <= coming {
					// the entire amount of desired seats is less than those new members - we'll have
					// to wait until they expire.
					Some(next_possible + Self::term_duration())
				} else {
					Some(c[c.len() - (desired_seats - coming) as usize].1)
				}
			}.map(Self::next_vote_from)
		}
	}
pub fn next_tally ( ) -> Option < T :: BlockNumber > { let desired_seats = Self :: desired_seats ( ) ; if desired_seats == 0 { None } else { let c = Self :: active_council ( ) ; let ( next_possible , count , coming ) = if let Some ( ( tally_end , comers , leavers ) ) = Self :: next_finalize ( ) { // if there's a tally in progress, then next tally can begin immediately afterwards ( tally_end , c . len ( ) - leavers . len ( ) + comers as usize , comers ) } else { ( < system :: Module < T > > :: block_number ( ) , c . len ( ) , 0 ) } ; if count < desired_seats as usize { Some ( next_possible ) } else { // next tally begins once enough council members expire to bring members below desired. if desired_seats <= coming { // the entire amount of desired seats is less than those new members - we'll have // to wait until they expire. Some ( next_possible + Self :: term_duration ( ) ) } else { Some ( c [ c . len ( ) - ( desired_seats - coming ) as usize ] . 1 ) } } . map ( Self :: next_vote_from ) } }
The block number on which the tally for the next election will happen.
The block number on which the tally for the next election will happen .